add_captions
Generate word-timed ASS captions for your edited timeline, keeping captions aligned after cuts. Optionally burn them into a video render.
Instructions
Write word-timed ASS captions for the current timeline to output.
Timings follow the timeline, not the original recording, so captions stay
correct after cuts; words that were cut are omitted and counted as
words_cut.
The look comes from the project — set it with caption_style, see it with caption_view. The arguments here override it for this one file and are not written back, so regenerating after a cut is styled the project's way again. Leave them unset unless you specifically want a one-off.
The sidecar .ass is always written to output — Kdenlive loads it and it
stays restylable. Pass burn (a render of THIS timeline) to burn the
captions into a video as well, written to burn_output; against any other
video the timings will not line up.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| burn | No | Also burn the captions into this video with ffmpeg; the sidecar is still written to `output`. It must be a render of **this** timeline — against any other video the timings will not line up. `export --render` does not burn captions, and nothing else reports a render that was made without them. | |
| hold | No | How long a cue lingers after its last word, in seconds. | |
| path | No | The project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing. | |
| output | Yes | Where to write the `.ass` sidecar — always, burning or not. Never a video path: a media suffix is refused. The burned video goes to `burn_output`. | |
| preset | No | Override the project's base look for this one file — `clean`, `karaoke` or `boxed`. Nothing here is written back to the project. | |
| clip_id | No | Caption one transcript's words rather than every clip's. | |
| max_gap | No | Start a new cue when the silence between two words exceeds this many seconds. | |
| max_words | No | Most words in one caption cue. | |
| burn_output | No | Where the burned video goes, when `burn` is set. Unset, it is derived from `burn`'s own name in the project's renders folder. | |
| max_duration | No | Longest a single cue stays on screen, in seconds. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||