Communitygithub.com

sridhar-raj/video-craft

Rohmaterial schneiden und Videos erstellen, die professionell aussehen – und dies mit messbaren Prüfungen belegen. Bearbeitung: Wortgenaue Transkripte, Pausen-, Füllwort- und Wiederholungsschnitte, Jump-Cut-Vergrößerungen, Untertitel (sauber, Karaoke, Kurzform-Punch), Umskalierung auf 9:16/1:1, Sprachverbesserung, Musik mit Sprachducking, plattformgerechte Lautstärke und Exporte. Erstellung: Marken-Intros und Logo-Enthüllungen (Stings), Produkteinführungen und Social Ads, kinetische Typografie, Frame-für-Frame aus HTML mit gestalteter Bewegung und synthetisiertem Ton. Nutzen Sie es für jeden Auftrag zur Bearbeitung, Kürzung, Nachbesserung, Untertitelung, Neuformatierung oder zum Export eines Videos; um einen Talking-Head-, Tutorial-, Podcast- oder Bildschirmmitschnitt in ein YouTube-Video, Short, Reel oder TikTok zu verwandeln; oder um ein Marken-Intro, Logo-Animation, Launch-Video, Werbespot, Anzeige, Titelsequenz oder Bewegtgrafiken zu erstellen. Auch zur Überprüfung eines Videos vor der Auslieferung (Lautstärke, schwarze Frames, sichere Bereiche).

Was ist video-craft?

Das Skill **video-craft** ermöglicht es KI-Agenten (z. B. Claude Code, Cursor, Codex) und Entwicklern, Videobearbeitung und -erstellung professionell durchzuführen. Es deckt zwei Hauptarbeitsbereiche ab: das **Editieren** von vorhandenem Filmmaterial (mit wortgenauen Transkripten, automatischem Entfernen von Pausen, Füllwörtern und verworfenen Aufnahmen sowie Jump-Cuts) und das **Erstellen** von Filmen wie Marken-Intros, Logo-Animationen und Werbespots aus HTML und einem Brand-Kit. Der Workflow ist streng prozessorientiert: Projekt kopieren, Parameter editieren, Einzelbilder und Entwurf rendern, Master rendern und abschließend mit einem QA-Skript prüfen. Die Qualitätssicherung (`qa.py`) misst automatisch Lautstärke, erkennt schwarze Bilder, Freeze-Frames und tote Stellen, prüft die Einhaltung von Safe-Area-Richtlinien und erstellt ein Kontaktblatt zur visuellen Inspektion. Das Skill unterstützt die Ausgabe für YouTube, Kurzformate (Shorts/Reels/TikToks) und Podcasts und integriert sich nahtlos mit ffmpeg, Whisper (für Transkription) und Remotion (für HTML-basierte Filme). Jedes Projekt wird in einem Arbeitsordner (`work/` und `out/`) abgelegt, und alle Skripte akzeptieren den `--help`-Parameter. Entscheidend ist der Grundsatz: „Fertig bedeutet geprüft“ – keine Auslieferung ohne bestandene QA. Entwickler schätzen die Deterministik (keine CSS-Animationen oder `Date.now` in Filmen, stattdessen eine eigene `film.js`-Engine) und die klaren, messbaren Erfolgskriterien.

Funktioniert mit~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/sridhar-raj/video-craft/tree/HEAD

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht video-craft?

Zwei Aufgaben, ein Standard. Editiere aufgenommenes Material oder erstelle einen Film aus einem Brand Kit und Text. In beiden Fällen wird die Arbeit geplant, bevor sie gerendert wird, durch exakte Skripte ausgeführt und durch Messungen geprüft, bevor jemand erfährt, dass sie abgeschlossen ist.

Was ein Video professionell aussehen lässt, in der Reihenfolge:

  1. Struktur. Ein Hook in den ersten 3 Sekunden, eine Idee, nichts, was seine Zeit nicht verdient.
  2. Rhythmus. Schnitte und Bewegungen landen auf Sprache und auf dem Beat; nichts ist tot, nichts hetzt.
  3. Handwerkliche Details. Luft um jeden Schnitt, Untertitel, die sich gut lesen lassen, Bewegungen, die auslaufen, Ton, der laut genug ist und niemals übersteuert.
  4. Nachweis. qa.py läuft erfolgreich und das Kontaktblatt wurde betrachtet.

Schnell-Übersicht

