Rough cut from a script by API: one scene per Timeline slot
Descript Quick Design splits a script into moments with changing visuals. With Sume you map each scene to a Timeline video slot over a voiceover spine yourself.

To turn a script into a rough cut with Sume, put the narration on the audio spine (audio.url, up to 1800 s) and give each scene one video[] slot whose start and duration line up with when that scene is spoken. The Timeline assembles the slots you declare; the docs describe no route that splits a script or picks visuals.
Descript describes Quick Design as one that "Splits your content into logical moments so visuals change over time instead of staying on one continuous shot". The Sume route is from the Timeline 1.0 docs, read 2026-09-30.
How do scene times line up with the voiceover?
Decide scene boundaries in your own code, for example from the sentence timings of the narration. Each slot's start is on the spine; video[0].start must be 0 and later starts must increase. If the narration is several files, POST /v1/timeline-1.0/audio with operation: "concat" returns segments[] (index, start, duration_seconds), the offsets to re-base video[].start against.
curl -X POST https://api.sume.com/v1/timeline-1.0/render \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: script-rough-cut-001" \
-d '{
"audio": { "url": "https://media.sume.com/artifacts/artf_demo/narration.wav", "duration_seconds": 20 },
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/scene1.mp4", "start": 0, "duration": 9 },
{ "source_url": "https://media.sume.com/artifacts/artf_demo/scene2.png", "start": 9, "duration": 11,
"transition": { "type": "dissolve", "duration": 0.5 } }
]
}'Can a slot be a still?
Yes: source_url may be a Sume-hosted still, which is a static hold. A motion field on a still is accepted and ignored, with a motion_ignored warning. fit is cover (default), contain, stretch or blur.
What are the limits?
Descript says Quick Design is for single-speaker videos and "Can only be used on single-scene projects". Sume's limits are numeric: 1 to 200 slots, 1 to 1800 s. Check length and cost first with the unbilled /plan.
| Step | Who does it | Sume route |
|---|---|---|
| Split script into scenes | Your code or agent | None in these docs |
| Narration on the spine | You supply audio | audio.url |
| One slot per scene | You declare start and duration | timeline-1.0 render |
| Preview cost | Sume, unbilled | timeline-1.0 plan |
Sources
Related posts
More in Developers
- Search footage for a spoken phrase with an API: words with timing
DaVinci Resolve 21 lists IntelliSearch. To find a spoken phrase in a clip by API, transcribe with video inspect and search words[] in your own code.
- Create vs read rate limits: Managed Agents 300/1,200, Sume plans
Anthropic's Managed Agents limit creates and reads separately. Sume splits its per-minute budget the same way by plan, so polling cannot starve submits.
- Submitting 20 avatar videos at once: what each Sume plan accepts
Sume accepts as many paid jobs as concurrency plus queue allows: 6 on Free, 24 on Pro, 48 on Startup, 120 on Scale. Past that a submit returns 429 queue_full.
- Which model does Sume Agent Completions run? Only sume-agent
The model field on POST /v1/agent/completions accepts only sume-agent. Omit it for the same agent; any other value returns 400 invalid_request.
Written by Sume