Communitygithub.com

gergobalogh/finding-video

Erstelle ein kurzes vertikales Video (TikTok, Reels, Shorts) über einen Fund aus echtem Material – Daten, Fotos, Satellitenbilder, Speisekarten, Dokumente – um eine Debatte anzustoßen und Nutzer auf die Seite des Users zu lenken. Das Material füllt den Bildschirm; die Website wird nur als Quelle eingeblendet. Verwende es, wenn der Punkt des Videos das ist, was der User gefunden hat (eine Preislücke, eine Stadt, die gewachsen ist, eine überraschende Zahl), nicht wie man die Seite bedient. Für die Demonstration einer App-Funktion (z. B. ein Chatbot, der antwortet) verwende stattdessen demo-video.

Was ist finding-video?

Dieses Skill erstellt kurze, vertikale Videos im TikTok-, Reels- oder Shorts-Format, die einen Fund aus realen Materialien hervorheben. Es eignet sich am besten, wenn der Inhalt eines Faktums im Mittelpunkt steht – wie eine Preisdifferenz, das Wachstum einer Stadt oder eine überraschende Zahl – und nicht die Funktionsweise einer Website. Das Skill generiert zwei Cuts (A und B) in 1080×1920, 30 fps mit H.264 + AAC, jeweils 15–25 Sekunden lang, sowie eine post.txt mit Spezifikationen, Quellenangaben und Ansprüchen. Es unterstützt verschiedene Renderer: frames.py für Fotos und Satellitenbilder, seek_capture.mjs für animierte Diagramme und optional cth9191/animate für illustrierte Szenen. Der Workflow umfasst drei Genehmigungsschritte (Story, Look und Storyboard) vor dem endgültigen Rendern. Enthaltene Prüfungen stellen sicher, dass Bildqualität, Farbraum, Lautstärke und Textlesbarkeit den Anforderungen entsprechen. Das Skill ist für die Verwendung mit Claude Code, Cursor oder Codex optimiert und folgt den handwerklichen Regeln aus references/craft.md.

Funktioniert mit~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/gergobalogh/claude-skills/tree/HEAD/skills/finding-video

In Ihrer bevorzugten KI fragen

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

Dokumentation

Finding Video

Das Produkt ist der Fund, nicht die Website. Das Video zeigt das echte Material, das ihn belegt, groß und klar, hält eine Sache konstant, damit der Zuschauer sieht, was sich geändert hat, und endet mit einer Frage, die die Leute in den Kommentaren beantworten. Die Website erscheint nur am Ende, als Quelle.

Es entstand aus dem Cluj-Satellitenclip (gleicher Ort, 1968 → 2025, Vollbild-Aufnahmen, eine Jahreszahl Beschriftung, zwei Zeilen, keine Website), der viel besser funktionierte als ein Rundgang durch die Seite.

Was du lieferst

  • Zwei Schnitte, 1080×1920, 30 fps, H.264 + AAC, 15–25 s: A beginnt mit der Frage oder dem ersten Bild und loopt; B beginnt kalt mit dem Höhepunkt. Cover für beide.
  • post.txt: Dateien und Spezifikationen, Posting-Notizen, die Tabelle der Behauptungen (jede Zahl und Zeile auf dem Bildschirm → ihre Quelldatei oder URL), Bildnachweise, Tonquellen. Kein Post-Text, es sei denn, der Benutzer fordert ihn an (Agenten verfassen keine Beiträge).
  • Die Videos in einem Ordner außerhalb des Repos (~/Videos/<projekt>-finding-<datum>/); das Storyboard, Skripte und Materialausschnitte im reports/finding-<datum>/ des Projekts, mit einer README: was dort ist, wo die Medien liegen, was die Skripte benötigen.
  • Das Posten ist die Aufgabe des Benutzers: poste niemals für sie.

