Communitygithub.com

Video edit

Bearbeitet Talking-Head-, Tutorial-, Erklär- und Kurzvideos mit Claude Code. Wortgenaue Schnitte aus Rohaufnahmen, Bewegungsgrafiken als HTML + GSAP (optional three.js), synchron zum gesprochenen Wort, Soundeffekte synthetisiert in Python, ehrliche Lautstärkebehandlung und frame-genaues Rendern.

Was ist Video edit?

Dieses Skill ermöglicht es Claude Code, gemeinsam mit einem menschlichen Editor Rohmaterial in eine fertige Videobearbeitung zu verwandeln. Es analysiert Transkripte, erstellt grobe Schnitte basierend auf Wort-Zeitstempeln und baut animierte Grafiken in HTML/CSS/GSAP, die exakt mit dem gesprochenen Wort synchronisiert sind. Der Workflow ist in Stufen unterteilt: Transkription, Grobschnitt, Grafik-Design, Soundeffekte und finales Rendern. Das Skill unterstützt verschiedene Video-Typen (Erklärvideos, Tutorials, Kurzvideos) und merkt sich die Präferenzen des Erstellers wie Markenfarben, Logo und Schriftart für zukünftige Projekte. Entwickler können es über die Befehlszeile in ihrem Projektverzeichnis nutzen, nachdem sie das Skill initialisiert haben.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Mert-Oezdemir/video-edit-workbench/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht Video edit?

Dieses Skill verwandelt Rohmaterial zusammen mit einem menschlichen Editor in eine fertige Bearbeitung. Lies diese gesamte Datei, bevor du ein Projekt anfasst. Lies dann reference/audio.md vor jedem Schnitt oder jeder Lautstärkeänderung und reference/style.md vor jeder Grafik.

Zuerst gelesen: Was du kannst und was nicht

  • Du kannst nicht hören. Du hörst niemals Audio. Alles, was du über Ton weißt, stammt aus Zahlen: Whisper-Wort-Zeitstempel, eine 10-ms-Energiehüllkurve, Lautstärkemesser, Spektrogramme. Sage dies dem Benutzer deutlich und behaupte niemals, dass etwas ")gut klingt".
  • Das menschliche Ohr ist die endgültige Kontrolle. Ob ein Schnitt ein Wort abschneidet, ob ein Effekt zu laut ist, ob eine Stimme dumpf klingt: Der Benutzer entscheidet. Deine Aufgabe ist es, jedes Problem messbar und jede Korrektur schnell zu machen.
  • Der erste Durchgang ist nie der endgültige Schnitt. Arbeite Stufe für Stufe, übergebe nach jeder Stufe eine Vorschau und erwarte Korrekturen. Die meisten guten Ergebnisse entstehen aus kurzen Überprüfungszyklen, nicht aus einem langen autonomen Lauf.
  • Synchronisation durch Konstruktion, nicht durch Gehör. Animationen und Soundeffekte werden von derselben Timeline-Uhr ausgelöst, und diese Uhr wird aus den gemessenen Wortzeiten abgeleitet. So landen Effekte auf dem Bild, ohne dass du sie hörst.
  • Sei kreativ, aber zielgerichtet. Jedes visuelle Element sollte dem Betrachter helfen zu verstehen, und nichts sollte wie eine Vorlage aussehen. Siehe "Kreative Richtung" unten.

Pfade

Befehle werden aus dem Projektordner des Benutzers ausgeführt. $SKILL ist der Ordner, in dem sich diese Datei befindet (z. B. ~/.claude/skills/video-edit); setze es einmal in der Shell: SKILL=~/.claude/skills/video-edit.

Erster Durchlauf: Lerne den Ersteller kennen

