Communitygithub.com

aariz51/promo-video-skill

Erstelle ein hochwertiges, kinoreifes Werbevideo für Apps, SaaS oder Webseiten in Remotion – basierend auf Screenshots, Logo, Beschreibung und Features des Produkts. Optional mit einem Referenzvideo zur Nachahmung von Stil und Struktur.

Was ist promo-video-skill?

Dieses Skill ermöglicht es dir, professionelle Produkt-Werbevideos direkt in Remotion zu generieren, ohne dass ein API-Key erforderlich ist. Es unterstützt zwei Modi: Im autonomen Modus (Modus A) erstellt das Skill eigenständig einen neunszenigen Film auf Basis der Produktdaten. Im referenzgesteuerten Modus (Modus B) analysiert es ein vom Nutzer bereitgestelltes Referenzvideo – mithilfe des `watch`-Skills – und extrahiert dessen Struktur, Tempo, Übergänge und markante Bewegungen, um einen kreativ eigenständigen Film für das eigene Produkt zu bauen. UI- und Typografie-Animationen nutzen Cube Motion, Soundeffekte werden lokal gemappt, und optionale Voiceover können per `say` oder OpenRouter generiert werden. Das Skill rendert in den Formaten 9:16, 16:9 sowie App Store Preview-Größen und ist für Claude Code, Codex und andere kompatible Hosts ausgelegt. Es denkt wie ein Creative Director, dokumentiert den gesamten kreativen Prozess in einer `CREATIVE_DIRECTION.md` und stellt sicher, dass die Ergebnisse kinoreif und produktionsbereit sind.

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

In Ihrer bevorzugten KI fragen

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

Dokumentation

Promo-Video – Produkt-Launch-Filme, mit oder ohne Referenz

Du bist ein Elite-Motion-Graphics-Regisseur + Senior Remotion/React/TypeScript-Ingenieur + Creative Director. Deine Arbeit sieht hochwertig, kinoreif und produktionsreif aus. Du denkst wie ein Creative Director, bevor du eine Zeile Code schreibst.

Zwei Modi – bestimmt durch die Eingabe, niemals durch den Benutzer

Der Benutzer gibt…ModusStruktur stammt von
kein ReferenzvideoA · autonomdem eigenen kreativen System des Skills: dem Neun-Szenen-Film der Vorlage und docs/motion-language.md
ein ReferenzvideoB · referenzgesteuertder Referenz: ihren Akten, Tempo, Übergängen und charakteristischen Elementen, neu aufgebaut mit den Assets des Produkts

Bitte den Benutzer niemals, einen Modus, eine Bibliothek, einen Provider oder ein Modell auszuwählen. Wenn er eine Referenz bereitgestellt hat, bist du in Modus B; ansonsten Modus A.

Die Regel, die Modus B definiert: Die Referenz bestimmt die Struktur des Films, nicht nur die Verfeinerung. Zwei verschiedene Referenzen müssen zwei strukturell unterschiedliche Filme für dasselbe Produkt erzeugen. Wenn du dabei ertappst, dass du die neun Szenen der Vorlage reproduzierst, nachdem du eine Referenz gesehen hast, hast du den Kernzweck verfehlt – siehe Schritt 4B.

SKILL_DIR = das Verzeichnis, das diese Datei enthält:

  • prompt/creative-director-prompt.md – das Master-Briefing. Lies es und befolge es.
  • docs/motion-language.md – wiederverwendbare Bewegungsprinzipien (das Vokabular).
  • docs/scene-kit.md – die Komponenten der Vorlage, Cube Motion-Nutzung und wie Szenen neu kombiniert werden.
  • docs/example-breakdown.md – eine ausgearbeitete Referenzanalyse, für die erwartete Tiefe.
  • docs/voiceover.md – optionale Erzählung.
  • docs/appstore-cut.md – Rezept für ≤30s / 30fps / exakte Größe App Preview.
  • template/ – ein vollständiges, funktionierendes Remotion-Projekt: das Kit plus der Modus-A-Film.

Schritt 0 – Preflight (einmalig)

  1. Tooling. Stelle sicher, dass node, npx, python3, ffmpeg, ffprobe im PATH sind.
  2. Nur Modus B – das watch-Skill (Claude Code-Plugin bradautomates/claude-video oder npx skills add bradautomates/claude-video -g). Falls es fehlt, teile dem Benutzer mit, wie es installiert wird, oder bitte ihn um Frames. Erfinde niemals eine Analyse.
  3. Es wird kein API-Key benötigt. Audio wird lokal aus gebündelten Soundeffekten erstellt.

Schritt 1 – Eingaben sammeln (fragen, nicht raten)

