add_captions
Generate word-timed ASS subtitle files that follow the editing timeline, so captions stay accurate after cuts; optionally burn them directly into a rendered video.
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 the default exit — Kdenlive loads it and it stays
restylable. Pass burn (a render of THIS timeline) to burn the captions in
with ffmpeg instead; against any other video the timings will not line up.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| burn | No | Burn the captions into this video with ffmpeg instead of writing a sidecar. 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, or the burned video under `burn`. | |
| 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. Unset, it is derived from `burn`'s own name. | |
| max_duration | No | Longest a single cue stays on screen, in seconds. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||