Communitygithub.com

kelvinmacaco/short-build

Verwendet, wenn der Ersteller die MP3-Narration eines bereits skriptierten Shorts sendet. Transkribiert und normalisiert die Stimme, sucht kostenlose Videos (Pexels) und einen Track (Pixabay ohne Content ID), schneidet die Clips, schreibt das generate.py der Szenen mit lib_short, wendet das VHS-Band an, prüft Frames, rendert mit HyperFrames und liefert das Video auf dem Desktop ab.

Was ist short-build?

Dieses Skill automatisiert die Videoproduktion für kurze, vertikale Videos (Shorts) auf Basis einer gesprochenen Narration (MP3). Es transkribiert die Sprache, normalisiert die Lautstärke und sucht automatisch passende, lizenzfreie Stock-Videos von Pexels sowie Hintergrundmusik von Pixabay, wobei Tracks mit Content ID Registered vermieden werden. Die Clips werden zugeschnitten und in einem HyperFrames-Projekt organisiert, wobei die Szenen mit einer speziellen Bibliothek (`lib_short`) gestaltet werden, die Animationen, Untertitel und Interaktionselemente wie Like-Buttons oder Kommentarkarten bereitstellt. Nach der Generierung folgt eine Qualitätskontrolle durch Snapshot-Inspektion und Lautstärkemessung (Ziel ca. −13,5 LUFS), bevor das finale Video mit HyperFrames gerendert und auf dem Desktop abgelegt wird. Das Skill ist Teil eines größeren Workflows (`short-start`, `short-media`, `short-review`) und wird vor allem in Kombination mit KI-Agenten wie Claude Code genutzt, die die Schritte entlang der MD-Dokumentation ausführen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kelvinmacaco/kit-shorts-virais/tree/HEAD/.claude/skills/short-build

In Ihrer bevorzugten KI fragen

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

Dokumentation

Montage eines Shorts

Dies ist Teil des Workflows short-start. Details zu Medien findest du in short-media, zu Animationen in short-animation und zur Prüfung und zum Rendern in short-review. Unterstützung: hyperframes, hyperframes-cli und media-use.

Lies zuerst RULES.md und das ROTEIRO.md des Projekts. Das kit.json des Projekts muss das handle enthalten (das vom Ersteller gewählte @). Wenn es leer ist oder "@SEU_CANAL" lautet, frage den Ersteller, bevor du fortfährst.

1. Narration

  • Kopiere die MP3 nach assets\audio\narracao_raw.mp3.
  • Suche nach langen Pausen mit silencedetect=n=-40dB:d=0.6. Kürze diejenigen, die in den Hook fallen, und bei energischem Tonfall auch diejenigen, die länger als 0,8 s sind. Verwende das Rezept zum Zusammenfügen in tools\ffmpeg_recipes.md.
  • Transkribiere mit build\transcribe.py und erstelle assets\audio\narracao_words.json mit den Zeitpunkten jedes Wortes.
  • Normalisiere: python -I -X utf8 build\level_voice.py <mp3> <words.json> video\assets\audio\narracao.mp3.
  • Kopiere hyperframes.json, package.json, meta.json, AGENTS.md und CLAUDE.md von template\video\ nach video\. Passe die id in meta.json an.

2. Medien

  • Führe tools\pexels_search.js im eingebetteten Browser auf einer Seite von pexels.com aus, mit mehreren Suchanfragen auf einmal.
  • Lade die Miniaturansichten herunter, erstelle ein Kontaktblatt (ffmpeg tile) und schau sie dir vor der Auswahl an.
  • Entferne Logos, Marken, Trikots und alles, was nicht zum Gesprochenen passt.
  • Lade mit curl -L -A "Mozilla/5.0" -e https://www.pexels.com/ nach assets\video\stock\ herunter.
  • Hintergrundmusik: von Pixabay nur Tracks ohne "Content ID Registered", in video\assets\audio\musica.mp3.
  • Soundeffekte: siehe tools\sfx\README.md; sie kommen nach video\assets\sfx\.
  • Schneide die Clips mit den Rezepten (vertikal 1080×1920 oder TV-Fenster 1000×750) in video\assets\video\. Erstelle den invertierten Clip des Hooks für die Schleife.
  • Rufe keine Shell-Funktion namens cut auf, da dies den systemeigenen Befehl cut verdeckt.

