name: fish-video-skill description: Erstelle ein professionelles, upload-fertiges Kurzvideo (Short, Reel, TikTok, YouTube oder LinkedIn) zu jedem Thema. Es wird verwendet, wenn jemand ein Video, eine Erklärung, einen Werbeclip, eine Produktvorstellung, eine App-Tour, ein Bildschirm-Tutorial, ein Motivationsvideo oder „ein Video wie dieses“ (Referenzlink) wünscht. Der Prozess startet mit einem einzigen, strengen Interview (Thema, Plattformen, Stil, Farben, Stimme, Musik, Soundeffekte, Assets, Bildschirmaufnahme, API-Schlüssel), und fragt erst beim finalen Review erneut nach. Es recherchiert Trends und Fakten, analysiert Referenzvideos, sammelt lizenzierte echte Assets, nimmt den Bildschirm mit Fokuszooms und Klickgeräuschen auf und rendert deterministische Motion-Grafiken mit einer 3D-Kamera: Paper-Collage, Kinetic Typography, Neon-Diagramme, Glow-Metaphern, Whiteboards. Es fügt eine natürliche Stimme, einen für Handylautsprecher optimierten Mix und Wort-Sprung-Untertitel hinzu, führt eine Qualitätssicherung und Selbstprüfung durch, packt Videos, Thumbnails, Titel, Beschreibungen, Tags und Credits und räumt nur mit Erlaubnis auf. version: 2.1.0 license: MIT author: ImuTechz compatibility: Python 3.10+ (3.12 empfohlen), Node 18+, ein Chromium-Browser (Brave/Chrome/Edge/Chromium), ffmpeg (über npm gebündelt). Windows, macOS, Linux. Optionale Schlüssel ELEVENLABS_API_KEY, PEXELS_API_KEY, PIXABAY_API_KEY, FREESOUND_API_KEY, YOUTUBE_API_KEY; jeder hat einen schlüssellosen Fallback.
Fish Video Skill v2
Du erstellst ein Video aus einer Unterhaltung. Es muss die Qualität der Top-Kurzvideos erreichen, die in Referenzanalysen seziert wurden:
- etwa alle 1 Sekunde etwas Neues auf dem Bildschirm
- echte Assets mit Tiefe (Textur, Kontaktschatten, Leuchten)
- Typografie mit einem 3-fachen Heldenwort-Kontrast
- Objekt-als-Portal-Übergänge
- ein Swish, der vor jeder Bewegung landet, Risers, die auf Enthüllungen enden, Impulse bei Flash-Schnitten
- eine Stimme, die auf einem hörbaren Musikbett sitzt
Eine Diashow mit einer generischen Stimme ist ein Fehlschlag, selbst wenn die Qualitätssicherung besteht.
Router: Lade die Anleitung, wenn du die Aufgabe erreichst
Lies nur, was der aktuelle Schritt benötigt:
- Der Benutzer gab nur ein Wort ab oder möchte Themenideen oder du schreibst das Drehbuch → Thema zu Video
- Auswahl eines Stils, einer Palette oder eines Looks → Stil-Rezepte,
config/styles.yaml - Eine Idee muss erklärt werden, oder Farben nach Stimmung auswählen → Diagramm-Design
- Schreiben einer Szene → Szenen-Katalog, einschließlich Bewegungsregeln und Kamera
- Alles, was Musik, Soundeffekte oder Pegel betrifft, oder „Ich kann die Musik auf meinem Handy nicht hören“ → Sound-Design
- Auswahl oder Regie einer Stimme → Stimmregie
- Untertitel und Typografie → Untertitel & Typografie
- Eine Website oder App auf dem Bildschirm → Webseiten-Tour-Aufnahme
- Ein Referenzvideo zum Abgleichen → Referenzanalysen, Referenzvideo-Analyse, Trendanalyse
- Plattformgrößen und -grenzen → Plattformspezifikationen
- Welches Open-Source-Tool du verwenden solltest → Feldhandbuch
Nicht verhandelbarer Workflow
0 Vorbereitung ─▶ 1 INTERVIEW (alle Fragen, einmal) ─▶ bestätigen ─▶ 2 Recherche + Trends + Referenzen (parallel)
─▶ 3 Assets + Bildschirmaufnahme + Stimme (parallel) ─▶ 4 Storyboard (du schreibst jedes Wort) ─▶ Gate
─▶ 5 Standbilder (Look) ─▶ 6 Rendern ─▶ 7 QA + PRÜFSCHLEIFE (korrigieren, neu rendern, wiederholen) ─▶ 8 Paketieren ─▶ 9 Finale Überprüfung ─▶ 10 Aufräumen (fragen)
Regeln:
-
Ein Interview, zu Beginn. Jede Frage, die den Benutzer benötigt, wird in Schritt 1 gestellt, einschließlich Stimme und Tonfall, Farben, die Bildschirmschritte, API-Schlüssel (mit Anleitung, wie jeder zu bekommen ist) und die optionalen Extras zur Installation. Nach
fishvideo interview <verz> --confirmstellst du keine Fragen mehr. Entscheide aus den Antworten und dem Stilrezept. Kontaktiere den Benutzer nur in diesen Fällen erneut:- (a) eine optionale Station, die er in
checkpointsgewählt hat - (b) eine Desktop-Aufnahme, die er durchführen muss; er hat dem im Interview zugestimmt, und du sagst ihm genau, wann er beginnen soll
- (c) die finale Überprüfung
- (d) Erlaubnis zum Aufräumen
Wenn der Benutzer später etwas anderes sagt, folge dem Benutzer.
- (a) eine optionale Station, die er in
-
Schreibe niemals ein Drehbuch, bevor das Interview bestätigt ist.
fishvideo script,allund vollständigesrenderverweigern die Ausführung, bisfishvideo gatebestanden ist. -
Versende niemals Vorlagentext. Das Grundgerüst ist ein Skelett aus TODOs. Du schreibst jedes Bildschirmwort und jede Erzählzeile für dieses Video neu, sodass das Gate TODOs, v1-Standardphrasen („X, erklärt“, „in 60 Sekunden“, „Danke fürs Zuschauen“) und jede aus
examples/kopierte Zeile blockiert. Beispiele zeigen die Struktur, niemals den Inhalt. -
Erklärungen erhalten ein Diagramm. Jedes
goal: explain-Video benötigt mindestens einendiagram-,whiteboard-,neonline- odersplit-Enthüllungsmechanismus in einer Szene. Eine Liste von Aufzählungspunkten ist keine Erklärung.
Schritt 0: Vorbereitung
Die Einrichtung (nur beim ersten Mal) steht in README.md: npm install, ein venv und pip install -r requirements.txt. Starte dann:
.venv/Scripts/python scripts/fishvideo.py doctor --keys # Windows (macOS/Linux: .venv/bin/python)
Merke, welche Schlüssel und Extras fehlen. Du fragst genau danach in Interview-Runde 8.
Einrichtung für das beste Ergebnis (mache das, überspringe es nicht):
- Installiere die Extras selbst. Wenn
doctorein fehlendes Extra anzeigt, installiere es in das venv der Fähigkeit, ohne den Benutzer dazu zu zwingen:pip install "rembg[cpu]"(Ausschneiden),pip install kokoro soundfile(natürliche lokale Stimmen) undpip install faster-whisper(richtet die eigene Sprachaufnahme des Benutzers aus). Führe auchfishvideo assets sfx-packeinmal aus, wenn die SFX-Bibliothek fehlt. Teile dem Benutzer in einem Satz mit, was du installierst und warum. Überspringe nur ein Extra, das der Benutzer in Runde 8 ablehnt.- Frage nach den API-Schlüsseln. Sie sind optional: alles funktioniert auch ohne sie über die kostenlosen Fallbacks. Sie liefern das beste Ergebnis: ElevenLabs gibt die natürlichsten Stimmen, Pexels/Pixabay geben die meisten Stockfotos und -videos, Freesound gibt die meisten Soundeffekte und die YouTube Data API liefert die Trend-Charts. Frage in Runde 8 nach den Schlüsseln, die für dieses Video wichtig sind, erkläre, wie man jeden bekommt (kostenlose Anmeldelinks sind in
doctor --keys), und akzeptiere „nein“ oder „später“ ohne Druck. Mache dies nur im Interview, niemals, wenn die Erstellung begonnen hat.
Schritt 1: Das Interview (streng)
fishvideo new projects/<slug> --prompt "<die Anfrage des Benutzers, wörtlich>"
fishvideo interview projects/<slug> # JSON: die offenen Fragen, gruppiert in 8 Runden
Der Fragenkatalog ist config/interview.yaml. Er hat 8 Runden und etwa 30 Fragen:
| Runde | Themen |
|---|---|
| 1 | Zweck |
| 2 | Form und Stil |
| 3 | Farben, Typografie, Textur |
| 4 | Stimme, Vortrag, Musik, SFX |
| 5 | Echte Assets und Bildschirmaufnahme |
| 6 | Inhalt, Fakten, CTA, Sprache |
| 7 | Untertitel, Thumbnail, Freigaben |
| 8 | API-Schlüssel und Extras |
Nur ein Wort oder ein Bereich? Generiere vor Runde 1 5 trendige Ansätze parallel: yt suggest, yt search --recent-days 30 und trends (Haiku-Subagenten), folge Thema zu Video. Biete sie als topic-Frage an. Der gewählte Ansatz bestimmt alles danach.
Wie man fragt:
- Frage eine Runde pro
AskUserQuestion-Aufruf (bis zu 4 Fragen), verwende die Optionen genau wie aufgelistet. Empfohlene Optionen zuerst. „Andere“ ist immer verfügbar. - Freitext-Fragen (
free_text: true) gehen in eine normale Nachricht für diese Runde, zusammen mit dem Multiple-Choice-Aufruf der Runde. - Überspringe eine Frage nur, wenn die Eingabeaufforderung sie bereits eindeutig beantwortet (
from_promptzeigt, was erkannt wurde), und zeichne sie trotzdem auf. - Zeichne jede Antwort auf:
fishvideo interview <verz> --set style=paper-collage --set platforms='["shorts"]'. Antworten werden inbrief.yamlabgebildet: die Palette geht zubrand.colors, die Stimmung zu Partitur und Tempo, die Stimme und der Vortrag zur Sprachkonfiguration und Nachbearbeitungskette, und der Stil zu Textur, Tempo und Motiv. - Stimme: Führe nach den Runden 4 und 6 (sobald Sprache und Vortrag bekannt sind)
fishvideo voices <verz> --auditionaus. Gib dem Benutzer die Dateipfade inbuild/auditions/, damit er sie abspielen kann, und lass ihn wählen. Dies ist immer noch Teil des Interviews. - Schlüssel: Biete nur die fehlenden Schlüssel an, die für ihre Antworten relevant sind. Erkläre, wie man jeden bekommt (der Text im Katalog) und was ohne ihn passiert. Wenn sie Schlüssel einfügen, zeichne sie mit
--set keys_paste=...auf. Schlüssel gehen in das git-ignorierte.envder Fähigkeit und werden niemals zurückgegeben, protokolliert oder committet. Wenn sie Extras wählen, installiere sie jetzt in das venv (pip install "rembg[cpu]",kokoro soundfile,faster-whisper). - Lese schließlich
fishvideo interview <verz> --summarydem Benutzer vor. Bitte um ein einfaches „ja, los“, führe dann--confirmaus.
Schritt 2: Recherche, Trends und Referenzen (parallel ausführen)
Starte diese als parallele Subagenten. Modell-Routing: Haiku für Abruf- und Suchdurchläufe, Sonnet für Analyse und Routinetasks, und du (Opus) für das Drehbuch, Storyboard, Designurteil und finale Überprüfung. Weise jeden Agenten mit dem Projektpfad und der genauen Ausgabedatei an, die er produzieren muss. Subagenten können möglicherweise keine Berichtsdateien schreiben; dann geben sie den Text zurück und du speicherst ihn.
| Aufgabe | Befehl | Agent |
|---|---|---|
| Fakten und Quellen | Websuche, dann fishvideo research <verz> --url ... → research/facts.md | haiku |
| Trends | fishvideo trends <verz> --topic "<thema>" --region <IN/US> → research/trends.md (Titelformeln, Tags, Hooks, ideale Länge basierend auf dem, was gerade rankt) | haiku |
| YouTube-Recherchen | fishvideo yt search "<q>" -n 20 [--recent-days 30], yt info, yt subs, yt suggest | haiku |
| Referenzanalyse (jeder Link, den der Benutzer gegeben hat, plus 1-2 top-trendende Beispiele im gewählten Stil) | fishvideo yt download <url> --purpose reference --project <verz>, dann fishvideo dissect <verz>/reference/<datei>.mp4 --out <verz>/reference/dissect --fps 4 [--vtt subs.vtt]. Lese jedes Blatt, das Spektrogramm und timeline.md, schreibe dann reference/analysis.md mit den neun Abschnitten von Referenzvideo-Analyse | sonnet (vision) |
Aus den Analysen nimmst du Zahlen: Änderungsrate, Swish-Timing und -Pegel, Voice-over-Bed dB, Duck-Tiefe, Lautstärke, Untertitelstil. Schreibe sie in brief.yaml → match:, damit Storyboard und Mix ihnen folgen können. Kopiere Handwerk, niemals Inhalt.
Schritt 3: Assets, Bildschirm und Stimme (parallel ausführen)
Echte Assets (wenn assets.policy auf mixed gesetzt ist):
- Suche:
fishvideo assets search <verz> "<substantiv>" --kind photo|video|music|sfx [--providers wikimedia,pexels]. Öffne die Vorschauen inassets/_candidates/und sieh sie dir an. - Lade herunter, was du auswählst:
fishvideo assets get <verz> <IDs>. Jede Datei wird mit ihrer Lizenz inassets/credits.jsonprotokolliert. - Erstelle Ausschnitte:
fishvideo assets cutout in.jpg out.png(rembg mitisnet-general-use; niemals das nicht-kommerzielle Standardmodell). - Bereite B-Roll vor:
fishvideo assets clip <verz> <datei> <clip_id> --start S --dur Sgibt Bilder für diefootage-Szene. - Erhalte einen CC-BY-YouTube-Abschnitt:
fishvideo yt clip <url> <start> <end> <ziel> --project <verz>. Es lehnt Nicht-CC-Videos ab. - Erlaubte Lizenzen: CC0, PD, Pexels/Pixabay-Lizenzen, CC-BY und CC-BY-SA (mit Namensnennung). Niemals NC oder ND. Niemals ein Nicht-CC-YouTube-Video, das Filmmaterial eines Referenzvideos, ein Logo, das du nachzeichnest, oder das Abbild einer realen Person in irreführender Weise.
Bildschirm:
website: Liste die Aufnahmen untercaptures:auf und führefishvideo capture <verz>aus. Es filmt schreibgeschützt in virtueller Zeit.desktop:fishvideo screenrec record <verz> <aufnahme> --seconds N [--window "Titel"] [--scale 2]. Bevor es beginnt, teile dem Benutzer genau mit, welche Schritte er ausführen soll. F8 setzt eine Markierung und F9 stoppt.files:fishvideo screenrec import <verz> <aufnahme> recording.mp4.
Alle drei produzieren denselben Aufnahmeordner. Die tour-Szene (frame: inset) fügt den Glow-Cursor, Klickwellen und Klick-SFX, einen 1,6- bis 2-fachen Zoom auf den Cursor, einen Spotlight und SCHRITT-Karten hinzu. Nehme mit Skalierung 2 auf, damit Zooms scharf bleiben.
Musik:
- Ein Bibliothekstitel:
assets search <verz> "<brief.music.search>" --kind music, dannassets get, und lege die Datei inassets/music/ab. - Oder hinterlasse die synthetisierte Partitur. Setze
music.source: synth, um sie zu erzwingen.
SFX: Führe fishvideo assets sfx-pack einmal aus (Kenney CC0). Füge weitere mit assets search --kind sfx hinzu (Freesound CC0) nach assets/sfx/<cue-type>/.
Stimme: Schreibe die Erzählung (Schritt 4), führe dann fishvideo voice <verz> aus. Führe das Storyboard erneut aus, damit Szenen auf die echten Clips abgestimmt werden. Wenn der Benutzer seine eigene Erzählung aufgenommen hat, führe stattdessen fishvideo voiceover <verz> recording.wav aus: Es richtet die Aufnahme mit faster-whisper am Drehbuch aus und schneidet sie pro Zeile.
Emotion: Gib jeder Szene eine mood: (neugierig, angespannt, dringend, aufgeregt, warm, ernst, nachdenklich, triumphierend, neutral). Es setzt Geschwindigkeit und Tonhöhe pro Zeile und Stil bei ElevenLabs. Die Zeichensetzung formt den Vortrag bei jeder Engine: ... pausiert, ? und ! heben an, kurze Sätze treffen. Variiere die Stimmung über die Abschnitte: Ein gleichmäßiger Ton über 40 Sekunden hinweg ist die „generische Stimme“-Beschwerde. Stille Strecken innerhalb einer Zeile werden automatisch geschnitten (pacing.max_word_gap).
Musik-Timing: Führe für einen Bibliothekstitel fishvideo beats <track> aus. Setze das bpm des Storyboards auf sein Tempo und music.offset so, dass ein Beat oder der Drop auf deine größte Enthüllung fällt.
Bildschirmaufnahmen: Führe fishvideo screenrec tighten <verz> <aufnahme> aus, um Leerlaufstrecken zu beschleunigen. Lasse den Zuschauer niemals auf einen Lade-Spinner warten.
Schritt 4: Storyboard (du schreibst es)
Führe fishvideo script <verz> aus. Es erstellt storyboard.yaml aus dem Stilrezept (config/styles.yaml, Stil-Rezepte) als Beat-Skelett voller TODOs. Seine Timings sind Platzhalter. Schreibe es dann richtig aus, in dieser Reihenfolge:
- Ersetze jedes TODO: Kopie, Parameter und Erzählung. Die Tabelle oben im Szenen-Katalog listet die erforderlichen Parameter auf.
- Schreibe
brief.purposeundbrief.storybeatso, dass sie eine emotionale Reise formen – Aufbau, Wendepunkt, Auflösung. - Setze
music.offsetund passemusic.energyan die Beat-Struktur an. - Für jedes
moodlegepacing.phrase_rushundpacing.pausefest. - Schreibe jedes
caption-Feld: Text, Stil, Animation. Der Leitfaden zu Untertiteln & Typografie erklärt, wie man Wort-für-Wort-/Phrasen-Sprung-Untertitel macht. - Setze jeden
camera.move(zoom,pan,tilt,dolly,rotate_around) mit Stärke (subtle,medium,dramatic) und Timing (pre_action,during,post_reveal,continuous). Die Kamera sollte niemals stillstehen. - Überprüfe auf dem Gate:
fishvideo gate <verz>. Es lehnt ab bei fehlenden TODOs, Standardphrasen, Aufzählungen anstelle einer Erklärung oder unvollständigen Parametern.
Schritt 5: Standbilder (Look)
fishvideo stills <verz> --frames key_scenes rendert ein Standbild pro Szene als PNG in build/stills/. Öffne sie, bestätige sie oder markiere Änderungen. Wiederhole Schritt 4 bei Bedarf und rendere stills erneut, bis der Look genehmigt ist.
Schritt 6: Rendern
fishvideo all <verz> rendert alles:
- Video (Szenen, Übergänge, Animationen, Audio, Untertitel, Thumbnail)
video/mit dem finalen MP4thumbnails/description.md(Titel, Beschreibung, Tags, Credits)
Rendern anhalten und fortsetzen: fishvideo all <verz> --resume.
Schritt 7: QA und Überprüfung
fishvideo qa <verz> läuft automatisch. Überprüft:
- Länge (Kurzvideo-Grenzen)
- Seitenverhältnis und Auflösung
- Durchschnittliche Hörlautstärke
- Tonisolation (Stimme klar hörbar über Musik, Hörbarkeit auf Handy-Lautsprechern)
- Untertitel-Genauigkeit
- Lizenzeinhaltung
- Keine verbleibenden TODOs, Standardphrasen oder leeren Szenen
- Cursorpfad für Bildschirmaufnahme (kein Springen, gleichmäßige Geschwindigkeit, minimale Hover-Zeit)
Wenn QA fehlschlägt, korrigiere und rendere neu. Wenn QA besteht, starte deine eigene Überprüfung:
- Stimmen die Animationen mit den Mustern aus
match:überein? (Änderungsrate, Swish-Timing, Betthörbarkeit) - Ist das Erklärungsdiagramm klar und vollständig?
- Sind die Übergänge glatt?
- Passt die Musik zur Stimmung?
- Sieht es aus wie ein Short, der gerade rankt? Wenn nicht, korrigiere (Steps 4–6).
Schritt 8: Paketieren
fishvideo package <verz> erstellt:
build/publish/<slug>.mp4(finales Video)build/publish/thumbnail.jpg(Thumbnail)build/publish/description.md(Titel, Beschreibung, Tags, Lizenz-Credits)build/publish/report.json(Dauer, Formate, Lizenzen, Änderungsanzahl)
Schritt 9: Finale Überprüfung
Zeige dem Benutzer die Dateien und frage: „Sieht das gut aus? Möchtest du etwas ändern?“
Wenn er etwas ändern möchte, korrigiere es und führe fishvideo all <verz> erneut aus.
Wenn er es genehmigt, frage: „Soll ich jetzt die Arbeitsdateien löschen? (Nur das publish/-Verzeichnis bleibt erhalten.)“
Schritt 10: Aufräumen
fishvideo clean <verz> löscht build/, assets/, research/, reference/ und captures/. Es wird nur nach Bestätigung ausgeführt. publish/ bleibt immer erhalten.