gooseworks-ai/render-cinematic-music-video
Assemble a cinematic live-action-style music-video ad from a config — an original sung anthem carries the whole narrative while N 35mm-film-look i2v clips are each cut to their lyric window and hard-concatenated on the beat as a 3-act arc, the anthem muxed at loudnorm I=-14, cinematic lower-third serif captions built from the song's OWN word timings (never Whisper) with the hook line landing on the chorus drop, and closed on a brand end card composited from the real asset — never AI-rendered text. This is the FREE deterministic assembly stage (cut-to-window + hard concat + anthem mux + captions + end card); the anthem, keyframes, and clips come from create-music-elevenlabs / create-image-fal / create-video-fal. Use for the cinematic-music-video format.
npx skills add https://github.com/gooseworks-ai/goose-skills --skill render-cinematic-music-video
Assemble a cinematic music-video ad from a config: a live-action-STYLE short film where an
original sung anthem is the score and every visual beat is a shot-on-film tableau (Kodak Portra
grain, light leaks, golden hour, handheld imperfection) timed to the lyrics, arranged as a
3-act arc (morning → peak → twilight) with the hook line on the chorus drop. This capability is
the FREE, deterministic assembly — cut-to-window, hard-concat, anthem mux, caption burn,
and the brand end card.
scripts/config.example.json is the worked example (Hype and Vice "Game Day Girls", ~28s
1080×1920 9:16, 14 tableaux); scripts/PIPELINE.md maps every config block to its source step
and scripts/README.md documents the free assembly.
This is the FREE, deterministic assembly stage — it spends nothing. The paid inputs are
separate capabilities: the sung anthem (create-music-elevenlabs, force_instrumental false —
the lyrics ARE the script, returns mp3 + words_timestamps); one 35mm-film keyframe per beat
in one look pack (create-image-fal); and one Kling 3.0 i2v clip per beat (create-video-fal).
Given the delivered anthem + words.json + one clip per beat + the brand end-card asset,
render-cinematic-music-video cuts each clip to its lyric window, hard-concats on the beat,
muxes the anthem, burns the cinematic lower-third captions, and overlays the end card → the
master. Re-cuts reuse the existing anthem / keyframes / clips and cost $0.
the bed and the script (force_instrumental false); do not add a spoken voiceover or a
second bed.
reshapes/overshoots length; snap every tableau boundary to the lyric-phrase edges in the
returned word timings — never trim the anthem to a pre-planned grid.
words.json from themusic model's words_timestamps, chunk ~4 words at lyric boundaries, and burn cinematic
lower-third serif captions (--placement low) with the hook line accent-treated (bold-italic).
Whisper on sung audio returns "🎵 Music Playing 🎵".
is_hook) is timed so theload-bearing line sits on the chorus drop; accent that line in the captions.
flares + handheld) plus a continuity anchor holds every clip together; cut each clip to its
lyric window and hard-concat (one optional match-cut into the hero reveal) — no dissolves.
Composite the lockup (PIL/ffmpeg) from the real asset or use a designed keyframe base;
diffusion garbles a wordmark.
hard-concat, mux the anthem (afade in/out + loudnorm I=-14), burn the caption ASS, overlay
the end card → a 1080×1920 h264+aac master. No paid calls, no keys.
Take gooseworks-ai/render-cinematic-music-video from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.