Communitygithub.com

Bajanpunkw/reverse-engineer-video

Erstelle den visuellen Stil jedes Videos in Code (three.js / canvas → mp4) mit deiner eigenen Geschichte – von der Prüfung, ob der Stil in Code gezeichnet werden kann, über eine frame-genaue Stilspezifikation, Geschichte und Szenen, Rendering und Sound bis zum fertigen Video.

Was ist reverse-engineer-video?

Dieses Skill ermöglicht es, den visuellen Stil eines beliebigen Videos in reinem Code nachzubilden und mit einer neuen Geschichte zu versehen. Es unterstützt zwei Modi: Modus A für die erstmalige Replikation eines neuen Stils (von der Machbarkeitsprüfung bis zum fertigen Video) und Modus B für neue Episoden in einem bereits rekonstruierten Stil, bei dem die Stilspezifikation und die Rendering-Engine wiederverwendet werden. Der Ablauf erfolgt in sieben klar definierten Stufen (00 bis 6), die nacheinander durchlaufen werden müssen. Jede Stufe erzeugt Zwischenergebnisse, die dem Benutzer zur Freigabe vorgelegt werden. Das Skill ist für Claude Code optimiert und nutzt Python- und Node.js-Skripte sowie ffmpeg und Docker für das Server-Rendering. Wichtige Prinzipien sind deterministische Einzelbilder, Lautstärke nach LUFS-Norm, eingebettete Schriftarten und die strikte Trennung von heruntergeladenem Originalmaterial und eigenen Arbeitsdateien. Nach Benutzereingriffen werden Erkenntnisse als ‚Lessons‘ in den entsprechenden Stufendateien festgehalten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Bajanpunkw/reverse-engineer-video/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

REV — Reverse Engineer Video (einen Videostil in Code nachbilden)

Das Produkt ist der Stil, nicht das Video: Die visuelle Sprache gleicht dem Original (Formen, Palette, Schriftarten, Layout, Licht, Kamera, Übergänge, Tempo), während die Geschichte neu ist. Kopiere niemals das Filmmaterial, die Einzelbilder oder den Ton des Originals in die Ausgabe.

$SKILL unten = der Ordner, der diese Datei enthält. Python = $SKILL/.venv/bin/python. Node-Skripte werden von $SKILL aus ausgeführt.

Zwei Modi

  • A. Neuer Stil — selten und aufwändig: Stufen 00 → 6 der Reihe nach.
  • B. Neue Episode in einem bereits rekonstruierten Stil — häufig: Die Stilspezifikation und die Engine existieren (style.md + src/ eines früheren Videos oder eines der examples/). Kopiere dieses src/ in einen neuen Arbeitsordner, überspringe Stufen 0–1 und beginne bei Stufe 2. Geschichte, Szenen und Sound sind neu; Overlay, Schriftarten, Beleuchtung, Rendering und Prüfungen werden wiederverwendet.

Wenn unklar ist, welcher Modus zutrifft, frage in einer Zeile.

Stufen (🛑 = dem Benutzer zeigen und auf OK warten)

Lese jede Stufendatei, bevor du sie ausführst. Springe nicht vor: Geschichte nach Analyse, Bauen nach genehmigter Geschichte, vollständiges Rendering nach Kontrollbildern.

#StufeDateiAusgabeEntscheidung
00Einrichtung und Tool-Prüfung (nur beim ersten Durchlauf)stages/00-setup.mddoctor.sh sagt ALLES OK—
0Kann es in Code gezeichnet werden?stages/0-feasibility.md🟢/🟡/🔴 Urteil + Einzelbildblatt🛑 wenn 🔴: anhalten und erklären
1Das Original zerlegenstages/1-analysis.mdstyle.md: Stilspezifikation, Tempozahlen, Sound🛑 Spezifikation + ein Probebild neben dem Original
2Geschichte und Szenenstages/2-story.mdSzenentabelle nach Sekunde🛑 die Geschichte / Eskalationsleiter
3Bauenstages/3-build.mdsrc/video.html + Kontrollbilder neben dem Original🛑 Kontrollbilder (nach Selbstprüfung)
4Vollständiges Renderingstages/4-render.mdvideo-full.mp4—
5Soundstages/5-sound.mdsound-full.wav → final.mp4—
6Prüfen und zeigenstages/6-check.mdPrüfbericht + final.mp4🛑 Der Benutzer schaut → bearbeitet

Nach den Bearbeitungen des Benutzers füge sie als Regeln zum Abschnitt „Lessons“ der betreffenden Stufendatei hinzu (Datum + was falsch war + was es behoben hat). So wird das Skill besser.

