captions
Per-word highlighted caption overlays. Each word is rendered in highlight_color when it is being spoken, creating a karaoke-style effect.
When to use
Use after your transcript and edit cut are finalized. Requires both a transcript step and a backbone step to map source timestamps to timeline positions.
Tip: The
editprocessor'scaption_burnoperation burns a single line of text onto a clip. This processor remains the option for transcript-driven, timed captions.
In the editor
Add it from the Library (Overlays group), or with + add step and a search for captions, once your transcript and your cut are settled: captions built against a cut you then change will be out of step with it.
Under Inputs, add transcript as a step input pointing at your transcript step, and backbone as a step input pointing at the step that made the cut. That second one is what keeps the words landing on the right frames after silences and mistakes have been removed.
max_words is how many words are on screen at once, and small numbers read better on a phone. font_size, scale and position_y size and place them: position_y counts from the middle of the frame, so a negative number sits the captions lower. highlight_color is the word being spoken and text_color the rest; outline_color with outline_size is what keeps them legible over busy footage. word_corrections is a find-and-replace applied before grouping, which is where you fix a product name that keeps coming through wrong.
Set Output Level to a captions level that draws above your footage.
The captions appear as their own clips on that level in the run timeline, one per group of words, and you can edit the text there after the run. Caption groups are kept with the run group, so a later run reuses them rather than rebuilding them.
YAML Example
- id: captions
processor: captions
input:
- id: transcript
step: correct_transcript
- id: backbone
step: ai_cut
params:
max_words: 5
font_size: 72
position_y: -480
scale: 0.75
highlight_color: "red"
text_color: "white"
outline_color: "black"
outline_size: 8
outline_fuzziness: 3
line_gap: 10
font_file: ""
word_corrections:
"ninety nine percent": "99%"
"red panda": "Redpanda"
output:
timeline: captions
cache: true
Inputs
| ID | Source | Description |
|---|---|---|
transcript |
step | Transcript with word timestamps (use the corrected transcript if available) |
backbone |
step (optional) | Edit decisions: maps source timestamps to timeline positions. When omitted, source timestamps are used as-is. |
original |
step or file (optional) | Original script or transcript used by ai_correct: true for alignment. Accepts a step output or a text file. |
Params
| Param | Type | Default | Description |
|---|---|---|---|
max_words |
number | 5 |
Words per caption group |
font_size |
number | 72 |
Base font size in pixels |
position_y |
number | -480 |
FCP pixels from center (negative = below center) |
line_gap |
number | 0 |
Vertical gap between lines |
highlight_color |
color | "red" |
Color of the active (currently spoken) word |
text_color |
color | "white" |
Color of inactive words |
outline_color |
color | "black" |
Outline color |
outline_size |
number | 8 |
Outline width in pixels |
outline_fuzziness |
number | 0 |
Shadow spread in pixels |
font_file |
string | none | Path to .ttf. Auto-detects Arial Bold if empty. |
ai_correct |
bool | false |
Align cut transcript against a full-recording transcript to restore symbols (%, $, -) and compound words (USB-C, CI/CD) that Whisper drops. Requires an original input (step or file). |
scale |
number | 1 |
FCP transform scale |
word_corrections |
text | none | Multi-word find→replace applied before grouping (preserves timing) |
Output
EditDecisions on the captions level: one clip per caption group.
Notes
- Caption groups are saved with the run group. A run started from inside that group, or a re-run from a later step, reuses them; a fresh run from the template computes them again (see Reusing work between runs). To adjust them, edit caption text in the run timeline, use
word_corrections, or clear the step's cache to recompute from the transcript (see "Fixing captions" above). - Word corrections: merges matched words into single caption entries with redistributed timestamps; corrections don't break caption timing.
- See the Captions guide for manifest editing details.