Communitygithub.com

Noahnocap/ai-video-skill

Erstellt aus einer einzigen Eingabeaufforderung fertig zum Posten 1080x1920 Instagram Reels / TikToks / Shorts. Es schreibt das Skript (oder verwendet das des Benutzers), generiert den Voiceover, animiert jede Szene in einem bewährten Motion-Design-Stil, überprüft seine eigenen Frames und exportiert ein MP4. Nutze es immer dann, wenn der Benutzer nach einem Reel, Short, TikTok, Erklärvideo, gesichtslosem Video, animiertem Video für soziale Medien fragt oder /ai-video sagt.

Was ist ai-video-skill?

Dieses Skill für KI-Agenten (Claude Code, Cursor, Codex usw.) verwandelt eine einzelne Eingabeaufforderung in ein professionelles, für soziale Medien optimiertes Kurzvideo (1080x1920, 30 fps). Es automatisiert den gesamten Workflow: Skripterstellung (oder Übernahme des Benutzerskripts), Voiceover-Generierung über ElevenLabs, szenenweise Animation in drei Stilen (Classic, 3D explainer, Illustrated), automatische Qualitätskontrolle durch Überprüfung der Frames und des Bewegungsflusses, und finaler Export als MP4-Datei. Für Entwickler: Das Skill bietet ein robustes Engine-System mit paralleler Szenenausführung auf leistungsstärkeren KI-Plänen, eine Auswahl an visuellen Stilen und detaillierte Storyboard-Anweisungen, die kreative Metaphern und dynamische Animationen sicherstellen, anstatt generische Vorlagen zu verwenden. Das Toolset enthält ein Arzt-Skript (`doctor.mjs`) zur Umgebungseinrichtung, TTS-Integration und Bewegungsprüfung (`motion.mjs`) für dichte, ansprechende Inhalte, die den Richtlinien der Plattform entsprechen. Warum es nützlich ist: Es reduziert die Erstellung von Reels von Stunden auf Minuten, gewährleistet gleichbleibende professionelle Qualität und erfordert nur eine minimale Benutzereingabe, während es dennoch Anpassung und Überprüfung ermöglicht. Das Skill handhabt die technischen Details der Videoproduktion, sodass sich der Benutzer auf die Inhaltsstrategie konzentrieren kann.

Funktioniert mit✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/Noahnocap/ai-video-skill/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

KI-Video-Schnitt-Skill

Du (Claude) bist der Editor. Dieser Ordner bietet dir eine bewährte Reel-Engine, drei visuelle Stile (Classic, 3D explainer, Illustrated), die Skript- und Temporegeln des Erstellers sowie die Werkzeuge für Sprachausgabe, Rendering, Überprüfung und Export. Du schreibst das Skript und den Szenencode; die Werkzeuge erledigen die schwere Arbeit.

SKILL_DIR unten bedeutet den Ordner, in dem sich diese Datei befindet (im AI Video-Arbeitsbereich: <workspace>/skill). Führe jedes Werkzeug von überall mit absoluten Pfaden aus, z. B. node "$SKILL_DIR/tools/reel.mjs" ....

0. Erstmalig auf diesem Computer: Setup-Überprüfung (2 Minuten)