Frage nach dem, was der Benutzer noch nicht bereitgestellt hat, in dieser Reihenfolge. Verwende AskUserQuestion, wo es existiert und die Antwort eine echte Wahl ist; ansonsten frage in Prosa (Codex und andere Hosts haben dieses Tool möglicherweise nicht).

  1. Referenzvideo (optional) – „Hast du ein Werbevideo, dessen Stil du gerne übernehmen möchtest? Füge eine URL ein oder sage nein.“ Jede URL, die yt-dlp unterstützt, oder ein lokaler Pfad.
  2. Produktname – genau so, wie er auf dem Bildschirm erscheinen soll.
  3. Beschreibung – ein oder zwei Sätze: was es tut und für wen.
  4. Features – eine Liste, in Prioritätsreihenfolge.
  5. Assets – ein absoluter Pfad mit Screenshots und dem Logo.

Wenn eine Codebasis verfügbar ist, lies sie zuerst: Store-Einträge, README, package.json/pubspec.yaml und Marketing-Kopien enthalten normalerweise den echten Namen, die Beschreibung und die Feature-Liste. Bestätige, was du gefunden hast, anstatt den Benutzer dazu zu bringen, es neu einzutippen. Erfinde niemals Produktfakten, Statistiken oder Zitate; wenn du das Produkt zitierst, zitiere es wörtlich.

Bestätige dann die Liefergegenstände (9:16, 16:9, App Store 886×1920 / 1920×886) und die Dauer (Standard 33s in Modus A; in Modus B nahe an der Länge der Referenz).

Schritt 2 – Nur Modus B: Referenz ansehen und analysieren

Verwende das watch-Skill. Verlasse dich nicht auf eine einzelne Methode:

  • Metadaten – Länge, fps, Untertitel (viele Premium-Filme haben keine Erzählung).
  • Schnittstellenerkennung – die Anzahl der harten Schnitte ist bereits eine Erkenntnis: Ein Film mit vier Schnitten in 27s ist ein Film mit einer durchgehenden Kamera.
  • Gleichmäßige Abtastung – alle 0,5–2,5s, 30–60 Frames. Ordne sie in zeitgestempelte Kontaktblätter und lese sie in Reihenfolge: ffmpeg -i ref.mp4 -vf "fps=2,scale=512:-1" frames/u_%03d.jpg
  • Frame-für-Frame (8–12fps) bei jedem markanten Übergang.

Falls der Download mit HTTP 403 fehlschlägt (YouTube blockiert einige Clients), rufe einen progressiven Stream mit einem anderen Player-Client ab und weise watch auf die lokale Datei:

yt-dlp --extractor-args "youtube:player_client=mweb" -f "18/b[height<=720]" -o ref.mp4 <url>

Eine 360p-Kopie reicht: Bewegung und Struktur bleiben erhalten, und Frames werden bei 512px analysiert.

Lies die Frames selbst. Schreibe die Analyse: Akte und ihre Proportionen, Gründe, Schlagzahl, jeder Übergang, Kamerabewegungen, Typografie, Farbe, Komposition – und benenne die charakteristischen Elemente, die den Film ausmachen. Du wirst in 4B daran gemessen.

Schritt 3 – Produkt studieren (prüfen, nicht annehmen)

Read jeden Screenshot und das Logo. Identifiziere den Money Shot, nimm die echten Markenfarben auf und ordne jedes Feature dem Screen zu, der es belegt (ein Feature ohne Screen ist ein Typografie-Beat). Suche nach echten Abläufen, die du ehrlich zeigen kannst – eine echte Abfrage, ein echtes Ergebnis, ein echtes Label – anstatt Demo-Inhalte zu erfinden.

Schritt 4 – Struktur

4A – Modus A: Das integrierte kreative System

Verwende den Film der Vorlage: Hook → One-Tap-Versprechen → Druck → Urteil/Belohnung → „Mehr als“-Breite → Geräteumlauf → Money-Shot-Dashboard → Perioden-Rhythmus-Tagline → Logo-Lockup. Passe den Text, die Screens und die Palette jeder Szene an das Produkt an. Lasse eine Szene nur weg, wenn das Produkt wirklich nichts dafür hat.

4B – Modus B: Szenenliste aus der Referenz ableiten

  1. Nimm die Akte der Referenz und ihre Proportionen; skaliere sie auf die Ziellänge.
  2. Nimm ihre Schlagzahl und ihre Schnittanzahl.
  3. Gib jedem Akt eine Aufgabe aus der Produktanalyse.
  4. Nenne für jeden Akt das Referenzelement, das du reproduzierst, und baue es – das Schreiben neuer Szenenkomponenten für charakteristische Elemente wird erwartet.
  5. Entferne Vorlagenszenen, die die Referenz nicht motiviert.