Suche nach dem Erstellerprofil unter ~/.claude/video-edit/profile.md. Wenn es nicht existiert, ist dies der erste Durchlauf: Stelle dich in einer kurzen Nachricht vor und frage diese gemeinsam ab. Der Benutzer kann jede Frage überspringen.

  1. Name auf dem Bildschirm: Der Name und eine einzeilige Rolle für das untere Drittel und den Endbildschirm.
  2. Kanal: Kanalname, Plattformen (YouTube, Instagram, TikTok …), die Sprache, in der sie in den Videos sprechen, und ob sie eine zweite Sprache auf dem Bildschirm wünschen.
  3. Farben: Die Farben, die sie mögen (eine Akzent- und ein oder zwei Unterstützungsfarben) und Farben, die sie niemals wollen. Ein Thumbnail oder eine Markenseite funktioniert auch als Antwort.
  4. Logo: Eine Logodatei (SVG oder PNG mit Transparenz) und wo es erscheinen darf: unteres Drittel, Endbildschirm oder nirgendwo.
  5. Schriftart: Eine Markenschriftart oder die Standardschriftart.
  6. Übliche Videos: Lehrreich, Talk, Tutorial, Kurzvideos und wie ruhig oder energisch sie die Bewegung mögen.
  7. Sound: Soundeffekte nie, nur wenn ein Sound das gezeigte Ding ist, oder auch leise bei Übergängen. Hintergrundmusik ja oder nein.
  8. Nie: Dinge, die sie nicht mögen (Glühen, Kursivschrift, Emojis, schnelle Zooms, eine Farbe …).

Speichere die Antworten in ~/.claude/video-edit/profile.md (Format in reference/profile.md) und kopiere das Logo in ~/.claude/video-edit/brand/. Zeige das gespeicherte Profil in ein paar Zeilen an und frage, ob es richtig ist.

Von da an:

  • Lies das Profil zu Beginn jedes Projekts und wende es an, ohne erneut zu fragen: Die Akzent- und Unterstützungsfarben gehen in die CSS-Variablen der Szene, der Name und das Logo in das untere Drittel und den Endbildschirm, und die Standardeinstellungen für Sound und Bewegung in den Plan.
  • Merke dir dauerhafte Regeln. Wenn der Benutzer eine Regel für alle Videos gibt ("kein Sound bei Übergängen", "immer in 4K und 480p liefern", "mein Akzent ist jetzt grün"), füge sie sofort mit dem Datum zum Profil unter "Dauerhafte Regeln" hinzu und sage, dass du das getan hast. Eine Regel für ein einzelnes Video kommt stattdessen in die work/NOTES.md dieses Projekts. Wenn du dir unsicher bist, frage nach.
  • Das Profil ist persönlich. Es befindet sich im Home-Ordner des Benutzers. Kopiere es niemals in ein Projekt, das geteilt wird, oder in ein Repository.

Jedes Projekt: Fragen

Stelle diese einmal pro Projekt und behalte die Antworten in work/NOTES.md. Überspringe, was das Profil bereits beantwortet.

  1. Videotyp: Lehrreich / Erklärvideo, Talk (Talking Head), Tutorial mit Bildschirmaufnahme oder Kurzvideo (vertikal, unter 60 s). Dies legt das Bewegungsniveau fest (siehe Tabelle unten).
  2. Rohmaterial: Welche Clips, in welcher Reihenfolge, gibt es ein Skript oder eine Gliederung, der gefolgt werden soll?
  3. Bildschirmsprache(n): Aus dem Profil, es sei denn, dieses Video ist anders.
  4. Soundeffekte: Aus dem Profil. Ohne Profil ist die Voreinstellung keine Effekte bei Übergängen, Effekte nur dort, wo ein Sound das Thema ist.
  5. Liefergegenstände: Auflösung (1080p / 1440p / 4K), Untertitel und deren Sprachen, YouTube-Kapitelliste, Frist.

Videotypen

TypBewegungSoundeffekteSchnitte
Lehrreich / ErklärvideoRuhig und seriös. Saubere Diagramme, lesbare Panels, langsame Kamerabewegungen. three.js nur, wenn es etwas erklärt (ein 3D-Modell des gelehrten Dings).Keine oder sehr leise ÜbergängeNatürliches Tempo
Talk (Talking Head)Wenige Karten, die lange auf dem Bildschirm bleiben, platziert in leeren Bereichen, niemals über dem Gesicht.Nur leise KapitelübergängeNatürlich oder straff
Tutorial / BildschirmaufnahmeZoom in den besprochenen Bildschirmbereich, Hervorhebungsboxen, Schrittkarten.Optionale leise Klicks bei HervorhebungenNatürlich
KurzvideoEnergetischer: schnellere Einblendungen, größere Schrift, ein Haken in den ersten 2 s, Untertitel an. Trotzdem abgerundet, nie ruckelig.Erlaubt, immer noch unter der StimmeStraff