AufgabeVorgehen
„Aufnahme straffen / bereinigen“transcribe → plan_cuts → EDL prüfen → render → qa
„Short/Reel/TikTok daraus machen“Wie oben, plus captions.py --style punch, render.py --preset shorts --fit crop (oder blur bei Bildschirmaufnahmen)
„Untertitel hinzufügen“transcribe.py → captions.py → render.py --captions (oder .srt ausliefern)
„Musik hinzufügen“render.py --music bed.mp3 (wird automatisch unter Sprache geduckt)
„Laut genug machen / Audio korrigieren“render.py --voice --denoise, Zielwerte aus platforms.md
„Marken-Intro / Logo-Enthüllung / Sting“films/brand-sting kopieren, Brand Kit ausfüllen, Stills → Draft → Master → qa
„Launch-Video / Werbespot / Anzeige“films/launch kopieren, Text schreiben, Formate wählen, Stills → Draft → Master → qa
„Video prüfen“qa.py video.mp4 --sheet sheet.jpg [--safe]
Projekt bereits auf Remotionreferences/remotion.md

Voraussetzungen

ffmpeg 6+ und Python 3.9+ für die Bearbeitung. Transkription: pip install faster-whisper (oder openai-whisper, oder whisper.cpp). Filme: Node 18+ und Playwright (npm i -D playwright && npx playwright install chromium). Untertitel werden mit libass gebrannt, wenn ffmpeg es unterstützt, sonst mit Pillow gezeichnet (pip install pillow). Führen Sie python3 scripts/doctor.py aus, um zu sehen, was installiert ist.

Alle Skripte akzeptieren --help. Arbeiten Sie in einem Ordner pro Auftrag: work/ für Zwischenergebnisse, out/ für Liefergegenstände.

Filmmaterial bearbeiten

python3 scripts/transcribe.py raw.mp4 -o work/words.json            # Wortgenaues Transkript
python3 scripts/plan_cuts.py raw.mp4 --words work/words.json -o work/edl.json
python3 scripts/captions.py work/words.json --edl work/edl.json --style clean -o work/cap
python3 scripts/render.py work/edl.json -o out/final.mp4 --preset youtube \
        --captions work/cap.cues.json --music bed.mp3 --voice --zoom auto
python3 scripts/qa.py out/final.mp4 --edl work/edl.json --sheet out/sheet.jpg \
        --words work/words.json --words-check
  1. Lesen Sie zuerst das Transkript und entscheiden Sie über die Struktur: was komplett rauskommt (Sektionsschnitte wirken sauber; viele Schnitte mitten im Satz wirken nervös), und was der Hook ist. Fügen Sie bei Bedarf Entscheidungen über ganze Sektionen manuell in die segments der EDL ein.
  2. plan_cuts.py entfernt tote Stellen (verkürzt auf einen Atemzug, nicht auf Null), Füllwörter und verworfene Wiederholungen (behält die letzte Aufnahme). Stille wird pro Aufnahme gemessen, jede Kante wird auf reales Audio geschnappt, die Polsterung ist asymmetrisch (80 ms vor, 140 ms nach) und reicht nie in ein entferntes Wort hinein. Lesen Sie seine Liste: nachdrückliche Wiederholungen können wie eine verworfenen Aufnahme aussehen.
  3. Zwischenstopp mit der Person bei allem, was länger dauert: Dauer vorher/nachher, geschnittene Sektionen, verworfene Wiederholungen. Deren Anmerkungen werden zu EDL-Änderungen.
  4. render.py erledigt alles in einem ffmpeg-Graphen: framegenaue Trims, 8-ms-Überblendungen an jedem Schnitt, konstante Bildrate, Punch-Ins, Umskalierung, Untertitel, Sprach-Polish, geduckte Musik und Zwei-Durchgangs-Lautstärke.
  5. qa.py, dann das Blatt ansehen. --words-check transkribiert das Ergebnis erneut und benennt jedes Wort, das ein Schnitt verschluckt hat.

Urteilsvermögen, Zahlen und Fehlermodi: references/editing.md. Audio: references/sound.md.

Filme erstellen (Marken-Intros, Launch-Spots, Anzeigen)