Arbeitsablauf: drei kostengünstige Genehmigungen vor dem langen Rendern

  1. Der Fund. Liste 2–4 Kandidatenfunde aus den eigenen Daten des Projekts auf, jeweils mit der Spannung, die sie tragen, und ihrem Nenner. Wähle den mit der größten Anziehungskraft (Geld, die Stadt, ein gemeinsames Ärgernis). Überprüfe jede Zahl anhand der Daten, nicht anhand der Seite, die sie zusammenfasst.
  2. Das Material. Finde für den Fund das lebendigste reale Ding, das ihn zeigt: einen gespeicherten Screenshot einer Speisekarte, einen Satellitenbildausschnitt, ein Dokument, ein Foto, die Daten selbst als Diagramm. Notiere die Rechte für jedes Stück (siehe references/craft.md, Material). Ausschnitte bleiben exakt wie aufgenommen: keine Retusche, keine hinzugefügten Preise.
  3. Story-Check (Genehmigung 1). Eine Tabelle der Beats: Zeit, was den Bildschirm füllt, die Bildunterschrift, der Ton und die Behauptung, die jeder Beat mit seiner Quelle aufstellt. Benenne die Konstante (was gleich bleibt, während sich der Rest ändert) und das Mittel (die eine Idee, die du in einem Satz sagen könntest). Warte auf das Ja des Benutzers oder auf Änderungen.
  4. Look-Check (Genehmigung 2). Verwende das aktuelle Design der Seite: lies seine Farben, Schriftart und Diagrammstil jedes Mal aus dem Quellcode der Seite, da Seiten neu gestaltet werden (2026-11-06). Rendere 2–3 Vollbild-Frames (frames.py --stills oder seek_capture.mjs ... stills) und zeige sie. Warte auf ein Daumen hoch pro Frame.
  5. Storyboard (Genehmigung 3). Zeichne es mit scripts/storyboard.py: ein Schlüsselbild pro Beat in Originalgrößenverhältnissen, mit der Zeit, dem Ton und dem Übergang zum nächsten Beat. Zeige es und warte auf ein Ja. Der Benutzer hat diesen Check angefordert: kein Video-Rendering davor (2026-11-06).
  6. Erstellen. Rendere, führe dann die unten stehenden Prüfungen durch und betrachte jedes Blatt selbst.
  7. Liefern. post.txt, Storyboard, und teile dem Benutzer mit, was du nicht überprüfen konntest (Ton zumindest mit dem Gehör prüfen) und dass die 2-Sekunden-Haltezeit, die Sehdauer und die Kommentare das eigentliche Urteil sind.

Überspringe eine Genehmigung nur, wenn der Benutzer es für dieses Video sagt.

Renderer

Wähle je nach Material; alle schreiben 1080×1920 PNG-Frames und kodieren mit tv-range BT.709 yuv420p.

MaterialRendererWie
Fotos, Scans, Satellitenbilder, Dokumentausschnittescripts/frames.py (vom Satellitenclip)Eine Python frame_fn(t), die Vollbildbilder zusammenstellt, shade_top hinter Bildunterschriften, overlay/text für Bildunterschriften; synth für Tonereignisse; render() kodiert
Ein Diagramm oder eine Zahl, die sich bewegtEine HTML-Seite mit window.seek(t) (die Diagrammmethode unten) + scripts/seek_capture.mjsnode seek_capture.mjs <page.html> <out> stills für Kontrollbilder, dann Frames für das Video; kodiere mit ffmpeg wie in frames.encode
Eine illustrierte Szene (Atmosphäre, eine Metapher)optional: cth9191/animate (MIT), ein Drittanbieter-Skillvor der Installation fragen

Die Diagrammmethode (von charlie947/motion-graphics-skills animated-chart, MIT): vier Zustände — Start, eine Änderung (nichts blendet aus und wird ersetzt), Halten mit dem Schlagzeilenwert beschriftet, Rückkehr, damit der Loop keinen Sprung hat. Jeder Frame wird allein aus t berechnet. Der Titel, die Beschriftungen und die Achse bewegen sich nie. Runde niemals, formatiere neu oder füge eine Zahl hinzu. Nach dem Erstellen erfasse Frames bei 0, 1, 2, 4 und 7 s und suche nach überlappendem oder abgeschnittenem Text vor dem Video.

Benötigt numpy und Pillow für frames.py, Playwright für seek_capture.mjs (setze PLAYWRIGHT= auf sein node_modules/playwright, wenn es nicht auflösbar ist), und ffmpeg.

