Communitygithub.com

kidsavagez/reel

Skript-zu-fertigem-Reel-Pipeline mit zwei menschlichen Toren. Schreibt das Skript mit Effekt-Hinweisen und wählt nach dem Dreh die besten Takes aus, entfernt tote Luft und Füllwörter, fügt Effekte, Untertitel und Einblendungen hinzu, rendert eine Vorschau, nimmt Notizen auf, rendert das Finale und erstellt den Post-Text.

Was ist reel?

Dieses Skill ermöglicht eine vollständige „Reel“-Produktion – vom Skript bis zum fertigen Video – mit zwei menschlichen „Toren“ (Genehmigungen). Der Benutzer gibt eine Idee oder ein Referenzvideo vor, der Agent schreibt ein Skript mit Timing, Onscreen-Text und Effekten (z.B. visuelle Cues auf einzelnen Wörtern). Nachdem der Benutzer das Rohmaterial aufgenommen hat, transkribiert und synchronisiert der Agent die Takes, wählt die besten aus, entfernt tote Luft und generiert eine Rohschnitt-Vorschau. Anschließend werden Effekte, Untertitel und Musik hinzugefügt, eine Vorschau gerendert und der Benutzer gibt Feedback. Der finale Render und ein optimierter Social-Media-Text (Caption) werden erstellt. Das Skill unterstützt Sprachen (id, en, auto), Voice-only Reels, Style-Referenzen und arbeitet auf Windows, Mac und Linux mit einer eigenen Python-Umgebung und Abhängigkeiten (ffmpeg, Whisper, etc.). Es ist für Claude Code und andere KI-Agenten-Plattformen konzipiert.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kidsavagez/CLAUDE-VIDEO-PIPLINE/tree/HEAD/.claude/skills/reel

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht reel?

Wo die Dinge sind und Ersteinrichtung

  • Pipeline-Ordner = der video-pipeline Ordner, in dem dieses Skill lebt (drei Ebenen über dieser Datei: video-pipeline/.claude/skills/reel/SKILL.md). Führe jeden Befehl von dort aus. Projekte leben in projects/<datum>-<slug>/ darin.
  • PY = das eigene Python der Pipeline. Verwende es für jeden Befehl unten, niemals das System-Python: .venv/Scripts/python.exe auf Windows, .venv/bin/python auf Mac oder Linux.
  • Wenn PY noch nicht existiert, richte es zuerst ein, ohne den Benutzer zur Eingabe aufzufordern: führe python install.py aus (oder py install.py auf Windows, python3 install.py auf Mac). Falls es mit „ffmpeg fehlt“ oder „git fehlt“ abbricht, installiere dieses Tool für sie (Windows: winget install ffmpeg / winget install Git.Git; Mac: brew install ffmpeg), sag ihnen, Claude Code neu zu starten, falls der neue Befehl nicht gefunden wird, und führe die Installation dann erneut aus. Wenn die Installation READY ausgibt, führe PY scripts/selftest.py aus und bestätige 9/9 bestanden.
STYLE (einmal pro Referenz) -> 1 BRIEF -> [Tor: Benutzer genehmigt Skript] -> 2 DREH (Benutzer)
-> 3 AUSRICHTEN -> 4 SCHNITT -> 5 EFFEKTE -> 6 VORSCHAU -> [Tor: Benutzer-Notizen, Schleife] -> 7 FINAL

Du schreibst, schneidest und renderst. Der Benutzer dreht, genehmigt und postet. Von hier aus wird nie etwas gepostet.

0. Stil von einer Referenz (wenn der Benutzer Referenz-Edits sendet)

  1. PY scripts/style_ref.py <ref.mp4> [weitere refs] --name <stilname>
  2. Öffne jedes Bild, das es in styles/refs/<stilname>/ erstellt, und lies die report.json-Zahlen.
  3. Schreibe styles/<stilname>.json mit NUR den Schlüsseln, die von styles/default.json abweichen: Schriftart/Größe/Farben/Position/Wörter pro Gruppe/Großschreibung der Untertitel, Onscreen-Text-Aussehen, Schnittdichte (cut.max_gap: enger für schnelle Edits), Effektabstand (effects.min_gap, vom Tempo der Referenz), Lautstärke.
  4. Schreibe styles/<stilname>.md: was der Edit in einfachen Worten macht. Welche der 51 Effekte zu den Bewegungen passen, die du gesehen hast, wie oft etwas auf dem Bildschirm passiert, wie der Hook eröffnet, was er nie tut. Füge die gemessenen Zahlen hinzu (Schnitte pro Minute, Shottlänge).
  5. Zeige dem Benutzer die .md und frage, was du falsch verstanden hast. Du siehst Sample-Frames, keine Bewegung oder Ton: sag das und bitte sie, Zeitstempel zu nennen, die sie lieben (--at 7.2,12 erfasst diese Frames).

Schriftarten: Untertitel können jede Schriftart in vendor/claude-video-effects/fonts/ verwenden (Montserrat, Anton, Archivo Black, Inter, Instrument Serif, Playfair Display, Space Mono, Permanent Marker) oder jede .ttf/.otf, die der Benutzer in fonts/ ablegt.

1. Briefing

  1. PY scripts/new_project.py "<slug>" --lang id --style <stil> (lang: id, en oder auto).
  2. Lese ~/.claude/youtube/voice.md oder ~/.claude/instagram/voice.md, falls vorhanden. Schreiben in der Sprache und Stimme des Benutzers. Erfinde nie eine Zahl, ein Ergebnis oder einen Kunden; frage oder lasse {{zahl}} stehen.
  3. Fülle script.json: eine Zeile pro Satz, den sie sagen werden, Rollen hook / body / cta.
    • Hook: schreibe 3 Optionen, empfehle eine, halte sie unter ~3 Sekunden gesprochen.
    • onscreen: kurzer Text für den Hook (und jede Zeile, die eine Titelgrafik braucht).
    • effects: Cue-Effekte AUF EINEM WORT: {"fx": "backdrop-word", "on": "GRATIS", "text": "GRATIS"}. Wähle aus der .md des Stils. Maximal ein Effekt alle effects.min_gap Sekunden. Nicht jede Zeile bekommt einen. Effekte, die eigene Reels des Benutzers verwenden (orbit, phone-fan, place-in-grid, fan-build, noise, profile-wall, carousel-spin) benötigen "images": "<ordner>".
    • Diagramme und Zähler (liquid-glass-graph, over-the-shoulder-zoom) nur mit echten Zahlen.
  4. Schreibe daneben brief.md: die Hook-Optionen, das Skript, wie sie es lesen werden, eine Shot-Notiz pro Effekt („Zeile 4: lasse Platz über deinem Kopf“) und die Drehregeln aus templates/shooting.md.
  5. Tor: zeige das Skript und halte an. Fahre erst fort, wenn der Benutzer es genehmigt hat.

2. Dreh (Benutzer)

Sie legen die Dateien in <project>/raw/. Mehrere Dateien sind in Ordnung; sie werden in Namensreihenfolge verwendet.

3. Ausrichten

  1. PY scripts/transcribe.py <project> (beim ersten Lauf wird das Whisper-Modell heruntergeladen). Viele Neustarts in der Aufnahme oder der Schnitt wiederholt trotzdem Wörter? Verwende stattdessen: PY scripts/burst_transcribe.py <project>: es transkribiert jeden Sprachstoß einzeln (large-v3-turbo), sodass ein Neustart nach einer Pause nie mit dem nächsten Take verschmilzt. Wenn Wörter immer noch Pausen verschlucken, führe vor dem Ausrichten PY scripts/snap_words.py <project> aus.
  2. PY scripts/align.py <project>. Lese den Bericht dem Benutzer in Kurzform vor: Zeilen, die FEHLEN oder keinen VOLLSTÄNDIGEN TAKE haben, und jede Ad-lib, die es wert ist, behalten zu werden. Halte nicht für sie an, es sei denn, eine Zeile fehlt; erwähne sie mit der Vorschau.

4. Schnitt

PY scripts/cut.py <project>

Nur-Stimme Reels (der Benutzer nimmt nur seine Stimme auf, das Bild besteht komplett aus Bewegungsgrafiken): Verwende stattdessen PY scripts/cut_voice.py <project> -> work/voice.wav (sauber, -16 LUFS) und work/prog_words.json (jedes behaltene Wort mit seiner Zeit in der Schnittspur). Baue die visuellen Elemente darauf auf (HyperFrames, falls der Benutzer sie hat, oder ihren eigenen Editor). Der Effektschritt benötigt ein Gesicht, überspringe ihn also.

