Burn captions on a Claude Motion MP4 with cues, not speech-to-text
A Claude Motion export is a public-URL problem and a silent-clip problem. Sume video captions take authored cues, skip STT, and cost $0.20 per job up to 60 s.

To caption a Claude Motion MP4, host the file at a public HTTPS URL and send it to Sume's video captions endpoint with cues (text, start, end in seconds). With cues, Sume does not run speech-to-text, so a clip with no spoken audio still works. The job costs $0.20 for a video of 60 seconds or less.
Claude Motion was announced on 2026-10-08 as a beta for Team and Enterprise. Per the announcement, Claude writes code that animates text, charts, shapes and images, and you download the result as an MP4. The page does not say whether that MP4 carries an audio track, so plan for the case where it does not.
Why cues instead of speech-to-text
Sume's caption endpoint has two modes. Without cues, segments or words, it transcribes the clip. If the clip is silent, the job fails with caption_no_speech and a next action of use_overlay_captions. A Motion export of a chart animation is exactly that kind of clip.
Cues are authored overlay text. You already know the words, because Claude produced them in the animation script. You send them with the times you want them on screen. You can send only one of script_text, words, cues and segments in a single request.
What the endpoint accepts
| Item | Value |
|---|---|
| Endpoint | POST /v1/video-captions |
| Price | $0.20 per accepted job, videos up to 60 seconds |
| Input | video_url: public HTTPS video URL |
| Rejected URLs | localhost, private network, non-HTTPS, signed or private, provider task URLs |
| Authored text | cues or segments with text, start, end (seconds); no STT |
| Styles | slam, punch, tiktok-green, korean-ad, plus Hangul styles |
| Silent clip without cues | fails with caption_no_speech |
Host the file first
The signed-URL rule matters here. A download link that expires or needs a login is rejected by the caption endpoint, so upload the MP4 somewhere that serves it publicly over HTTPS before you submit. Sume can import media into its own storage with its media import route, which the timeline docs describe for render inputs.
Add an Idempotency-Key so a retried submit does not bill twice. Then poll GET /v1/jobs/{id}/status and read GET /v1/jobs/{id}/result, as in the jobs docs.
A runnable request
This request sends two cues for a 6-second clip. Replace the URL with your hosted file and set SUME_API_KEY.
import json, os, urllib.request
body = {
"video_url": "https://example.com/motion-explainer.mp4",
"style": "punch",
"cues": [
{"text": "Q3 revenue", "start": 0.0, "end": 2.5},
{"text": "Up 18 percent", "start": 2.5, "end": 6.0},
],
}
req = urllib.request.Request(
"https://api.sume.com/v1/video-captions",
data=json.dumps(body).encode(),
headers={
"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
"Content-Type": "application/json",
"Idempotency-Key": "motion-captions-001",
},
method="POST",
)
with urllib.request.urlopen(req) as resp:
print(resp.status, resp.read().decode())When Claude Motion already shows the words
Because Claude Motion animates text as part of the picture, burned captions are not always needed. Add them when the words on screen are a headline and you want a second, spoken-style line, or when the platform plays video muted and your animation carries numbers in small type. The Motion announcement says you can change any word, number or timing in the editor, so keep your cue list in the same source as the animation script. If a number changes, update the cue text and resubmit with a new Idempotency-Key, which creates a new $0.20 job.
Check the finished file on the target platform before you ship. Caption placement is set by the style, so a short chart label near the bottom can collide with a caption. Try punch or slam on one clip first, and move to a different style if the overlap shows.
Three 30-second explainers captioned once each cost 3 x $0.20 = $0.60. If you want a second look for the same clip, a restyle with source_caption_id reuses the first job's transcript work, but it is still a render and still bills $0.20 per the docs.
Sources
Related posts
More in Use cases
- Can a 4:5 video be a YouTube Short? The page says square or vertical
YouTube's Shorts page says square or vertical and up to 3 minutes, and lists no ratio chart. A 4:5 feed render is taller than wide; how to make one on Sume.
- Caption once after stitching: four 15 s clips cost $0.30, not $0.90
The caption job is $0.20 per accepted job up to 60 s. Stitch four 15 s clips first ($0.10), then caption once ($0.20): $0.30, not $0.90.
- 45 seconds on Wan 3.0: a 30 s and a 15 s job, $11.25 at 1080p
Past the 30-second cap, a 45-second Wan 3.0 video is two jobs: 30 s and 15 s cost $11.25 at 1080p or $5.625 at 720p on Sume. Chain with the last frame.
- Character turnaround sheet on a 4:1 strip, sliced into references
One 4:1 Nano Banana 2.1 image on Sume as a four-view character sheet at $0.15 (2K), sliced into four squares and fed back as input_references. Steps and cost.
Written by Sume