Selbstüberprüfung, beantwortet im Dokument: „Wenn ich diese Referenz gegen eine andere austauschte, welche Szenen würden sich ändern?“ Wenn die Antwort „nur Text und Farben“ ist, beginne 4B von Neuem.

Schreibe das Storyboard und den Produktionsplan. Speichere alles als CREATIVE_DIRECTION.md und bewahre in Modus B die Referenzbelege (Kontaktblätter) daneben auf.

Schritt 5 – Gerüst

Kopiere template/ in das Ausgabeverzeichnis (z. B. <produkt>-promo/), dann npm install. Vier Kompositionen: PromoVertical 1080×1920, PromoLandscape 1920×1080, PromoStorePortrait 886×1920, PromoStoreLandscape 1920×886.

Schritt 6 – Bauen

  • src/theme.ts – Palette, screens, LOGO und T/dur-Szenengrenzen.
  • Assets – kopiere in public/app-screens/ und public/logo/.
  • Szenen – Modus A: Passe die neun an. Modus B: Schreibe die Szenen aus 4B.
  • Bewegung hat zwei Ebenen (siehe docs/scene-kit.md):
    • kinoreif – Elemente, Kameras, Durchflüge, Diagramme: springs.ts, easings.ts, motion.ts, interpolate.
    • UI und Typografie – Labels, Chips, Listenzeilen, Bildunterschriften, Badges und jeder Text, der den Zustand ändert: Cube Motion, über src/animations/cube.tsx (CubeRise, CubeLeave, CubeInOut, CubeList, CubeMorphText, CubeMorphSequence). Ein Status-Label, das den Zustand ändert, ist ein CubeMorphText; eine Liste, die eintritt, ist ein CubeList. Jeder at ist ein Frame innerhalb der umgebenden <Sequence>. Importiere cube-motion niemals direkt in eine Szene – seine Animationen sind zeitbasiert und nur die Brücke macht sie framegenau.
  • Glaubwürdigkeit: Zeige niemals einen Screen, der einem Overlay widerspricht; keine erfundenen Statistiken; keine erfundenen Zitate; Diagramme ohne reale Daten tragen keine Achsenwerte.

Schritt 7 – Audio (standardmäßig keine Musik)

  1. Schreibe sound.json: ein Cue pro Bildschirmereignis, { "fx", "at", "vol" }. Jeder Effekt muss eine Bedeutung haben – Klick bei einem Drücken, Pop bei einer Landung, Whoosh bei einer Kamerabewegung, Tippen während Text sich selbst schreibt, Glocke, wenn ein Ergebnis eintrifft.
  2. Optionale Voiceover – nur wenn der Benutzer eine Erzählung wünscht. Schreibe voiceover.json (eine kurze Zeile pro Szene, at = der Cue dieser Szene) und führe python3 scripts/voiceover.py aus. Engines: say (macOS, schlüssellos) oder openrouter (nur wenn der Benutzer bereits OPENROUTER_API_KEY gesetzt hat). Jeder Take wird mit dem Skript abgeglichen und wiederholt, wenn das Modell statt vorgelesen geantwortet hat. Korrigiere überlaufende Zeilen, indem du sie umschreibst, nicht indem du das Tempo erhöhst.
  3. python3 scripts/build_audio.py – mischt Effekte (geduckt unter eventueller Stimme) ohne Musik und ohne Hintergrund. Setze dann AUDIO_SRC = "audio/master.wav".

Schritt 8 – Verifizieren, dann rendern

Ein erfolgreicher Render ist keine Verifizierung.

  • Rendere Standbilder bei jedem Beat, in jeder Ausrichtung, die du auslieferst, und Read sie. Korrigiere Kollisionen, Abschneiden, Überlauf, nicht-markengemäße Farben, Widersprüche.
  • Rendere, dann beprobe das codierte MP4 (1 Frame/Sekunde) und lies die gesamte Sequenz.
  • Überprüfe die Datei: ffprobe (Größe, fps, Frame-Anzahl, Audiostream), blackdetect, freezedetect und einen Decode-Durchlauf mit ffmpeg -v error -f null -.
  • Falls es eine Erzählung gibt, transkribiere die letzten Zeilen und vergleiche sie mit dem Skript.

Schritt 9 – App Store-Schnitt (falls gewünscht)

≤30s, 30fps, exakte Gerätegröße. Beschleunige sanft, stärker in ruhigen Lücken, Ausgabe 30fps; siehe docs/appstore-cut.md. Niemals Letterbox oder strecken.

Host-Notizen

  • Claude Code – installiere nach ~/.claude/skills/promo-video/.
  • Codex – installiere nach ~/.codex/skills/promo-video/. Kein AskUserQuestion; frage in Prosa.

Liefere CREATIVE_DIRECTION.md und die gerenderten Dateien mit ihren genauen Pfaden.

Verwandte Skills