Hintergrundmusik ohne Lizenz: falls .venv-music/ existiert (python install.py --music), erstelle einen Teppich mit .venv-music/<Scripts|bin>/python scripts/music_bed.py work/bed.wav --seconds 30 --seed 1 --prompt "<stimmung>, no vocals", höre auf Lücken (versuche einen anderen Seed, falls ungleichmäßig) und setze "music": {"file": "<absoluter Pfad>/work/bed.wav", "db": -22}.

5. Effekte

  1. PY scripts/effects.py <project> plan. Behebe jede Warnung, indem du die Cues in script.json bearbeitest.
  2. PY scripts/effects.py <project> check, dann sieh dir JEDES work/check/fx_*.png an. Text über dem Gesicht, am Rand abgeschnitten, unleserlich: korrigiere Optionen (x, y, kürzerer text) und überprüfe erneut.
  3. PY scripts/effects.py <project> render. Dies ist der langsame Schritt (jeder Frame wird Gesichtsverfolgung unterzogen). Sag dem Benutzer, dass es läuft.

6. Vorschau

  1. PY scripts/finish.py <project> -> preview/preview_vN.mp4.
  2. PY scripts/finish.py <project> --check <t1,t2,...> in der Mitte jedes Effekts und zwei oder drei anderen Momenten. Sieh dir die PNGs an: Untertitel, die mit einem Effekt kollidieren, der Hook-Text unleserlich, alles über dem Gesicht. Behebe es vor dem Zeigen.
  3. Tor: gib dem Benutzer den Vorschaupfad und eine kurze Editliste: verwendete Takes, was geschnitten wurde, Effekte und wo. Frage nach Notizen.

Notizen in Änderungen umsetzen

NotizÄnderungNeu ab
„Nimm den anderen Take von Zeile 3“choices.json {"take": {"3": 1}}ausrichten
„Behalte, was ich bei 0:14 gesagt habe“choices.json {"keep_unmatched": ["u3"]}ausrichten
„Lasse Zeile 5 weg“choices.json {"drop_lines": [5]}ausrichten
„Schnitt zu eng / zu locker“Stil cut.max_gap, cut.post_padausrichten
„Kein Effekt dort“ / „Größeres Wort“script.json Effekteeffects plan
Untertitel-Look, Onscreen-TextStil captions / onscreen, oder Skript onscreenfinish
Musikscript.json "music": {"file": "...", "db": -22}finish

Das erneute Ausführen ab einer Stufe bedeutet, dass alle Stufen danach auch erneut ausgeführt werden. Das erneute Ausführen von Ausrichten oder Schnitt bedeutet, dass Effekte erneut gerendert werden (langsam), also sammele die Notizen zuerst.

7. Final

  1. PY scripts/finish.py <project> --final -> final/final.mp4 und final/cover.jpg.
  2. Schreibe final/caption.md:
    • Die ersten ~125 Zeichen tragen den Hook; das ist alles, was der Feed vor „mehr“ zeigt.
    • Ein Call-to-Action. Wenn es „Kommentiere SCHLÜSSELWORT“ ist, stimmt es mit dem Video überein.
    • Maximal 5 Hashtags, spezifisch zum Thema, am Ende. In der Sprache und Stimme des Benutzers.
    • Keine erfundenen Zahlen. Kein „Hör auf zu scrollen“, keine Hashtag-Wände.
  3. Erinnere sie in einem Satz: Trending-Audio wird in Instagram hinzugefügt, und sie posten es selbst.

Regeln

  • Die .md des Stils ist der Geschmack. Wenn du unsicher bist, ob du etwas hinzufügen sollst, lasse es weg.
  • Bedecke nie das Gesicht. Zoome nie über 2x hinaus.
  • Sei direkt bezüglich der Grenzen: der Editor wählt Takes und Timings gut aus; er bewertet nicht ihre Darbietung. Wenn ein Take flach klingt, sage „Überprüfe die Energie in Zeile 3“, tu nicht so, als hättest du es gehört.
  • Halte projects/ aus git heraus: Rohmaterial ist groß und persönlich.

Verwandte Skills