Course welcome video captions in your brand color (slam, $0.20)
Burn captions in your school's accent color: set design.colors.active on the slam style. It does not work on punch or tiktok-green. $0.20 for clips to 60 s.

To burn captions in your course's brand color, call POST /v1/video-captions with style: "slam" and design: { "colors": { "active": "#hex" } }. The active color is the one used to emphasise the spoken word, and every other token keeps the style's default. Standalone captions are $0.20 for a clip of up to 60 seconds.
Design overrides work on every named style except punch and tiktok-green, which the docs say still render on a path that reads none of the tokens. Source: Video captions, read 2026-10-04.
What you can change
A style is a set of design tokens, and each group merges over the style's own value, so one key changes one thing.
| Group | Fields | Brand use |
|---|---|---|
| colors | base, active, stroke, accent, accent_deep, card | Accent color for the active word; card null draws no card |
| typography | base_weight, active_weight, active_scale, font_size_ratio, safe_width_ratio, stroke_width_px | Larger words for a phone, thicker stroke on bright footage |
| placement | anchor_ratio, landscape_anchor_ratio | Move the line clear of a lower-third |
| phrasing | max_words, max_chars, pause_seconds | Shorter lines for a beginner course |
| motion | enter_seconds, exit_seconds, emphasis_in_seconds, emphasis_out_seconds | Calmer motion for a serious subject |
Request
Colors are hex, rgb()/rgba() or transparent. Any other CSS syntax is rejected, and a number outside its documented range is a 400 at request time, so a wrong value fails before it bills.
curl -X POST https://api.sume.com/v1/video-captions \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: course-welcome-captions-001" \
-d '{
"video_url": "https://example.com/welcome.mp4",
"style": "slam",
"language": "en",
"design": { "colors": { "active": "#F59E0B" } }
}'Spell the course name correctly
Pass script_text if your welcome script is fixed. Sume keeps speech-to-text timings and aligns the burned wording to your script, so names such as the course title are spelled the way you wrote them. If alignment fails you get script_alignment_mismatch or script_alignment_failed, and the suggested next action is to simplify the script or omit it.
Restyle for a second brand
Once one welcome video is approved, restyle it without a second transcription by sending source_caption_id in place of video_url. Sume reuses the source video and the word timings it already has. Billing is unchanged, because a restyle is still a render.
If the clip came from Avatar Video, you can instead set inline captions on talking-video. Inline captions are not billed separately and are limited to videos of 60 seconds or less.
- One welcome video, two brand colors: two caption jobs, the second with
source_caption_id. - Silent clip: pass
cueswithtext,startandend, because a silent clip with no cues fails ascaption_no_speech.
Sources
Related posts
More in Use cases
- Article 50: creator duties vs provider duties, side by side
Article 50(4) puts deepfake and certain text disclosure on deployers, while 50(2) puts marking on providers. A two-column split for teams that publish AI video.
- Case study video narrated by an avatar: three scenes, 55 seconds
Narrate a written case study as a 55-second, three-scene Sume avatar video: problem, change, result. Cost by tier and a body you can send; no names needed.
- Cyber Week five-day creative sprint: a daily Seedance clip budget
Shopify defines BFCM as Thanksgiving through Cyber Monday. Twenty-two 8-second 720p vertical clips across those five days cost $101.6928 on Sume.
- Demand Gen carousels: 2 to 10 matching cards from one reference
Demand Gen carousels take 2 to 10 cards. Image assets run 4:5 or 9:16 at 5 MB. How to batch matching cards from one reference image with the Sume image API.
Written by Sume