3. Szenen (build\generate.py)

  • Gehe von template\build\generate.py aus, das auskommentiert ist. Verwende SCENES = [(name, start, ende)] mit den Zeitpunkten der Wörter; innerhalb einer Szene sind die Zeiten relativ (0 = Szenenbeginn).
  • Verwende die Bausteine aus lib_short:
    • Text: kline/words_js/slam/punch/shake/label;
    • Zahlen: Zähler mit onUpdate;
    • Like und Teilen: like_block/plane_svg;
    • Interaktion: comment_card/follow_card/step_badge.
  • Animation über die gesamte Szene. Wenn die Liste Fortschritt verlangt, erstelle einen thematischen Indikator als überlagerte Szene (z.B. pavio_scene aus der Bibliothek, eine Zündschnur, die bei jedem Element abbrennt und am Höhepunkt explodiert).
  • Untertitel: write_captions(WORDS, TOTAL, SKIP, alt_from, alt_top). Das SKIP deckt die Abschnitte ab, in denen die Typografie der Szene die Sprache bereits zeigt.
  • Index: write_index(TOTAL, SCENES, SFX, dur_voice, 0.1, handle=HANDLE). Das HANDLE stammt aus kit.json, über build.ps1.
  • Die Marke @ steht unterhalb der Untertitel (WM_TOP). Platziere die Marke nicht manuell.
  • Schleife: Die letzte Szene endet mit dem invertierten Clip bei Frame 0 des Hooks und demselben Titel.
  • Das Ende folgt dem Ton des Videos: bei einem schweren, dunklen und langsamen Video ohne Ausbrüche.
  • Regeln von HyperFrames:
    • class="clip" + data-start/data-duration;
    • animiere nicht visibility oder opacity des Clips selbst, sondern nur eines inneren Elements;
    • verwende immediateRender:false bei späteren fromTo;
    • jedes <audio> hat eigene id und Track;
    • Videos immer muted;
    • SVG-Linien mit pathLength="1" für den Zeicheneffekt.

4. Generieren, prüfen und rendern

  • Passe $alvos in build\build.ps1 an: die Szenen mit Filmaufnahme, .fv (Vollbild) und .tv (TV-Fenster).
  • Führe powershell -ExecutionPolicy Bypass -File build\build.ps1 -Duracao <TOTAL> aus. Leite die Ausgabe niemals durch Select-Object -First.
  • npx --yes hyperframes@<version> check --json: Korrigiere die Fehler. Erwartbare Fehler, die bestehen bleiben dürfen:
    • Kontrast der transluzenten Marke;
    • Titel der Schleife zu kurz.
  • Erstelle Snapshots (snapshot -o <ordner> --no-end --at "...") und betrachte die Kontaktblätter. Achte auf:
    • Text, der aus dem Bild läuft;
    • unleserliche Untertitel;
    • verdeckte Elemente;
    • stehende Szene.
  • Rendere mit render --quality standard -o renders\<name>_master.mp4 und miss mit ebur128=peak=true (Ziel: etwa −13,5 LUFS, Peak unter −2 dBTP).
  • Kopiere auf den Desktop mit x264 CRF 19, AAC 192k und +faststart.
  • Überprüfe die Schleife: Frame 0 und der letzte Frame nebeneinander (hstack) müssen gleich sein.
  • Schreibe video\REVIEW.md mit den Entscheidungen, was gemessen wurde und was nur angesehen wurde („niemand hat den Ton gehört“).

5. Lieferung

Sende das Video, die Titel (TikTok und YouTube, mit je 5 #), die Beschreibung und den Kommentar zum Anheften. Erinnere an den Veröffentlichungszeitpunkt und bitte um die 48-Stunden-Screenshots.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Verwandte Skills