Prüfungen

  • python3 ../demo-video/scripts/check.py <out dir> --name <name> (aus diesem Skill-Ordner) (benenne die Schnitte <name>-A.mp4 / <name>-B.mp4): Größe, Bildrate, Farbe, Lautstärke, Loop-SSIM, Sicherheitszone und Kontaktbögen. Es meldet und schlägt nicht fehl: lies jede Zeile und überprüfe jede Zahl selbst auf ihr Ziel.
  • Betrachte das Sicherheitszonen-Blatt: keine Bildunterschrift, Zahl oder Quellenzeile unter Rot.
  • Lies jede Bildunterschrift in Telefongröße (360 px breit) auf dem Kontaktbogen.
  • Benenne den Helden jedes Haupt-Beats und überprüfe, ob er mindestens 40 % der Bildschirmhöhe einnimmt, und benenne die Wende (references/craft.md). Sage, welche Beats fehlen.
  • Tabelle der Behauptungen: jede sichtbare Zahl auf eine Datei zurückgeführt; jeder Vergleich gibt seine Grundlage an (welche Pizzen, welches Datum, wie viele).
  • Messe den Ton Beat für Beat, sowohl im gesamten Bereich als auch über 250 Hz (was ein Telefonlautsprecher abspielt). Der Höhepunkt muss bei beiden am lautesten sein, und die fast Stille muss leise sein. Höre dann einmal zu, wenn du kannst; ansonsten sage, dass du es nicht getan hast. Verwende frames.mix, um dem Höhepunkt seine eigene Lautstärke zu geben, dann frames.level; beim Pizza-Pilot ließ der alte Kompressor das Brummen lauter als den Höhepunkt.

Fallstricke

  • Eine Bildunterschrift neben einer Zahl übernimmt deren Einheit. „Die größte Lücke“ unter „4 Lei“ wird als Lei gelesen; sage „în procente“ oder lass es weg. (Treponti war prozentual der größte, La Crosta in Lei.)

  • Verwende keine Produktfotos oder Oberflächen der Apps (Wolt und Glovo AGB reservieren Bildrechte). Schreibe einen Eintrag in deine eigene neutrale Karte, datiert, oder beschneide nur Text, den du als Beweis benötigst, und sage, woher er stammt.

  • KI-generiertes Material bleibt Videos über reale Orte oder reale Preise fern; es wirkt wie inszeniert. Atmosphäre stammt von den eigenen Aufnahmen des Benutzers, aus Public-Domain-Archiven (überprüfe die Rechte jedes Elements) oder einem klar illustrierten Stil.

  • ElevenLabs „Chris“ bekommt rumänische Zahlen falsch, selbst als Ziffern (49 und 67 im Pizza-Video, 88 im Genehmigungsvideo, 2026-11-06). Transkription fängt es nicht. Höre dir jede gesprochene Zahl an und lasse den Benutzer vor dem Mischen zuhören.

  • Vor dem Posten muss die Seite live sein und die Zahlen neu überprüft werden, wenn sich die Daten geändert haben.

  • Synthetische Stimmen lesen Zahlen falsch, und Transkription wird es nicht abfangen. Ausgeschriebenes „optzeci“ kam als „opt zece“ heraus, das Transkript sagte immer noch „Optzeci“, und ein Take mit Ziffern war richtig. Der nächste Take derselben Zahl kam wieder falsch heraus, also variiert die Generierung: sobald der Benutzer einen Take genehmigt, füge dieses Audio ein und generiere es nicht neu. Nur ein menschliches Ohr kann die Aussprache überprüfen (2026-11-06).

Woher die Regeln kommen

references/craft.md enthält das Handwerk: das Finding-Beat-Blatt, die Story-Regeln, Bildunterschriften, Material und Rechte, Ton. Quellen: ein Satellitenbildclip von Cluj-Napoca (2026-11-03), demo-videos Handwerksnotizen, cth9191/animate Story-Grammatik (MIT), charlie947 animated-chart und vox-explainer Regeln (MIT), StewdioAI/blank-page Frame- und Turn-Regeln (MIT) und eine Codex Konsultation (2026-11-04).

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills