Burn a rolling headline sequence onto a muted news clip
Put timed headlines on a muted news clip with video-captions cues, a card colour and anchor_ratio. $0.20 per clip up to 60 seconds, no speech needed.

To put a rolling headline sequence on a muted news clip, send Video captions a cues array: each cue is text, start and end in seconds. Authored cues skip speech-to-text, so a clip with no speech works, and it costs $0.20 for clips up to 60 seconds.
This is for newsrooms and publishers cutting a silent b-roll package for a feed, where the headline is the content. It does not write the headline for you, and it does not check that the words are accurate.
Why use cues instead of script text?
Speech-based captions need audible speech. A silent clip fails with caption_no_speech and next_action: use_overlay_captions. script_text aligns your wording to speech it hears, so it cannot help here either.
cues (alias segments) are phrase-level overlay cards burned exactly as written at the times you give. script_text, words, cues and segments are mutually exclusive, so send one.
What does the request look like?
Three cards over a 24-second clip, with a dark card behind each and the line placed low in the frame. design merges over the style's own tokens, so only the keys you send change.
import json, os, urllib.request
cues = [
{"text": "Harbor reopens after storm", "start": 0.5, "end": 7.5},
{"text": "Ferries run on a reduced timetable", "start": 8.0, "end": 15.5},
{"text": "Full service expected Friday", "start": 16.0, "end": 23.0},
]
body = {
"video_url": "https://media.sume.com/artifacts/artf_demo/harbor.mp4",
"style": "slam",
"cues": cues,
"design": {"colors": {"card": "rgba(0,0,0,0.6)"}, "placement": {"anchor_ratio": 0.8}},
}
key = os.environ.get("SUME_API_KEY")
if not key:
raise SystemExit("set SUME_API_KEY")
req = urllib.request.Request("https://api.sume.com/v1/video-captions",
data=json.dumps(body).encode(), method="POST",
headers={"Authorization": f"Bearer {key}", "Content-Type": "application/json",
"Idempotency-Key": "harbor-headlines-v1"})
print(urllib.request.urlopen(req).read().decode())The video_url must be a fetchable public HTTPS URL; localhost, private-network, signed or private URLs are rejected. If your footage lives in a private bucket, import it first and see Media inputs. Poll with GET /v1/jobs/:id/status, then read the result, as in Jobs and results.
Which design fields matter for headlines?
| Group | Field | What it changes |
|---|---|---|
| colors | card | Fill behind the line; null draws no card |
| colors | base, active, stroke | Text fill, spoken-word colour, outline |
| placement | anchor_ratio | Line centre as a fraction of frame height |
| placement | landscape_anchor_ratio | Same, for landscape frames |
| phrasing | max_words, max_chars | How a cue wraps into cards |
What are the limits to plan around?
Out-of-range numbers are a 400 at request time rather than a wrong render. design is not supported on punch or tiktok-green. Korean copy on a Latin style such as slam is refused with caption_hangul_text_latin_style, so use a Hangul style like black-outline for Korean headlines.
The $0.20 price is a fixed estimate for videos up to 60 seconds, and the docs tell you to confirm it in GET /v1/catalog. Longer clips are not covered by that line, so keep a package to a minute, or split it.
Burning is permanent for that output: there is no toggle for viewers. If a platform shows its own captions, you may get two layers, so keep the on-frame headline short and above the platform's own text zone.
Sources
Related posts
More in Use cases
- Newsletter issue as a 60-second avatar video and MP3
Turn a newsletter summary into a 60-second avatar video, then pull the MP3 for beehiiv's audio block with Sume's audio detach. What fits in a minute.
- Pull newsletter quotes from a video, with timestamps, via the API
Video inspect with transcribe and sentence segmentation returns timed sentences for $0.01 per audio minute, so a newsletter can link each quote to its moment.
- Nextdoor ad images: 1080x1080 or 2:1, 30 MB, 120-char headline
Nextdoor image ads use 1:1 at 1080 x 1080 or 2:1 at 1080 x 540, JPG or PNG up to 30 MB. Make the 1:1 with Sume and crop a 2:1 locally.
- Ofcom hash matching for AI deepfake intimate images: 30 September 2026
Ofcom said platforms should use hash matching to stop intimate-image abuse, including AI deepfakes, by 30 September 2026. What that means for AI video makers.
Written by Sume