Politik Video Download - YouTube Automation
Beschreibung
Automatisiertes System zum Download, Verarbeiten und Hochladen von politischen Videos auf YouTube. Das Projekt scraped politische Videos von einer externen Quelle, verarbeitet sie mit KI-generierten Titeln und Thumbnails, und lädt sie automatisiert auf YouTube hoch.
Hauptfunktionen
- Web Scraping: Extrahiert Video-URLs und Metadaten aus HTML-Quellen mittels Regex und JSON-Parsing
- Video Download: Automatischer Download von Videos in 1080p Auflösung
- Thumbnail-Verarbeitung: Download und automatische Bearbeitung von Thumbnails mit Overlay-Text
- KI-Textgenerierung: Nutzt OpenAI GPT-4o für SEO-optimierte Titel und Fragen
- Datenbank-Integration: MySQL-Datenbank zur Verwaltung von Videos, Upload-Status und Scheduling
- YouTube Upload: Automatisiertes Hochladen mit geplanten Veröffentlichungszeiten
Technische Details
Technologien:
- Python 3.12 mit Virtual Environment
- MySQL mit PyMySQL Connector
- Google YouTube Data API v3
- OpenAI GPT-4o API für Content-Generierung
- Pillow (PIL) für Bildverarbeitung
- Requests für HTTP-Operationen
- Schedule für zeitgesteuerte Aufgaben
Projektstruktur
Politik_Video_Download/ ├── main.py # Hauptskript - Download & Verarbeitung ├── yt_script_new.py # YouTube Upload & Scheduling ├── upload_ytvid.py # Upload-Logik mit Google API ├── db_utils.py # Datenbank-Verbindungen & Queries ├── download_utils.py # Video/Thumbnail Download Funktionen ├── openai_utils.py # OpenAI API Integration für Titel/Fragen ├── thumbnail_utils.py # Thumbnail-Bearbeitung mit Pillow ├── config.py # API-Keys & Konfiguration (extern) ├── overlay_thumb.png # Overlay-Vorlage für Thumbnails ├── arialbd.ttf # Schriftart für Thumbnail-Text └── venv/ # Python Virtual Environment
Workflow
- Datenbank-Abfrage: Zufälliges unbearbeitetes Video aus MySQL auswählen
- Web Scraping: HTML der Quellseite laden und JSON-Daten extrahieren
- Download: Video (1080p) und Thumbnail herunterladen
- KI-Generierung: YouTube-Titel (max. 70 Zeichen) und 3-Wort-Frage erstellen
- Thumbnail-Design: Overlay mit Frage auf Thumbnail anwenden
- Datenbank-Update: Metadaten speichern, Status auf "created" setzen
- Scheduling: Upload zu geplanten Zeiten (z.B. täglich um 10:00)
- YouTube Upload: Video mit Thumbnail hochladen, Veröffentlichung planen
Besonderheiten
- Titel-Optimierung: Verbotene Zeichen (@#$%&*) werden gefiltert, Format wie YouTube-Suchanfragen
- Geplante Veröffentlichung: Videos werden privat hochgeladen und zu festgelegten Zeiten veröffentlicht
- Geo-Tagging: Automatische Lokalisierung (Brüssel-Koordinaten) für Video-Metadaten
- Titel-Anpassung: "P" am Anfang wird automatisch durch "E" ersetzt
- Beschreibungs-Kürzung: Automatische Kürzung auf 450 Zeichen mit Komma-Entfernung am Ende
Code-Beispiel: Thumbnail-Generierung
def create_thumbnail(input_image_path, overlay_image_path, text, font_path, output_image_path):
# Bilder laden und kombinieren
input_image = Image.open(input_image_path).convert('RGBA')
overlay_image = Image.open(overlay_image_path).convert('RGBA')
result = Image.alpha_composite(input_image, overlay_image)
# Text auf weiße Box zeichnen
draw = ImageDraw.Draw(result)
font = ImageFont.truetype(font_path, 100)
draw.rectangle((x, y, x + box_width, y + box_height), fill=(255, 255, 255))
draw.text((x + 20, y + 20), text, font=font, fill=(0, 0, 0))
result.convert('RGB').save(output_image_path)