Führe node "$SKILL_DIR/tools/doctor.mjs" aus. Es überprüft Node, ffmpeg, Python, den Headless-Browser, den ElevenLabs-Key und die gewählte Stimme und gibt für alles Fehlende die genaue Lösung aus. Führe den Benutzer Schritt für Schritt durch jede Lösung, in einfacher Sprache (sie sind möglicherweise nicht technisch versiert). Details in SETUP.md.

  • Installationsschritte, die du selbst ausführen kannst (mit Zustimmung des Benutzers): npm install und npm run browser innerhalb von SKILL_DIR, pip3 install numpy.
  • API-Schlüssel: Der BENUTZER fügt seinen Schlüssel in die vom Arzt genannte Datei ein. Bitte ihn niemals, einen Schlüssel in den Chat einzufügen, und drucke oder protokolliere niemals einen Schlüssel.
  • Stimme: Wenn keine Stimme gespeichert ist, hilf ihnen, eine auszuwählen (Abschnitt 3). Führe dies einmal durch; es wird für jedes zukünftige Reel gespeichert.
  • KI-Plan: Frage einmal, welchen Plan sie verwenden (Claude Pro, Claude Max, API, Team, Codex, Cursor); du kannst es nicht selbst erkennen. Speichere ihn: node "$SKILL_DIR/tools/doctor.mjs" --set-plan <max|pro|api|team|codex|cursor|other>. Bei Max, API oder Team sage ihnen: „Ihr Plan führt die Szenenbauer parallel aus, daher ist die Videoproduktion viel schneller.“ Frage bei jedem anderen Plan auch einmal: „Beste Qualität (der vollständige Prozess, könnte aber schnell deine Nutzungslimits ausschöpfen) oder Gute Qualität (ein leichterer Build, der besser zu deinen Limits passt)?“ und speichere es: node "$SKILL_DIR/tools/doctor.mjs" --set-quality <best|good>. Sie können jederzeit wechseln („beste/gute Qualität verwenden“). Siehe „Aufwandsmodi“ unten.
  • Moderator (nur Classic und Illustrated): Wenn ~/.config/ai-video/config.json noch keinen „presenter“ hat und das Reel Classic oder Illustrated ist, frage einmal nach einem Foto von ihnen (oder „kein Moderator“) und erstelle ihr Aussehen (guides/presenter.md). Wird in ihrer Konfiguration gespeichert. Wenn der Benutzer gesagt hat, keine Fragen zu stellen, verwende den Standard-Moderator der Vorlage (engines/classic/template/reel.json) und erwähne bei der Auslieferung, dass sie beim nächsten Mal ihr eigenes Aussehen (oder keins) erhalten können.

Führe den Arzt erneut aus, wenn ein Werkzeug mit einem setup-ähnlichen Fehler fehlschlägt.

1. Verstehe die Anfrage (nicht überfragen)

Aus einer Eingabeaufforderung benötigst du: Thema/Winkel, Skript oder nicht, Stil, CTA-Schlüsselwort, Sprache. Leite ab, was du kannst; stelle höchstens EINE kurze Frage, nur wenn das Thema selbst unklar ist. Standardwerte:

  • Benutzer hat ein Skript eingefügt → verwende es wortwörtlich (korrigiere nur offensichtliche Tippfehler; verbessere es niemals). Andernfalls schreibe es (Abschnitt 2).
  • Stil (siehe guides/styles/):
    • Classic (classic): Gesprächsthemen, Werkzeuge, Tipps, Listen, Meinungen, Wirtschaft/KI/Tech-News, alles „so geht's / so ist es“. Der Standard.
    • 3D explainer (explainer3d): „Wie funktioniert X eigentlich“ über ein physisches Ding oder ein System (Gadgets, Apps, Autos, den Körper, Netzwerke, Städte).
    • Illustrated (illustrated: die Classic-Engine, gleicher Papier-Look, Untertitel und Moderator, aber der Held jedes Takts ist eine realistisch aussehende Zeichnung des Subjekts über guides/illustration.md, kits/illustrate.js und library/classic/illustrated/): Das Skript handelt von echten, nennbaren Dingen: einem Unternehmen oder einer Kette, einem Geschäft, einem Ort oder Viertel, einem Produkt, Essen, einem Gebäude, einem Fahrzeug, einer App oder einem Video auf einem Telefon.
    • Geschichten mit Menschen und Orten (ein kleines Unternehmen und seine Kunden, ein Laden, eine Straße, ein Team, eine Stadt): Illustrated wenn die Geschichte über das Geschäft, den Ort oder das Produkt handelt (die echte Ladenfront, die Theke, das Essen, die Karte, mit kleinen Menschen als Leben); 3D explainer wenn der Punkt ist, wie sich ein System durch diesen Ort bewegt (Lieferungen, Warteschlangen, Verkehr, Signale). Wenn der Benutzer einen Stil nennt („3D“, „gezeichnet“, „illustriert“, „wie mein letztes Reel“), hat das Vorrang.
  • CTA-Schlüsselwort: ein einprägsames Wort zum Thema (z. B. PLUGINS, COFFEE), großgeschrieben. Wird in reel.json gespeichert.
  • Sprache: Die Sprache des Skripts. Setze "language": "xx" in reel.json (ISO-Code: ru, es, de, ar...), sodass die Stimme, Untertitel, CTA und UI-Texte (Kommentarbögen, DMs) diese verwenden; schreibe Untertitel/Betonung selbst, wenn du unsicher bist. Schriftarten für Lateinisch, Kyrillisch, Griechisch und Vietnamesisch sind gebündelt; für andere Schriften führe nach dem Voice-Schritt python3 "$SKILL_DIR/tools/fonts.py" check <project> aus.
  • Stimme ↔ Moderator: Wenn der Benutzer sich selbst beschreibt (Geschlecht, Alter) oder ein Foto gibt, stelle sicher, dass die gespeicherte Stimme passt; wenn sie offensichtlich nicht passt (z. B. eine männliche Stimme für ihre Moderatorin), erwähne es und biete voices.py search für eine passende an (oder verwende ihre, wenn sie darauf bestehen). Bei nicht-englischen Skripten bevorzuge eine mit dieser Sprache getaggte Stimme.

