Render a silent video from clips with the Timeline API
Set audio.mode to silence and a duration_seconds on POST /v1/timeline-1.0/render to join clips with no audio file. Which fields are illegal there, and pricing.

To render clips into one video with no audio file, set audio.mode to "silence" and give audio.duration_seconds on POST /v1/timeline-1.0/render. The docs define silence as a declared length with no spine file, so the output is exactly that many seconds (1 to 1800) and you then place the video[] slots on that timeline.
Everything below is from the Timeline 1.0 docs, read 2026-09-29.
What does the request look like?
In silence mode do not send url, parts, gain_db or source_in inside audio. Each is refused with a silent_audio_takes_no_... code.
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: silent-render-001" \
-d '{
"audio": { "mode": "silence", "duration_seconds": 12 },
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/a.mp4", "start": 0, "duration": 6 },
{ "source_url": "https://media.sume.com/artifacts/artf_demo/b.mp4", "start": 6, "duration": 6,
"transition": { "type": "fade", "duration": 0.25 } }
]
}'What is not allowed with silence?
| Field | In silence mode |
|---|---|
audio.url, audio.parts | Refused (silent_audio_takes_no_url, silent_audio_takes_no_parts) |
audio.gain_db, audio.source_in | Refused |
soundtrack.duck_db | Refused (duck_requires_audio_spine) |
soundtrack without duck | Not excluded by the docs, so a music bed is possible |
How do the slots have to line up?
video[0].start must be 0 and later starts must increase. Each slot's duration is at least 0.2 seconds, and coverage may trail the declared length by at most 0.5 seconds. Transitions go on slots after the first: fade, wipeleft, wiperight, slideup, slidedown or dissolve.
What does it cost?
$0.10 per output minute, reserved as ceil(audio.duration_seconds / 60) minutes, so the 12 second render above reserves one minute. POST /v1/timeline-1.0/plan returns the billable minutes and estimate without creating a job.
Which refusals should I expect?
audio_url_required: nourlorpartsand not silence.audio_url_and_parts_exclusive: bothurlandpartssent.invalid_segment_timingorsegment_overlap: starts not increasing, or overlapping past the transition.unsupported_media_sourceorsource_not_found: a clip URL is off-host or dead.
Sources
Related posts
More in Developers
- Timeline error too_many_chained_transitions: how to fix it
Timeline 1.0 refuses more than 8 adjacent fades with too_many_chained_transitions. Insert a hard cut. Also transition_too_long, transition_not_frame_aligned.
- Render a vertical 1080x1920 video from clips with an API
Timeline 1.0 defaults to a 1080x1920 MP4. Set output width, height and fps, and pick fit cover, contain, stretch or blur for clips that do not match the frame.
- Text to speech long text limit: 1,200 seconds, not just characters
Sume TTS 1.0 has two limits: 20,000 characters in, 1,200 seconds of audio out. Over the audio limit it fails with tts_duration_exceeded and captures no credit.
- Text to speech sentence timestamps API: one lip-sync clip each
Sume TTS 1.0 returns gapless sentence segments; with wav output each gets its own audio_url, ready to drive a lip-sync clip. Request shape and the 5 s catch.
Written by Sume