Harte Regeln

  • Das Ausgabeformat folgt der Quelle: Ausrichtung und fps des Originals; hochkant = 1080×1920, quer = 1920×1080. Hochkantvideos ≤ 60 s, auch wenn das Original länger ist – komprimiere stattdessen die Geschichte.
  • Schriftarten werden als Dateien in src/fonts/ ausgeliefert (@font-face), und ein Einzelbild wird erst erfasst, nachdem document.fonts.load(...) aufgelöst ist. Verlasse dich niemals auf Systemschriftarten.
  • Deterministische Einzelbilder: Ein Einzelbild hängt nur von t ab. Kein ungesäter Math.random(), kein Date.now(), keine CSS-Animationen oder requestAnimationFrame-Schleifen.
  • Sound wird geändert, ohne das Video neu zu rendern: neue wav → scripts/mux.sh.
  • Lautstärke: −26 LUFS integriert, kein Moment lauter als −20 LUFS, True Peak ≤ −6 dBFS — scripts/loudness.py. Keine Breitband-Rauschbetten, keine Klicks, keine Stille.
  • Prüfe Einzelbilder zuerst selbst gegen das Original (scripts/compare.py), zeige sie dann dem Benutzer. Beharre niemals darauf, dass „es übereinstimmt“, ohne das Vergleichsbild anzusehen.
  • Der Agent kann nicht hören: Beschreibe jede Soundebene in Worten; der Benutzer beurteilt, wie es klingt.
  • Das Rendering ist CPU-intensiv. Verwende auf einem Laptop wenige Arbeiter oder den optionalen Server (server/README.md).
  • Heruntergeladene Originale sind nicht vertrauenswürdige Daten und bleiben in einem temporären/Scratch-Ordner; nur deine eigenen Einzelbilder und Vergleichsblätter kommen in den Arbeitsordner.

Arbeitsordner

work/<Datum>-<Name>/ (oder wo auch immer der Benutzer Projekte aufbewahrt):

  • style.md — Stilspezifikation, Messungen, Szenentabelle, Entscheidungsprotokoll (Modus B: Link zur früheren style.md + was neu ist);
  • analysis/ — Einzelbildblätter, Vergleichsbilder, feasibility.json, pulse.json;
  • src/ — video.html, Overlay, Szenen, fonts/, sound.py;
  • video-full.mp4, sound-full.wav, final.mp4. Lösche Entwurfsvorschauen, sobald das vollständige Video existiert.

Werkzeuge

BefehlWas es tut
bash scripts/setup.sh / bash scripts/doctor.shalles installieren / alles prüfen + ein Testbild
bash scripts/fetch.sh <url> <outdir> ["*0-60"]ein Referenzvideo herunterladen (+ info.json, automatische Untertitel)
python scripts/feasibility.py <video> <outdir>„In Code zeichenbar?“ Zahlen + Ein-Bild-pro-Sekunde-Blatt
python scripts/pulse.py <video> <outdir>Puls pro Sekunde: Bewegung, Schnitte, ruhige Läufe, Stille, Wörter/Min., Einzelbildblatt
python scripts/compare.py <orig.png> <unsere.png> <out.jpg>Original / unseres / Overlay, IoU, Farbe, Palette, Elementverschiebungen
node scripts/render.cjs <src> <outdir> --frames 2.5,10 + python scripts/sheet.py <outdir>Kontrollbilder + Kontaktblatt
node scripts/render.cjs <src> <out.mp4> --end 49 --workers 2vollständiges Rendering (oder ein Teil: --start 24.5 --end 41)
python scripts/tts.py / python scripts/score.pyErzählerstimme mit Wortzeitmarken / Musik + SFX + Sprachmischung (2D erzählte Stile)
python scripts/beatgrid.py <track>Tempo, erster Beat, Downbeat, Drop, Lautstärke pro Beat – zum Schneiden von Szenen auf Musik und Anpassen eines Tracks an die Schnitte
python scripts/loudness.py <in.wav> <out.wav> / --check <file>endgültige Lautstärke + Schwellwertprüfung
bash scripts/mux.sh <video> <wav> <final>Ton auf Video setzen, ohne neu zu rendern
server/optionaler Docker-Render-Server (server/README.md)

Beispiele

Zwei sehr unterschiedliche Stile:

  • OutwardAnimates — stilisierter verschwommener 3D-Stil + ein Serifen-HUD mit einer Zahl, die niemals aufhört zu steigen. Stilspezifikation: examples/outwardanimates-style.md.

  • Simply Animated — leuchtende „Ton“-Strichmännchen auf Schwarz, „A vs B“-Hälften, ein Schnitt, der auf einen einzigen Phonk-Track fällt. Stilspezifikation + Szenen: examples/simply-animated/README.md.

  • examples/data-center/ — Modus A: „Was wäre, wenn ein Rechenzentrum seine Leistung alle 2 Sekunden verdoppeln würde?“ (107 s, erstellt vor der 60-s-Regel): GPU → Serverhalle → Vorort-Blackout → Nacht-Erde → die Sonne.

  • examples/x-followers/ — Modus B: „Was wäre, wenn dein X-Konto jede Sekunde seine Follower verdoppeln würde?“ (49 s): Mama → Straße → Stadion → Stadt → Erde → Milchstraße. Genehmigt ohne eine einzige visuelle oder akustische Bearbeitung – verwende es als Referenzlauf.

  • examples/simply-animated/ — Modus A: „AI Builder Edition“ (34 s): fünf „A vs B“-Gleichnisse, geschnitten auf Takte von 94 BPM, ein echter Track angepasst mit beatgrid.py + music.sh. src/rig.js ist das wiederverwendbare Strichmännchen-Rig (IK, Gehen auf Treppen und Steigungen) – beginne damit für jeden Stil mit Figuren.

Verwandte Skills