promo-video
Ein Film entsteht in sechs Phasen. Jede Phase endet mit etwas, das der Mensch prüft. Führe keine Phase vor der vorherigen aus: Die teure Phase (der Bau) ist nur dann günstig, wenn die früheren Phasen abgeschlossen sind, denn jedes Bildelement wird auf die Musik und die Stimme abgestimmt.
Sage dem Menschen den Plan einmal zu Beginn an (README.md enthält die für den Menschen bestimmte Version), führe dann die Phasen der Reihe nach aus. Sprich mit ihm in seiner Sprache. Halte alle Projektdateien in einem Verzeichnis (<projekt>/: audio/, vo/, PLAN.md, elevenlabs.md, das Remotion-Projekt in video/).
| # | Phase | Du tust | Mensch tut | Referenz |
|---|---|---|---|---|
| 1 | Musik | Analysiere den Track, finde das wahre Tempo und die harten Markierungen | Wählt den Track auf Epidemic Sound aus, verwendet Create a cut für die Länge, gibt dir die Datei | references/01-music.md |
| 2 | Storyboard | Stelle die Leitfragen, schreibe PLAN.md (Shottabelle, auf die Musik abgestimmt) | Antwortet, genehmigt | references/02-storyboard.md |
| 3 | Voice-Script | Schreibe die Zeilen + den getaggten ElevenLabs-Take | Generiert es in ElevenLabs, sendet die Datei | references/03-voiceover.md |
| 4 | Stimme schneiden | Öffne cut_ui.py auf dem Take, teile, pegele, platziere jede Zeile | Klickt zwischen den Zeilen in der Browserseite, drückt Fertig; prüft die Platzierungstabelle | references/03-voiceover.md |
| 5 | Bauen | Remotion-Projekt aus template/, Szene für Szene, prüfe jeweils mit Standbild | Prüft Standbilder / einen Entwurfsrender | references/04-build.md |
| 6 | Prüfen + Verfeinern | Rendere, Lautstärkeprüfung, öffne review_ui.py auf dem Render, lies seine Notizen + Frames, korrigiere, rendere neu | Schaut sich die Prüfseite an, hinterlässt Notizen zum Bild, wählt Genehmigt / Änderungen nötig | references/05-review.md |
Browser-Automatisierung: Biete sie an, nimm sie nie als gegeben an
Die Phasen 1 und 3 finden auf Websites statt (Epidemic Sound, ElevenLabs). Wenn ein Werkzeug zur Browser-Automatisierung verfügbar ist (z. B. ego-browser, ein Playwright-Setup, ein Browser-MCP), biete an, diese Teile selbst zu erledigen, und erkläre klar, was das beinhaltet, bevor du um Zustimmung bittest:
- Konten: Beide Seiten benötigen ein Konto (Epidemic Sound ist ein kostenpflichtiges Abonnement mit Testphase; ElevenLabs hat einen kostenlosen Tarif mit monatlichem Zeichenlimit). Wenn der Mensch keins hat, meldet er sich an: Du erstellst keine Konten.
- Kosten: ElevenLabs berechnet nach Zeichen; ein 40–60 s Film benötigt ~600–1000 Zeichen, und jede Neugenerierung wird erneut berechnet. Epidemic-Downloads werden auf den Plan angerechnet. Sage ihnen die erwarteten Kosten und frage vorher.
- Anmeldung und Bezahlung sind Sache des Menschen: Übergib den Browser (
task.handOff()in ego-browser) für Anmeldung, 2FA, Captchas und alle Bezahlseiten; setze fort, nachdem sie „Fertig“ gesagt haben. Gib niemals ihr Passwort ein, gib niemals Kreditkartendaten ein oder speichere sie, füge niemals ihren API-Schlüssel in eine Seite oder Datei ein. - Was du nach einer Zustimmung tun darfst: Suche/filtere Tracks nach der vereinbarten Stimmung und BPM und öffne Kandidaten zum Anhören (sie wählen), klicke auf Create a cut mit der Ziellänge und lade das Ergebnis herunter; füge den
elevenlabs.md-Take ein, wende die von ihnen gewählte Stimme und Einstellungen an, generiere einmal, lade die mp3 herunter. - Ohne ein solches Werkzeug oder wenn sie ablehnen: Gib ihnen die genauen Schritte (Phase-1- und Phase-3-Dokumente) und warte auf die Datei.
Die Entscheidungen bleiben ihre: Der Track und die Stimme werden nie für sie ausgewählt.
Grundregeln (auf die harte Tour gelernt)
- Alles Gezeigte ist echt. Echte Beispielnetze (tesselliere die tatsächlichen CAD/STEP-Daten), echter Code und echte API in Code-Panels, die Benutzeroberfläche aus den eigenen Frontend-Komponenten des Produkts nachgebaut. Künstlich wirkender Inhalt ist das Einzige, was Zuschauern auffällt. Wenn du das Echte nicht bekommen kannst, sage es und frage – erfinde es nicht.
- Die Musik ist die Uhr. Miss das wahre Tempo (
scripts/music_analyze.pypasst es an; ein geschätztes BPM, das um 1,2 % abweicht, versetzt eine Überblendung um ein Drittel eines Beats und der Mensch hört einen Stolperer). Alle Zeiten leben insrc/marks.ts; Szenen importieren sie, kodieren nie Sekunden fest. - Bestätige nach außen gerichtete oder teure Schritte: Die Musikdatei und die Stimme sind vom Menschen zu wählen; du wählst sie nie für sie aus. Gib niemals API-Schlüssel oder Anmeldetokens preis, die im gefilmten Produkt auftauchen.
- Prüfe Bilder mit Standbildern, nicht blind: Rendere die Frames an den Marken (Beathits, Schnitte, das Logo) und schau sie dir vor einem Vollrender an. Ein Vollrender dauert Minuten; ein Standbild dauert Sekunden.
- Behalte die alte Version. Wenn der Mensch eine gekürzte Version oder eine Variante wünscht, kopiere das Projektverzeichnis und bearbeite die Kopie (
cp -R video video_short,node_modulesverlinken). - Berichte wie ein Cutter: Was sich geändert hat, der Dateipfad, worauf man hören/schauen soll und zu welcher Sekunde.
Werkzeuge in diesem Skill
Alle Python-Skripte werden mit uv run ausgeführt (Abhängigkeiten sind in jeder Datei deklariert; nichts zu installieren).
| Skript | Zweck |
|---|---|
scripts/music_analyze.py track.wav --out beats.json | Echtes BPM (angepasst), Beat/Takt-Raster, Abschnitte, Drop, stille Lücken |
scripts/music_splice.py track.wav out.wav --beats beats.json --keep a:b --keep c:d | Einen Track durch einen taktgenauen, überblendeten Sprung kürzen; überprüft die Verbindung |
scripts/cut_ui.py take.mp3 --mode cuts --script elevenlabs.md --out vo/cuts.json | Browser-Schneideseite (Wellenform, das Script zeilenweise angezeigt, Sprache vs. Pausen, Zoom, Rückgängig/Wiederholen): Der Mensch spielt es ab und klickt, wo eine Zeile endet, drückt Fertig, der Tab schließt sich und cuts.json liegt für dich bereit. --mode marks --beats beats.json markiert den Drop/Stab/Breakdown der Musik auf dem Beat-Raster |
scripts/vo_cut.py take.mp3 --regions vo/cuts.json --out vo/ | Einen ElevenLabs-Take in isolierte Clips + clips.json aufteilen (oder --lines N --ends t1,..., wenn der Mensch lieber Zeiten eintippt) |
scripts/review_ui.py out/promo.mp4 --out review/review.json [--overlay overlay.json] | Browser-Prüfseite: Monitor oben, Zeitleistenstreifen unten (Filmstreifen + die Wellenform des fertigen Mixes + optionale Beats / Markierungen / Sprachzeilen). Der Mensch hinterlässt Notizen zu einem Moment oder einem Bereich; jede Notiz trägt den exakten Frame; sie schließen mit Genehmigt / Änderungen nötig ab und review.json liegt für dich bereit |
scripts/new_project.sh <verz> [--link-modules pfad] | Remotion-Projekt aus template/ (Metallbühne, Beat-Uhr, VO-Mix, virtuelle Kamera) |
template/tools/mesh.py | STEP/OCC-Formen -> kompaktes Mesh + B-Rep-Kanten für three.js |
template/tools/refold.py | Die riesigen STEP-Metadaten-Strings, die OCC nicht lesen kann, leeren |
template/tools/variants.py, stages.py | Mesh-Parametervarianten / jeder Zwischenkörper eines CAD-Notebooks (für „einen Schieberegler ziehen, das Modell folgt“ und „Zelle für Zelle“-Szenen) |
Benötigt: ffmpeg, node 20+, uv. Für three.js in Headless-Chrome: Playwrights chrome-headless-shell (new_project.sh installiert es).