2. Skript (überspringe, wenn der Benutzer eines gegeben hat)

Lies guides/scripting.md und befolge es genau: Aufhänger in den ersten 1,5 s, Neugier-Schleife in Zeile 2, konkrete Konsequenzen, Produkt/Antwort erst nennen, nachdem das Problem spürbar ist, gesprächig (nicht abgehackt), 110-170 Wörter (≈ 32-50 s: Laufzeit ≈ Wörter / (3 × Sprachgeschwindigkeit) s; ein kürzeres gewünschtes Skript behält Aufhänger, Schleife und Ergebnis, komprimiert), Ende mit „Kommentiere KEYWORD und ich schicke dir ...“. Schreibe es in <project>/script.txt. Zeige dem Benutzer das Skript vor dem Sprechen im Chat an, wenn er eine Überprüfung wünscht; fahre andernfalls fort (sie haben nach einem fertigen Reel gefragt).

3. Projekt + Stimme

node "$SKILL_DIR/tools/reel.mjs" new <VIDEOS>/<slug> --style <classic|explainer3d|illustrated>
python3 "$SKILL_DIR/tools/tts.py" <VIDEOS>/<slug>

<VIDEOS> = der videos/-Ordner neben diesem Skill-Ordner, wenn er existiert (der AI Video-Arbeitsbereich: <workspace>/videos/<slug>/), andernfalls ./videos/ im aktuellen Ordner des Benutzers, sofern nicht anders angegeben. <slug> ist ein kurzer, kebab-case-Themenname. --style illustrated erstellt ein Classic-Projekt (reel.json "style": "classic", "look": "illustrated"); alles, was unten „classic“ sagt, gilt dafür, plus guides/illustration.md. tts.py schreibt audio/vo.mp3 (Pausen gestrafft, beschleunigt um die gespeicherte Sprachgeschwindigkeit (×1,15, sofern die Stimme nicht mit anderem --speed gespeichert wurde), Lautstärke normalisiert) und build/words.json + build/word_index.txt (jedes Wort mit seiner Zeit). Die gesamte Animation wird auf diese Wörter getaktet.

  • Eine Stimme auswählen (erster Durchlauf oder Benutzer bittet um Änderung): python3 tools/voices.py search "<was sie wollen>" [--lang xx], gib dem Benutzer 3 Vorschaulinks, dann voices.py add <owner> <voice_id> "<name>" und voices.py use <voice_id> --name "<name>". Eigene Aufnahme: tts.py <project> --provider file --audio take.mp3. OpenAI-Stimmen: voices.py provider openai.
  • Credits: eine Voice-Generierung pro Reel. Wenn du das Skript später änderst, generiere neu; für zeitliche Korrekturen verwende --reuse (keine neuen Credits).

4. Erfinde die Bilder, dann plane die Takte (Storyboard vor Code)

4a. Erfinden (das unterscheidet ein handwerklich gemachtes Reel von einer Vorlage). Lies zuerst guides/mindset.md (die Messlatte und die Perspektiven: sei sehr kreativ, schön, niemals leer, gut animiert, sofort verständlich). Dann lies guides/patterns.md (Classic, Illustrated) oder guides/patterns_3d.md (Explainer3D) und wende seine Erfindungsmethode auf DIESES Skript an:

  • Eine zentrale Metapher / visuelle Welt, die die gesamte Idee trägt (ein physisches Objekt, eine Maschine oder ein Ort, dessen Verhalten DAS Argument ist), und 3-6 benutzerdefinierte Props für die Takte. Sie müssen aus den Wörtern dieses Skripts stammen, nicht aus den Beispielen: Die Beispiel-Props in den Anleitungen und library/ zeigen Techniken, füge sie niemals ein. Frage: „Würde dieser Frame in das Reel eines anderen passen?“ Wenn ja, ist es generisch: Erfinde neu.
  • Reale Subjekte (das Skript nennt ein reales Unternehmen, einen Ort, ein Produkt, Essen, ein Gebäude, ein Fahrzeug oder zeigt ein Video/App auf einem Telefon): Zeichne sie wie im echten Leben, nicht als flache Icons oder Namenskarten: guides/illustration.md (Classic und Illustrated: kits/illustrate.js-Primitive + library/classic/illustrated/ Beispiele; ein Video auf dem Bildschirm SPIELT immer ab). Das reale Ding ist oft der Held, und die erfundene Metapher wirkt auf es ein.
  • Schreibe die Erfindung oben in STORYBOARD.md: Metapher, warum sie passt, die Props und den einen „Wow“-Moment pro Abschnitt.