Wenn der Benutzer es nicht sagt, leite den Typ aus dem Transkript ab und bestätige ihn. Über-animiere kein Lehrvideo und mache kein Kurzvideo langsam.

Kreative Richtung

Sei kreativ, aber zielgerichtet. Ein guter Schnitt erklärt das Thema besser, als es der Sprecher allein könnte, und er sieht niemals aus wie dieselbe immer wieder eingefügte Karte.

  • Erklären, nicht dekorieren. Frage bei jedem Beat: Was würde dies für jemanden, der noch nie davon gehört hat, verständlich machen? Zeichne die abstrakte Idee (für "das Modell braucht viele Daten", zeige viele verschiedene Gesichter, die gescannt und beschriftet werden). Wenn ein Werkzeug, eine Sprache oder ein Begriff genannt wird, den viele Zuschauer vielleicht nicht kennen, zeige eine kleine Box: seinen Namen, um welche Art von Ding es sich handelt (Sprache, Werkzeug, Modell, Konzept) und einen einfachen Satz.
  • Verwende echtes Material. Die eigenen gemessenen Daten des Videos (die Wellenform des gesprochenen Satzes, die tatsächlichen Lautstärkewerte), echte Screenshots und Bildschirmaufnahmen, die der Benutzer hat, das echte Vorher und Nachher. Echte Beweise schlagen jedes erfundene Beispiel. Frage den Benutzer nach Screenshots, wenn ein Beat einen benötigt.
  • Zeige Fehler ehrlich. Wenn das Video über etwas spricht, das schiefgelaufen ist, zeige den tatsächlichen Screenshot, die gegebene Notiz und die korrigierte Version nebeneinander.
  • Variiere die Form. Wechsle zwischen einer Stichwortkarte, einer Liste, die wächst, während jeder Punkt genannt wird, einem Zähler, einer Vollbildtafel für eine dichte Idee, einem Zoom in den Bildschirm, einem gerahmten Einsatz eines anderen Videos. Wähle die Form, die zum Inhalt passt, nicht die zuletzt verwendete.
  • Eine Idee nach der anderen, ruhige Bewegung. Kreativ bedeutet nicht überladen. Halte das Bewegungsniveau des Videotyps und des Profils ein.
  • Stelle die großen Teile zuerst vor. Bevor du eine Vollbildtafel, eine Montage oder eine 3D-Szene baust, beschreibe sie in zwei Zeilen und lass den Benutzer zustimmen.

Der Workflow

Arbeite in dieser Reihenfolge. Halte nach jeder nummerierten Stufe an und übergib eine Vorschau-URL oder -Datei plus eine kurze Liste dessen, was du entschieden hast und warum.

0. Projektstruktur

project/
  src/            Rohclips (oder Symlinks dorthin)
  work/           Alles Generierte: wav, Transkripte, program.json, proxy.mp4, sfx/, NOTES.md, Backups
  scene/          Die Bewegungsgrafik-Seite (kopiert aus der Vorlage dieses Skills)
  out/            Rendervorgänge und endgültige Dateien

Halte das Projekt nach Möglichkeit außerhalb von Cloud-synchronisierten Ordnern (iCloud Desktop, Dropbox). Synchronisierte Dateien können während des Renderns von der Festplatte entfernt werden und Lesevorgänge hängen dann.

1. Transkribieren

python3 $SKILL/scripts/transcribe.py --project . src/*.mov --lang en

Dies teilt jeden Clip an Pausen auf, transkribiert jedes kurze Stück separat (mit Stille aufgefüllt) und schreibt work/transcripts/<clip>.json + .txt mit nummerierten Äußerungen und Wortzeiten. Das Transkribieren ganzer Dateien verbirgt Wiederholungen: Whisper führt wiederholte Sätze zusammen und lässt wiederholte Wörter weg. Siehe reference/audio.md.

Lies dann die .txt-Dateien selbst. Markiere Wiederholungen, Fehlstarts, halbe Sätze und Füllwörter. Sprecher wiederholen oft einen Satz zwei- oder dreimal; behalte die letzte flüssige Aufnahme, es sei denn, der Benutzer sagt etwas anderes.

2. Grobschnitt

Schreibe work/edl.json (Format in reference/edl.md): die zu behaltenden Äußerungen, in der Reihenfolge des Skripts, mit Kapitelmarkierungen. Dann:

python3 $SKILL/scripts/cuts.py --project .          # edl.json -> work/program.json (Schnittpunkte an echten Wortgrenzen eingerastet)
python3 $SKILL/scripts/build.py --project . audio video   # -> work/prog.wav + work/proxy.mp4 (1080p Vorschau)
python3 $SKILL/scripts/verify.py --project .        # Transkribiert jede Verbindung neu, markiert abgeschnittene Wörter und übrig gebliebene Wiederholungen

Behebe, was verify.py markiert, baue neu und übergib erst dann. Teile dem Benutzer die neue Länge und wie viele Schnitte gemacht wurden.

3. Überprüfungsschleife

  • Der Benutzer gibt Zeitstempel an. Ordne sie nach Inhalt zu, nicht nach der Uhrzeit. Ihr Tab zeigt möglicherweise eine ältere Version. Zitiere den Satz, den du glaubst, dass sie meinen, und bestätige, wenn du dir unsicher bist. Wenn eine Zeit nicht übereinstimmt, durchsuche die Transkripte nach den zitierten Wörtern.
  • Kopiere vor jeder neuen Version work/edl.json und work/program.json nach work/backup/vN/. Wenn der Benutzer sagt "alles rückgängig machen", stelle genau wieder her, interpretiere nicht neu.
  • Ersetze niemals work/proxy.mp4, während der Benutzer es ansieht; schreibe die neue und sage, wann sie bereit ist.
  • Ändere immer nur eine Sache auf einmal, wenn der Benutzer unzufrieden ist. Eine defekte Vorschau lässt die Leute die gesamte Überarbeitung anzweifeln.

4. Kapitel

Teile das Video nach Bedeutung in Kapitel ein, nicht nach der Uhrzeit:

  • Ein Kapitel pro tatsächlichem Themenwechsel, in der Reihenfolge, die der Betrachter zum Verständnis benötigt. Folge den Abschnitten des Skripts, wenn es eins gibt.
  • Für ein 10–15-minütiges Video sind das normalerweise 5–10 Hauptkapitel, jedes mindestens etwa 45 s lang. Ein kurzes Unterthema bleibt als Chip-Änderung innerhalb seines Kapitels, nicht als eigenes Kapitel.
  • Betiteln jedes Kapitel mit dem, was der Betrachter daraus gewinnt ("Wo die KI falsch lag"), nicht mit einer vagen Bezeichnung ("Teil 3"). Kurz genug, um es auf einen Blick zu lesen.
  • YouTube-Regeln: Das erste Kapitel beginnt bei 0:00, mindestens drei Kapitel in aufsteigender Reihenfolge, jedes mindestens 10 s lang, Zeitstempel mit Doppelpunkten geschrieben (0:51, nicht 0.51), in der Beschreibung (nicht in einem Kommentar). Kapitel, die eine Regel verletzen, schlagen stillschweigend fehl.

Schlage die Liste mit einer Zeile vor, warum jedes Kapitel dort beginnt, wo es beginnt. Nach der Genehmigung füge {"chapter": "..."} Elemente zur EDL hinzu. cuts.py gibt eine YouTube-Kapitelliste aus (0:00 Intro …) und schreibt work/chapters.txt. Die Einblendungen auf dem Bildschirm und die YouTube-Liste verwenden dieselben Zeiten.

Ein Kapitelübergang auf dem Bildschirm ist eine Vollbild-Einblendung (siehe reference/style.md, Abschnitt 9): die Kapitelnummer, der Titel und eine Fortschrittsleiste. Füge 0,3–0,6 s des eigenen Raumtons des Clips vor jedem Kapitel ein, damit die Einblendung nicht über das letzte Wort wischt.

5. Grafiken, Bereich für Bereich

Kopiere die Vorlage in das Projekt (cp -R $SKILL/template scene), bediene das Projekt und öffne die Szene. ?demo zeigt die Demo der Vorlage; ohne sie lädt die Szene work/program.json und spielt work/proxy.mp4 ab:

python3 $SKILL/scripts/serve.py --project . --port 5600     # http://127.0.0.1:5600/scene/

Arbeite jeweils an einem Kapitel oder Zeitbereich, niemals am gesamten Video auf einmal. Für jeden Bereich:

  1. Liste die Beats auf: die wenigen Dinge, die es wert sind, gezeigt zu werden (Zahlen, Schritte, ein Vergleich, eine Schlüsselidee, eine Quelle). Bringe die Erzählung nicht auf den Bildschirm. Karten sind keine Untertitel; sie tragen, was die Stimme nicht kann (Struktur, Daten, ein Bild). Verwende die kreative Richtung oben.
  2. Verankere jeden Beat mit at('phrase') an einem gesprochenen Wort. Ein Element erscheint, wenn sein Wort gesprochen wird (etwa 0,1 s davor) und verlässt erst, nachdem sein Satz endet. at() gibt die erste Übereinstimmung zurück: Für eine mehrfach gesagte Phrase übergib { from: sectionStart }. Eine Zahl in der Sprache kann ein Zeitstempel sein ("bei null achtzehn" ist 0:18 eines Videos, nicht 0,18 Sekunden); überprüfe den Kontext, bevor du sie zeichnest.
  3. Platziere die Übergänge (reference/style.md, Abschnitt 9): eine Einblendung an jedem Kapitel, ein Weichzeichner-Dip, wo das Bild springt, ein dunkler Weichzeichner-Dip, wo ein Schnitt eine ganze Passage entfernt. Nichts bei einfachen Schnitten.
  4. Überprüfe ?t=SEKUNDEN friert bei den Beats ein, dann übergib die URL. Überprüfe immer auch ?t=0: Der erste Frame ist das, was YouTube und die meisten Player vor der Wiedergabe zeigen, also darf dort nichts sichtbar sein, was später hingehört.

Nach einem Neuschnitt überprüfe jede Zeit, die an einen Quellenmoment gebunden ist, nicht an ein Wort: Eine Quellenzeit, die weggeschnitten wurde, existiert nicht mehr im Programm.

Die Regeln, die für jeden Frame gelten, stehen in reference/style.md. Führe das Layout-Audit vor jeder Übergabe durch:

node $SKILL/scripts/audit.mjs http://127.0.0.1:5600/scene/ --every 0.5

6. Soundeffekte (nur wenn gewünscht)

Folge dem Profil. Ohne eines platziere keinen Sound bei Übergängen; verwende Effekte, wo ein Sound das Thema ist (zeigen, wie ein Whoosh bei einem bestimmten Pegel klingt, ein Klick auf dem erklärten Button). Generiere die Bibliothek, dann steuere Effekte aus der Timeline der Szene mit cue(t, 'whoosh'):

python3 $SKILL/scripts/sfx.py lib --out scene/sfx            # --gain -3 macht jeden Effekt 3 dB leiser

Pegel und Regeln sind in reference/audio.md. Die erste Reaktion des Benutzers auf den Pegel entscheidet: Wenn sie sagen "kann es nicht hören" oder "zu viel", ändere den Pegel in kleinen Schritten und merke dir die Antwort für den Rest des Videos.

7. Finales Rendern und Mischen

python3 $SKILL/scripts/build.py --project . video --final           # Quellauflösungs-Videoprogramm (der Rendering-Hintergrund)
node $SKILL/scripts/render.mjs "http://127.0.0.1:5600/scene/?src=../work/prog-final.mp4" --out out/frames --workers 4 --dpr 2
python3 $SKILL/scripts/mix.py --project . --video out/frames --out out/FINAL.mp4
python3 $SKILL/scripts/loudness.py out/FINAL.mp4

Starte ein langes finales Rendern erst, nachdem der Benutzer die Vorschau genehmigt hat. Frage, bevor du etwas löschst, um Speicherplatz freizugeben.

Liefere die Datei plus einen kurzen Bericht: Länge, Auflösung, Lautstärkemessungen und eine Liste der verwendeten Kapitel.


Referenzen

Weitere Details finden sich in den Referenzdateien dieses Skills:

  • reference/audio.md: Detaillierte Audio-Richtlinien (Transkription, Schnitte, Lautstärke, Mischen)
  • reference/style.md: Stilrichtlinien für Grafiken, Animationen und Layout
  • reference/edl.md: Format der Schnittlisten-Datei (EDL)
  • reference/profile.md: Format des Erstellerprofils

Verwandte Skills