broll-overlaylisted
Install: claude install-skill novoads/claude-code-ads
# B-roll overlay
Lays silent cutaway clips **over** a finished base video: the base audio runs
untouched underneath, the picture cuts away and returns, and the final duration
equals the base duration exactly. That is the whole contract — overlay, never
concatenation. A previous run concatenated: 24s for a 15s base, voice dead 12s.
Assembly mechanics live entirely in `scripts/broll_overlay.py`; this file is
judgment only — when to enter, where the windows go, what the user sees first.
## Entry condition
Two things must already exist. This skill never generates the base — if there
isn't one yet, say so and stop.
1. **A finished, approved base video with exactly one audio stream.** Approved
means the user has watched it and signed off — b-roll is a polish pass over a
locked cut. The script stream-copies one voice track under the picture, so a
two-stream base is rejected: `ffmpeg -i base -map 0:v -map 0:a:0 -c copy`.
2. **Its transcript, with timings.** One call to **`POST /v1/transcripts`** with
the base's `jobId` (or its `assetId` if it was uploaded). It returns `text`,
word-level `words[]` and `segments[]` — **timings in SECONDS**, which is what
the EDL below takes — plus an `srt` you can ignore here. Priced at 0.1 credits
per minute of source, rounded up from a one-minute minimum, and **a repeat of
the same source is free**, so asking twice costs once. No local install.
*(The **captions** endpoint still cannot supply this — it burns subtitles