Set caption style
set_caption_stylePROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Change how existing captions LOOK without touching their text or timing. Pass only the fields to change: 'make the captions premium' -> {"style":{"motion_look":"editorial"}}, 'calmer/cleaner' -> {"style":{"motion_look":"clean"}}, 'more hype/viral' -> {"style":{"motion_look":"pop"}}, 'big hero words' -> {"style":{"motion_look":"lockup"}} (motion looks are browser-drawn; see add_captions for them and for the preset menu: clean/documentary/broadcast/podcast/beast/karaoke/spotlight/elegant/stacked/.../classic; naming a new preset without motion_look renders that preset, motion_look:null returns to the stored preset), 'make it red' -> {"style":{"color":"#FF0000"}}, 'center the captions' -> {"style":{"position":"middle"}}, 'bigger / more dynamic captions' -> {"style":{"size":"xl","dynamic":true}} (dynamic = legacy karaoke without a preset; presets animate on their own). highlight_color changes the accent of emphasized/spoken words; uppercase forces casing; emphasis_words (top-level arg, with a preset) replaces the emphasized keyword list. An explicit position or anchor_y locks captions there for the whole video and removes any old shot-aware placement track — use this when the user says captions must stop moving. For fine size control that the s|m|l|xl buckets can't hit pass size_scale (0.5-3.0; 1.5 = 50% bigger). Outline, shadow, backing panel, tracking and text alignment are independently editable. For transcript captions, single_line:true overrides any preset stack and guarantees one rendered row per state. Works for from_transcript and manual captions; errors helpfully if no captions exist yet.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| emphasis_words | No |