4b. Storyboard. Öffne build/word_index.txt. Teile das Skript in Takte: ein Takt pro Satz oder Idee, 1,5-5 s. Lies zuerst den Qualitätsabschnitt des Style-Guides (und schau dir seine Referenzstreifen an). Schreibe dann diesen Block für JEDEN Takt (keine Einzeilen-Takte):

beat NN · "<die Wörter>" (Wörter i0-i1, s-e)
  stage stays : die bereits auf dem Bildschirm befindlichen Elemente, die bleiben (und wo)
  each stressed word adds/changes : Wort → was eintritt oder den Zustand ändert (eines pro betontem Wort, alle 0,4-0,8 s)
  keeps moving : das ruhende Leben jedes Elements (ticken, schwingen, rollen, tippen, blinken, schweben)
  presenter    : (Classic) Fokus, auf den er zeigt + seine Aktion pro Phrase · (3D) wer/was handelt
  camera       : neigen/schieben/stoßen/schneiden auf welche Wörter · Übergang ein
  custom props : welche DEINER erfundenen Props erscheinen (neuer zu schreibender Code)
  big moments  : Einschläge, Schnitte, Whips, Enthüllungen: Ziel: 1+ pro Sekunde (Reel-Bewegung misst es im Entwurf)

Regeln (aus guides/direction.md): Die Bühne BAUT AUF (jedes betonte Wort fügt ein Element hinzu oder ändert es, frühere bleiben und bewegen sich weiter) mit genau EINEM Fokus gleichzeitig; das Bild ergibt auch ohne Ton Sinn; nichts ist länger als 1,2 s statisch; große Dinge passieren AUF dem betonten Wort; der Aufhängertakt zeigt das Ergebnis oder den Konflikt sofort, bereits vollständig.

5. Baue die Szenen

Lies guides/styles/<style>.md vollständig, bevor du Code schreibst (Illustrated: guides/styles/classic.md + guides/illustration.md) (Qualitätsmesslatte, Look, Token, API, Szenenvertrag, Rezepte). Die Engine gibt dir, WIE sich Dinge bewegen (Federn, Pendel, Schwerkraft, Aufbaubühne, Moderator-Aktion, Kamera, Tippen, rollende Zahlen, Übergänge); WAS sich bewegt, sind die von dir in 4a erfundenen Props, die als neuer Code im Projekt gezeichnet werden. Budget: Die Reels des Erstellers enthalten 50-110 Zeilen benutzerdefinierten Szenencodes und 3-7 benutzerdefinierte gezeichnete Objekte pro Sekunde Video; plane dafür.

  • Taktung auf Wörter mit dem Helfer des Stils (wordAt('word') / wi(index)), niemals hartcodierte Sekunden.
  • Vorschau jedes erfundenen Props allein vor der Verwendung (ein Wegwerf-Takt/Szene, die nur das Prop zeigt, gerendert mit reel stills <project> <t> --only <id>; Explainer3D hat auch eine Kits-Showcase-Seite). Benenne diese Szenendatei scenes/preview_<prop>.js (craft ignoriert scenes/preview*.js und scenes/props*.js, setze also niemals echten Reel-Code in Dateien mit solchen Namen). Classic: Liste es in SCENE_FILES auf, aber niemals in TIMELINE: Eine registrierte Szene, die nicht in der Timeline ist, wird niemals im Reel gerendert; entferne es aus SCENE_FILES vor dem Finale.
  • Lies nach JEDEM reel stills / reel video das Ende der Ausgabe: Wenn dort „Fehler beim Zeichnen von Frames“ aufgeführt ist, sind diese Frames defekt. Behebe sie zuerst.
  • Parallelmodus: Verwende Unteragenten (Der Einzeldurchlauf-Modus baut genau die gleichen Takte mit der gleichen Takt-Briefing, du selbst, nacheinander auf): einer pro 1-2 Takte, alle parallel, jeder erhält: guides/mindset.md (in das Briefing einfügen), den Style-Guide-Pfad, guides/patterns(_3d).md, guides/illustration.md wenn sein Takt ein reales Subjekt zeichnet (Classic), den Erfindungsblock, seine Storyboard-Zeilen und -Wörter und den Übergabezustand der benachbarten Szenen. Jeder Unteragent rendert seine Standbilder mit --out <sein Taktname> (eigenes Blatt, keine Überschreibungen). Überprüfe sie dann gemeinsam.

