$npx -y skills add gooseworks-ai/goose-skills --skill render-cinematic-music-videoAssemble 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, cine
| 1 | # render-cinematic-music-video |
| 2 | |
| 3 | Assemble a **cinematic music-video** ad from a config: a live-action-STYLE short film where an |
| 4 | original sung anthem is the score and every visual beat is a shot-on-film tableau (Kodak Portra |
| 5 | grain, light leaks, golden hour, handheld imperfection) timed to the lyrics, arranged as a |
| 6 | 3-act arc (morning → peak → twilight) with the hook line on the chorus drop. This capability is |
| 7 | the **FREE, deterministic assembly** — cut-to-window, hard-concat, anthem mux, caption burn, |
| 8 | and the brand end card. |
| 9 | |
| 10 | `scripts/config.example.json` is the worked example (Hype and Vice "Game Day Girls", ~28s |
| 11 | 1080×1920 9:16, 14 tableaux); `scripts/PIPELINE.md` maps every config block to its source step |
| 12 | and `scripts/README.md` documents the free assembly. |
| 13 | |
| 14 | ## Run |
| 15 | |
| 16 | This is the **FREE, deterministic** assembly stage — it spends nothing. The paid inputs are |
| 17 | separate capabilities: the sung anthem (`create-music-elevenlabs`, `force_instrumental` false — |
| 18 | the lyrics ARE the script, returns mp3 + `words_timestamps`); one 35mm-film keyframe per beat |
| 19 | in one look pack (`create-image-fal`); and one Kling 3.0 i2v clip per beat (`create-video-fal`). |
| 20 | Given the delivered anthem + `words.json` + one clip per beat + the brand end-card asset, |
| 21 | `render-cinematic-music-video` cuts each clip to its lyric window, hard-concats on the beat, |
| 22 | muxes the anthem, burns the cinematic lower-third captions, and overlays the end card → the |
| 23 | master. Re-cuts reuse the existing anthem / keyframes / clips and cost **$0**. |
| 24 | |
| 25 | ## Contract (the free assembly) |
| 26 | |
| 27 | - **The sung anthem carries the story — no separate VO.** The generated ElevenLabs track IS |
| 28 | the bed and the script (`force_instrumental` false); do not add a spoken voiceover or a |
| 29 | second bed. |
| 30 | - **Plan the timeline AROUND the delivered anthem.** The anthem is generated first and |
| 31 | reshapes/overshoots length; snap every tableau boundary to the lyric-phrase edges in the |
| 32 | returned word timings — never trim the anthem to a pre-planned grid. |
| 33 | - **Captions from the anthem's OWN word timings, not Whisper.** Derive `words.json` from the |
| 34 | music model's `words_timestamps`, chunk ~4 words at lyric boundaries, and burn cinematic |
| 35 | lower-third serif captions (`--placement low`) with the hook line accent-treated (bold-italic). |
| 36 | Whisper on sung audio returns "🎵 Music Playing 🎵". |
| 37 | - **Land the hook on the chorus drop.** The hero tableau (`is_hook`) is timed so the |
| 38 | load-bearing line sits on the chorus drop; accent that line in the captions. |
| 39 | - **One cinematic look pack + hard cuts on the beat.** The look pack (named film stock + grain + |
| 40 | flares + handheld) plus a continuity anchor holds every clip together; cut each clip to its |
| 41 | lyric window and hard-concat (one optional match-cut into the hero reveal) — no dissolves. |
| 42 | - **End card from the real brand asset — never AI-render the wordmark as diffusion text.** |
| 43 | Composite the lockup (PIL/ffmpeg) from the real asset or use a designed keyframe base; |
| 44 | diffusion garbles a wordmark. |
| 45 | - **FFmpeg composite, deterministic, FREE.** Normalize each clip to its beat-locked window, |
| 46 | hard-concat, mux the anthem (`afade` in/out + `loudnorm I=-14`), burn the caption ASS, overlay |
| 47 | the end card → a 1080×1920 h264+aac master. No paid calls, no keys. |