Videoprozessor
Verarbeite Videodateien für die YouTube-Content-Erstellung und generiere Social-Media-Grafiken. Diese Fähigkeit bietet vier Hauptfunktionen:
- Transkription & Kapitel: Konvertiere Videoclips in zeitgestempelte Transkripte, SRT-Untertitel und KI-generierte YouTube-Kapitel
- YouTube-Thumbnail-Generierung: Erstelle KI-gestützte YouTube-Thumbnails mit Gesichtsreferenzen und Stilabgleich
- LinkedIn-Post-Bilder: Generiere professionelle LinkedIn-Infografiken und Post-Bilder
- Generische Bildgenerierung: Erstelle benutzerdefinierte Bilder für jede Plattform mit flexiblen Abmessungen und Prompts
Wann diese Fähigkeit verwendet werden sollte
Verwende diese Fähigkeit, wenn der Benutzer:
- Videodateien oder -clips transkribieren möchte
- YouTube-Kapitel generieren muss
- Kapitel aus vorhandenen Transkripten neu generieren möchte
- YouTube-Thumbnails erstellen möchte
- LinkedIn-Post-Bilder oder Infografiken erstellen möchte
- Bilder für andere Plattformen (Instagram, Twitter, Facebook, etc.) generieren möchte
- Gesichtstausch für Thumbnails erwähnt
- Nach der Bereitstellung von Gesichts- oder Stilreferenzen für Grafiken fragt
Auswahl des richtigen Bildgenerierungstools
Die Fähigkeit bietet drei Bildgenerierungsskripte. Wähle basierend auf der Plattform und den Anforderungen:
Verwende thumbnail.py (YouTube-Thumbnails) wenn:
- Der Benutzer "YouTube", "Thumbnail" oder "Video-Thumbnail" erwähnt
- Ein 16:9-Seitenverhältnis angefordert wird
- Ein dramatischer, auffälliger Stil mit Gesichtern gewünscht wird
- Standard: 1920x1080
Verwende linkedin-post.py (LinkedIn-Infografiken) wenn:
- Der Benutzer "LinkedIn", "LinkedIn-Beitrag" oder "Geschäftsinfografik" erwähnt
- Ein quadratisches Infografik-Format angefordert wird
- Ein professionelles, dunkles Thema ohne Gesichter gewünscht wird
- Standard: 1200x1200
Verwende image-gen.py (generisch) wenn:
- Benutzerdefinierte Abmessungen angegeben werden (Instagram, Twitter, Facebook, etc.)
- Die Plattform weder YouTube noch LinkedIn ist
- Der Benutzer explizit ein flexibles/benutzerdefiniertes Tool anfordert
- Der Benutzer einen vollständigen Prompt mit spezifischen Stilanforderungen bereitstellt
- Erforderlicher Parameter:
--dimensions BREITExHÖHE
Priorität: Bevorzuge immer thumbnail.py oder linkedin-post.py, wenn der Anwendungsfall passt. Verwende image-gen.py als Fallback für andere Plattformen oder benutzerdefinierte Anforderungen.
Installation & Anforderungen
Der Videoprozessor befindet sich im video-processor/-Verzeichnis des Projekt-Repositorys.
Anforderungen:
- Python 3.9+
- uv Paketmanager
- FFmpeg (für die Transkription)
- OpenAI API-Schlüssel (für Whisper-Transkription)
- Gemini API-Schlüssel (für Kapitel und Thumbnails)
- Replicate API-Token (optional, für Gesichtstausch)
Umgebungseinrichtung:
cd video-processor
uv sync
# Stelle sicher, dass .env mit den erforderlichen API-Schlüsseln existiert
1. Videotranskription & Kapitel
Grundlegender Transkriptionsbefehl
Transkribiere Videoclips und generiere Transkript, Untertitel und Kapitel:
cd video-processor
uv run transcribe.py <Ordnerpfad>
Beispiel:
uv run transcribe.py ./mein-youtube-video/
Eingabeformat
Videos sollten sich in einem Ordner mit numerischen Präfixen zur Sortierung befinden:
mein-youtube-video/
├── 1.mp4 # Intro
├── 2.mp4 # Hauptinhalt
├── 3.mov # Demo
└── 4.mp4 # Outro
Unterstützte Formate: MP4, MOV, MKV, AVI, WEBM, M4V
Ausgabedateien
Das Skript generiert drei Dateien im selben Ordner:
-
transcript.md - Markdown mit Zeitstempeln
# Transkript [00:00] Willkommen zurück auf dem Kanal... [00:15] Heute werden wir über... sprechen -
transcript.srt - SRT-Untertitel für Videobearbeitungsprogramme/YouTube
1 00:00:00,000 --> 00:00:15,500 Willkommen zurück auf dem Kanal... -
chapters.txt - YouTube-Kapitelvorschläge (KI-generiert)
0:00 Einleitung 2:30 Einrichtung 5:45 Haupt-Tutorial
Funktionen
- Multi-Clip-Unterstützung: Verarbeitet nummerierte Clips mit automatischer Berechnung des Zeitstempel-Offsets
- Unterstützung für lange Videos: Teilt Videos länger als 20 Minuten automatisch auf (API-Limit)
- Zeitgestempeltes Transkript: Markdown-Format mit präzisen Zeitstempeln
- KI-Kapitel: Gemini generiert kontextbezogene Kapitelmarkierungen
Nur Kapitel neu generieren
Wenn du bereits ein Transkript hast und die Kapitel neu generieren möchtest:
cd video-processor
uv run chapters.py <transcript.md oder Ordnerpfad>
Beispiele:
# Direkt auf die Transkriptdatei verweisen
uv run chapters.py ./mein-video/transcript.md
# Oder auf den Ordner verweisen, der transcript.md enthält
uv run chapters.py ./mein-video/
Anwendungsfälle:
- Kapitel ohne erneute Transkription optimieren
- Nach der Bearbeitung des Transkripts neu generieren
- Ein anderes Gemini-Modell verwenden
Wichtige Hinweise
- Clips müssen sich in einem flachen Ordner befinden (keine Unterverzeichnisse)
- Videos werden in numerischer Reihenfolge nach Dateinamen-Präfix verarbeitet
- Geschätzte Kosten: ~$0,006 pro Minute Audio (Whisper API)
- Lange Videos werden automatisch aufgeteilt, um API-Limits zu handhaben
- Internetverbindung erforderlich
2. Thumbnail-Generierung
Grundlegender Thumbnail-Befehl
Erstelle KI-gestützte YouTube-Thumbnails:
cd video-processor
uv run thumbnail.py "deine Thumbnail-Idee hier"
Standardverhalten:
- Generiert 3 Variationen
- Speichert in:
./output/Thumbnails/[YYYY-MM-DD]/ - Verwendet
assets/face.jpg, falls vorhanden - Ausgabe: 1920x1080 PNG-Dateien
- Markenrichtlinien: Siehe references/brand-guidelines.md für Farbpalette, Komposition und Stilbest Practices
Thumbnail-Parameter
Erforderlich
- idea (positional): Dein Thumbnail-Konzept/deine Idee
Optionen für Gesichtsreferenzen
--face PFAD: Gib ein Gesichtsreferenzbild an (Standard:assets/face.jpg)--no-face: Keine Gesichtsreferenz einfügen--face-swap: Nachbearbeitung mit Replicate, um das echte Gesicht einzufügen (erfordert REPLICATE_API_TOKEN)
Stil & Referenzen
--style PFAD: Stilreferenz-Thumbnail - KI passt Layout und Ästhetik an--ref PFAD: Zusätzliches Referenzbild (kann mehrfach verwendet werden)
Logo & Ausgabe
--logo PFAD: Logo, das auf das Thumbnail eingefügt werden soll--logo-position [bottom-right|bottom-left|top-right|top-left]: Logo-Position (Standard: bottom-right)-o, --output PFAD: Ausgabeverzeichnis oder Dateipfad--variations N: Anzahl der zu generierenden Variationen (Standard: 3)
Thumbnail-Beispiele
Basis - 3 Variationen mit Standardeinstellungen:
uv run thumbnail.py "schockierte Reaktion auf Massenentlassungen bei Google"
Mit Stilreferenz:
uv run thumbnail.py "meine neue Videoidee" --style ./vorhandenes-thumbnail.jpg --face ./ich.jpg
Mit Gesichtstausch für exakte Ähnlichkeit:
uv run thumbnail.py "aufgeregt über neue KI-Funktion" --face ./ich.jpg --face-swap
Einzelne Variation zum schnellen Testen:
uv run thumbnail.py "schnelle Testidee" --variations 1
Benutzerdefiniertes Ausgabeverzeichnis:
uv run thumbnail.py "mein Videokonzept" -o ./benutzerdefinierter-ordner/
Kein Gesicht (nur Szene):
uv run thumbnail.py "dramatischer Code auf dem Bildschirm mit Fehler" --no-face
Mit Logo-Überlagerung:
uv run thumbnail.py "mein Videokonzept" --logo ./assets/logo.png
Einrichtung der Gesichtsreferenz
Für konsistente Thumbnails:
-
Füge dein(e) Porträt(s) im
assets/-Ordner hinzu:video-processor/assets/ ├── face.jpg # Standardgesicht (automatisch geladen) ├── face-excited.jpg # Alternative Ausdrücke ├── face-shocked.jpg └── logo.png # Kanallogo -
Das Skript verwendet automatisch
assets/face.jpg, falls vorhanden -
Überschreibe mit
--facefür andere Ausdrücke -
Verwende
--no-face, um die Gesichtsreferenz komplett zu überspringen
Stilreferenzen
Das --style-Flag passt vorhandene Thumbnail-Ästhetik an:
- Gesamtlayout und -komposition
- Farbschemata und Stimmung
- Textstyling (Schriftstärke, Farben, Platzierung)
- Hintergrundstil und -effekte
Perfekt für die Beibehaltung eines konsistenten Kanal-Brandings.
Markenrichtlinien & Best Practices
WICHTIG: Vor der Generierung von Thumbnails lies references/brand-guidelines.md für:
- Verwendung der blauen Markenfarbe (als Akzent, nicht dominant)
- Anforderungen an natürliche Hauttöne (kein Blaustich im Gesicht)
- Ausgewogene Farbpaletten (Mischung aus lebendigen Farben)
- Text-Hervorhebungsmuster (1-2 Schlüsselwörter in Blau)
- Kompositionsrichtlinien (Layout, visueller Fluss)
- Bewährte Beispiele aus früheren erfolgreichen Thumbnails
Diese Richtlinien stellen sicher, dass Thumbnails die Markenkonsistenz wahren und gleichzeitig häufige Fallstricke wie Übersättigung oder unnatürliche Beleuchtung vermeiden.
Gesichtstausch für exakte Ähnlichkeit
KI-generierte Gesichter sind möglicherweise nicht exakt. Verwende --face-swap für die Nachbearbeitung:
uv run thumbnail.py "meine Videoidee" --face ./ich.jpg --face-swap
So funktioniert es:
- Generiert Thumbnail mit KI (unter Verwendung des Gesichts als Referenz für die Positionierung)
- Nachbearbeitung mit Replicate, um dein tatsächliches Gesicht einzufügen
Einrichtung:
- Erhalte Replicate API-Token unter https://replicate.com/account/api-tokens
- Füge zu
.envhinzu:REPLICATE_API_TOKEN=r8_dein_token_hier - Kosten: ~$0,003 pro Gesichtstausch (~370 Tauscher pro $1)
Thumbnail-Spezifikationen
| Element | Wert |
|---|---|
| Auflösung | 1920x1080 (1080p) |
| Seitenverhältnis | 16:9 |
| Format | PNG (oder JPG mit --output .jpg) |
| Standardvariationen | 3 |
| Modell | Gemini 3 Pro (Nano Banana Pro) standardmäßig |
Wichtige Thumbnail-Hinweise
- Gemini-Modell unterstützt Referenzbilder; Imagen nicht
- Kosten: ~$0,13 pro Bild mit Gemini 3 Pro
- Gesichtstausch fügt ~$0,003 pro Thumbnail hinzu
- 3 Thumbnails mit Gesichtstausch: ~$0,40 gesamt
- Internetverbindung erforderlich
3. LinkedIn-Post-Bildgenerierung
Grundlegender LinkedIn-Bildbefehl
Erstelle KI-gestützte LinkedIn-Post-Bilder und Infografiken:
cd video-processor
uv run linkedin-post.py "dein Post-Konzept hier"
Standardverhalten:
- Generiert 3 Variationen
- Speichert in:
./output/LinkedIn/[YYYY-MM-DD]/ - Ausgabe: 1200x1200 PNG-Dateien (LinkedIn-Quadratformat)
- Optimiert für Infografik-Layouts (keine Gesichter, weißer Hintergrund, flaches Design)
LinkedIn-Bild-Parameter
Erforderlich
- idea (positional): Dein LinkedIn-Post-Konzept/deine Idee
Stil & Referenzen
--style PFAD: Stilreferenzbild - KI passt Layout und Ästhetik an--ref PFAD: Zusätzliches Referenzbild (kann mehrfach verwendet werden)
Logo & Ausgabe
--logo PFAD: Logo, das auf das Bild eingefügt werden soll--logo-position [bottom-right|bottom-left|top-right|top-left]: Logo-Position (Standard: bottom-right)-o, --output PFAD: Ausgabeverzeichnis oder Dateipfad--variations N: Anzahl der zu generierenden Variationen (Standard: 3)
LinkedIn-Bild-Beispiele
Basis - 3 Variationen:
uv run linkedin-post.py "KI-Validierungspyramide mit 5 Ebenen, die menschliche vs. Agent-Verantwortlichkeiten zeigt"
Mit Stilreferenz:
uv run linkedin-post.py "mein Infografik-Konzept" --style ./vorhandene-infografik.jpg
Einzelne Variation zum Testen:
uv run linkedin-post.py "schneller Test" --variations 1
Benutzerdefiniertes Ausgabeverzeichnis:
uv run linkedin-post.py "mein Konzept" -o ./benutzerdefinierter-ordner/
Mit Logo-Überlagerung:
uv run linkedin-post.py "meine Infografik" --logo ./assets/logo.png
LinkedIn-Bild-Spezifikationen
| Element | Wert |
|---|---|
| Auflösung | 1200x1200 (LinkedIn-Quadrat) |
| Seitenverhältnis | 1:1 |
| Format | PNG (oder JPG mit --output .jpg) |
| Standardvariationen | 3 |
| Modell | Gemini 3 Pro (Nano Banana Pro) standardmäßig |
| Stil | Professionelle Infografik, keine Gesichter, flaches Design |
Wichtige LinkedIn-Bild-Hinweise
- Optimiert für professionelle Geschäftsinfografiken
- Dunkles Thema mit moderner, eleganter Ästhetik
- KEINE Gesichter oder Personen enthalten (reiner Diagramm/Infografik-Stil)
- Blaues Farbschema mit Verläufen
- Höhere Informationsdichte als YouTube-Thumbnails
- Kosten: ~$0,13 pro Bild mit Gemini 3 Pro
- Internetverbindung erforderlich
4. Generische Bildgenerierung
Grundlegender generischer Bildbefehl
Erstelle KI-gestützte Bilder mit benutzerdefinierten Abmessungen für jede Plattform:
cd video-processor
uv run image-gen.py "dein Bildkonzept" --dimensions BREITExHÖHE
Hauptfunktionen:
- Benutzerdefinierte Abmessungen (erforderlicher Parameter)
- Minimale Prompt-Umhüllung (maximale Flexibilität)
- Unterstützt Stilreferenzen
- Speichert in:
./output/Images/[YYYY-MM-DD]/ - Standard: 3 Variationen
Generische Bildparameter
Erforderlich
- idea (positional): Dein Bildkonzept mit vollständigen Prompt-Details
--dimensions BREITExHÖHE: Bildabmessungen (z.B. 1080x1080, 1200x675)
Stil & Referenzen
--style PFAD: Stilreferenzbild - KI passt Ästhetik an--ref PFAD: Zusätzliches Referenzbild (kann mehrfach verwendet werden)
Logo & Ausgabe
--logo PFAD: Logo, das auf das Bild eingefügt werden soll--logo-position [bottom-right|bottom-left|top-right|top-left]: Logo-Position (Standard: bottom-right)-o, --output PFAD: Ausgabeverzeichnis oder Dateipfad--variations N: Anzahl der zu generierenden Variationen (Standard: 3)
Generische Bildbeispiele
Instagram-Quadratbeitrag:
uv run image-gen.py "minimalistisches Produktfoto auf weißem Hintergrund" --dimensions 1080x1080
Instagram-Story:
uv run image-gen.py "vertikales Motivationszitat-Design" --dimensions 1080x1920
Twitter-Beitragsbild:
uv run image-gen.py "Tech-Ankündigungsgrafik mit blauem Thema" --dimensions 1200x675
Facebook-Titelbild:
uv run image-gen.py "professioneller Geschäftskopf" --dimensions 820x312
Mit Stilreferenz:
uv run image-gen.py "mein Konzept" --dimensions 1200x1200 --style ./referenz.jpg
Referenz für gängige Abmessungen
| Plattform | Größe | Seitenverhältnis | Befehl |
|---|---|---|---|
| YouTube Thumbnail | 1920x1080 | 16:9 | Verwende stattdessen thumbnail.py |
| LinkedIn Quadrat | 1200x1200 | 1:1 | Verwende stattdessen linkedin-post.py |
| Instagram Quadrat | 1080x1080 | 1:1 | --dimensions 1080x1080 |
| Instagram Story | 1080x1920 | 9:16 | --dimensions 1080x1920 |
| Twitter Beitrag | 1200x675 | 16:9 | --dimensions 1200x675 |
| Facebook Beitrag | 1200x630 | 1.91:1 | --dimensions 1200x630 |
| Pinterest Pin | 1000x1500 | 2:3 | --dimensions 1000x1500 |
Wichtige generische Bildhinweise
--dimensionsist erforderlich – kein Standardwert- Der Prompt wird minimal umhüllt, um dir die vollständige Kontrolle zu geben
- Stilreferenzen funktionieren mit Gemini (nicht mit Imagen)
- Kosten: ~$0,13 pro Bild mit Gemini 3 Pro
- Internetverbindung erforderlich