cp -r films/brand-sting my-film && python3 scripts/sfx.py --out my-film/sfx
# PARAMS in my-film/index.html editieren (oder --params '{"name": "...", ...}' übergeben)
node scripts/render_film.mjs my-film/index.html --stills 0.5,1.6,2.4,3.5 -o work/stills  # ansehen
node scripts/render_film.mjs my-film/index.html --draft -o work/draft.mp4                 # Rhythmus beurteilen
node scripts/render_film.mjs my-film/index.html --blur 4 -o out/intro.mp4                 # Master
python3 scripts/qa.py out/intro.mp4 --no-gaps --sheet out/intro.sheet.jpg --safe
  1. Zuerst das Brand Kit (references/brand-intro.md): die offizielle Logodatei, Hex-Farben, Schriftart, genaue Wortlaute, Register, Formate, Ton und eine Quelle für jede Zahl. Niemals ein Logo neu zeichnen oder einfärben; niemals Behauptungen, Kunden oder Produkt-UI erfinden.
  2. Beat-Sheet vor dem Code: jeder Beat mit seiner Zeit, was sich bewegt, der Beschleunigung und dem Ton. Wählen Sie ein Register (premium, clean, tech, bold, playful) und skalieren Sie die gesamte Zeitleiste damit.
  3. Aufbauen mit assets/film.js: Jedes Pixel ist eine Funktion von t. Film.tween, Film.spring, Film.stagger, Film.random(seed); keine CSS-Animationen, Timer oder Date.now. Öffnen Sie das HTML in einem Browser, um es in Echtzeit zu scrubben.
  4. Stills bei jedem Beat, dann ein Entwurf, dann der Master. Korrigieren Sie, was die Stills zeigen, bevor Sie Video rendern. Master rendern ~2–5 Bilder pro Sekunde; Entwürfe sind 10× schneller.
  5. Ton ist Teil des Films. scripts/sfx.py synthetisiert das Kit (Hit, Boom, Whoosh ×3, Riser, Pop, Tick, Chime, Bett); Cues sitzen in der Filmkonfiguration und werden vom Renderer gemischt und auf Lautstärke gesetzt. Der Peak des Hits landet auf dem Enthüllungsframe.

Vorlagen: films/brand-sting (3–7 s Logo-Enthüllung, fünf Register, 16:9 / 9:16 / 1:1) und films/launch (15 s Hook → Problem → Enthüllung → Nachweis → CTA, die drei Formate, 9:16 im Safe Area der Plattformen, *wort*-Betonung). Verwenden Sie sie als Ausgangspunkte; ändern Sie die Struktur, wenn es der Briefing erfordert.

Doktrin (Timings, Easing nach Rolle, Staffelung, Schriftgrößen, Farbe, Übergänge mit Grund, die generischen Looks, die es zu vermeiden gilt, und die Tests, die sie abfangen): references/motion.md.

Immer geltende Regeln

  • Jeden Trim neu encodieren. Stream-Copy-Trims rasten auf Keyframes ein.
  • Konstante Bildrate bei allem, was ausgeliefert wird; H.264 + yuv420p + AAC + +faststart.
  • Lautstärke nach Messung: -14 LUFS / ≤ -1 dBTP für Web und Social, -16 für Podcasts.
  • Text innerhalb sicherer Bereiche: bei 9:16 nichts in den oberen 288 px, unteren 672 px oder rechten 192 px (bei 1080×1920). Schriftart ≥ 28 px bei 1080.
  • Ehrlicher Inhalt: echte Logos, echte Zahlen mit Quellen, echte Produkt-UI; angeben, wenn Musik, Stimme oder Filmmaterial generiert ist.
  • Nur lizenzierte Musik. Niemals Audio von Videos oder Streaming-Diensten extrahieren.
  • Fertig bedeutet geprüft: qa.py läuft erfolgreich, das Blatt wurde angesehen, und alles, was nicht geprüft werden konnte, wird klar benannt.

Dateien

PfadWas
scripts/transcribe.pywords.json mit Wortzeiten (faster-whisper / whisper / whisper.cpp)
scripts/plan_cuts.pyEDL: Pausen, Füllwörter, Wiederholungen entfernt, mit Begründungen
scripts/captions.pySRT, gestyltes ASS und Cue-JSON auf der editierten Zeitleiste
scripts/render.pyEDL → fertiges Video (Presets, Umskalierung, Untertitel, Musik, Lautstärke)
scripts/qa.pyFormat, Länge, Schwarz, Freeze, tote Stellen, Lautstärke, Wörter, Kontaktblatt
scripts/sfx.pySynthetisiertes Sound-Kit
scripts/render_film.mjsHTML-Film → MP4 (Entwurf, Master mit Bewegungsunschärfe, Stills, Poster)
scripts/doctor.pyWas installiert ist und was fehlt
assets/film.jsDeterministische Bewegungs-Engine + Browser-Vorschau mit Scrubber
films/Brand-Sting- und Launch-Vorlagen
references/Bearbeitung, Bewegung, Marken-Intro, Ton, Plattformen, ffmpeg, Remotion

Verwandte Skills