product-videolisted
Install: claude install-skill A19235972428/product-video-as-code
# Product video as code
Build product videos as **code**: an HTML deck driven by a deterministic
timeline, an AI voiceover, real screen recordings of the product, and an ffmpeg
audio master. Everything is reproducible, diffable and re-renderable, so revisions
cost minutes instead of a rebuild.
This is not a video editor. It is a pipeline. The output is an MP4.
## The one idea that matters
**Audio first, then timing, then picture.**
Generate the narration before deciding how long anything is on screen. Measure each
clip, derive scene durations from those measurements, and only then render frames.
The alternatives - guessing durations, or writing narration to fit a fixed
storyboard - produce visuals that drift out of sync with the voice and force a
re-render every time a line is reworded.
```
script.json ──► TTS ──► measure ──► timings.json ──► render ──► composite ──► mux ──► MP4
▲ ▲ ▲
assemble.py render.py composite.py
```
For a video with no narration (a title sting, a silent loop, a muted social clip),
skip stage 1 and write `timings.json` by hand. Everything downstream is unchanged.
## Pipeline
| Stage | Script | Produces |
|---|---|---|
| 1. Narration | your TTS tool of choice | `audio/vo_NN.mp3`, one per scene |
| 2. Timing + voice track | `scripts/assemble.py` | `timings.json`, `out/voice.wav` |
| 3. Picture | `scripts/render.py` | `out/silent.mp4` |
| 4