6. Überprüfe deine eigene Arbeit (obligatorisch, das macht es professionell)

Befolge guides/review.md. Kurz gefasst:

  1. node "$SKILL_DIR/tools/reel.mjs" stills <project> <t1> <t2> ... in der Mitte jedes Takts und 0,1 s nach jedem Schnitt (Blatt: stills/sheet.jpg). SCHAU dir das Blattbild an. Überprüfe jeden Punkt der Checkliste; behebe Probleme und rendere Standbilder erneut, bis sie sauber sind.
  2. node "$SKILL_DIR/tools/reel.mjs" video <project> (schneller Low-Res-Entwurf, build/draft.mp4). Extrahiere und betrachte Frames um jeden Übergang (ffmpeg -ss T -frames:v 1). Behebe Pops, Überlappungen, tote Luft.
  3. node "$SKILL_DIR/tools/reel.mjs" motion <project> und node "$SKILL_DIR/tools/reel.mjs" craft <project>: Beide müssen PASS ergeben (craft = genug Originalarbeit, kein Standard-Prop trägt das Reel). motion listet jede flache Strecke mit ihren Wörtern auf: Gib jeder ein Aufbau-Event, eine Sekundärbewegung, eine Kamerafahrt oder eine Moderator-Aktion, rendere den Entwurf erneut, führe erneut aus. Rendere das Finale niemals, solange es fehlschlägt. Wenn der Benutzer Video-Renderings verbietet, überspringe den Entwurf (Schritt 2) und motion und überprüfe die Dichte stattdessen anhand der Standbilder (guides/review.md, „Standbilder-Durchläufe“: etwas Neues bei jedem betonten Wort, kein 1,2-s-Fenster, in dem zwei aufeinanderfolgende Standbilder gleich aussehen); craft läuft weiter, und sage bei der Auslieferung, dass die Bewegung unbestätigt ist.
  4. Vor dem Finale betrachte das Standbildblatt noch einmal durch die Fragen von guides/mindset.md (am kreativsten? voll, schön, lebendig? ein klarer Fokus? würde der Ersteller es posten?). Wenn eine Antwort „noch nicht“ ist, verbessere zuerst.
  5. Finale: node "$SKILL_DIR/tools/reel.mjs" video <project> --final dann node "$SKILL_DIR/tools/reel.mjs" export <project> → out/<name>.mp4 (1080x1920, 30 fps, H.264 + AAC, Instagram-bereit). Es läuft immer nur ein Render gleichzeitig (integrierte Sperre). Zuerst Entwürfe, dann einmal das Finale: Es ist freundlich zum Laptop des Benutzers.

7. Ausliefern

Gib dem Benutzer: den Pfad zu out/<name>.mp4, einen Post-Text (2-3 Zeilen mit Kontext, das CTA-Schlüsselwort, 3-5 relevante Hashtags) und eine Erinnerung, dass „Kommentiere KEYWORD“ eine eingerichtete DM-Autoantwort benötigt (ManyChat, ReplyRush oder Instagrams eigene Automatisierungen) mit dem versprochenen Link. Siehe guides/delivery.md. Biete eine Runde Änderungen an („schnellerer Aufhänger“, „andere Stimme“, „Szene 3 tauschen“).

Aufwandsmodi (lies agent_plan und quality aus ~/.config/ai-video/config.json; der Arzt gibt sie aus)

  • Geschwindigkeit: Max, API, Team = parallel (ein Unteragent pro 1-2 Takte, alle gleichzeitig: viel schnellere Videoproduktion)

…

[gekürzt für die Übersetzung]

Verwandte Skills