Silent b-roll Short: Timeline audio.mode silence, 179 s for $0.30
Render a silent vertical Short with Timeline 1.0 audio.mode silence: 179 s bills 3 minutes ($0.30), and four refusal codes say which field to drop.

To render a Short with no spine file, send audio: { mode: "silence", duration_seconds: 179 } to Timeline 1.0. The render bills ceil(179 / 60) = 3 minutes at $0.10, so $0.30. In silence mode you must not send url, parts, gain_db or source_in, or the API refuses the request. YouTube allows a Short of up to three minutes (page read 2026-10-08), so 179 seconds stays inside the limit.
The request
audio.duration_seconds is required and takes 1-1800 seconds. video[] takes 1-200 slots, every source_url must be a Sume-hosted file, and Idempotency-Key is required. The default output is 1080x1920.
{
"audio": { "mode": "silence", "duration_seconds": 179 },
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/a.mp4", "start": 0, "duration": 90 },
{ "source_url": "https://media.sume.com/artifacts/artf_demo/b.mp4", "start": 90, "duration": 89,
"transition": { "type": "fade", "duration": 0.5 } }
]
}Refusals in silence mode
Each refusal has a stable code (read 2026-10-08 on the Timeline page). A fifth rule is separate: soundtrack.duck_db needs a real spine, so it returns duck_requires_audio_spine in silence mode.
| Code | What triggers it | Fix |
|---|---|---|
| silent_audio_takes_no_url | audio.url with silence | Remove url |
| silent_audio_takes_no_parts | audio.parts[] with silence | Remove parts |
| silent_audio_takes_no_gain | gain_db with silence | Remove gain_db |
| silent_audio_takes_no_source_in | source_in with silence | Remove source_in |
What the render costs by length
Silence mode changes nothing in the price. The reserve is ceil(audio.duration_seconds / 60) minutes at $0.10, and the job uses no provider inference, only worker ffmpeg. The lengths that matter for Shorts are below. YouTube counts a Short over one minute differently for Content ID (a claim on a Short of more than one minute blocks it globally, per the page read 2026-10-08), which is one reason to look at the 60-second line.
| Declared length | Ceil minutes | Cost | Note |
|---|---|---|---|
| 30 s | 1 | $0.10 | Short, any claim rule aside |
| 60 s | 1 | $0.10 | Last second that stays at one minute |
| 61 s | 2 | $0.20 | Over one minute |
| 120 s | 2 | $0.20 | Mid-length Short |
| 179 s | 3 | $0.30 | One second under the three-minute limit |
When silence is the right spine
Use silence when the sound will come from somewhere else: a library song added in YouTube, a track you license separately, or no sound at all, as in a looping product visual. Use a real spine when you have a voice-over or a generated voice, because the spine decides the output length and the slots follow it. If you need a voice for only part of the Short, audio.parts[] joins up to 20 gapless slices inside the render, and declared silence is not mixed with them in the same request. Pick one spine type for each render.
Silence also helps to price an idea. A silent plan of 179 seconds with 40 slots returns billable_minutes: 3 from the unbilled plan route without a job or a credit reservation. You then know the render part of the budget is $0.30, and the rest of the money is generation.
Coverage and the end of the spine
The last slot may stop at most 0.5 seconds before the end of the spine. In the example, the slots cover 0-90 and 90-179, so they reach the end exactly. If you declare 179 seconds and the last slot ends at 177, the gap is 2 seconds and the request fails. Keep the end of the last slot within 0.5 seconds of duration_seconds.
- Silence is for b-roll, loops and pictures to which you add sound after upload.
- A soundtrack bed works in silence mode, but
duck_dbdoes not. - Plan first:
POST /v1/timeline-1.0/planis unbilled.
Sources
Related posts
More in Developers
- 60 video jobs in Node with a promise pool: which plans need waves
A Node promise pool for Sume video jobs, plus the fit table: 60 jobs against accepted capacity on Free, Pro, Startup and Scale, and how many waves each needs.
- Smallest square GPT Image 2.5 accepts on Sume: 816x816
A small icon request fails at 800x800 on GPT Image 2.5: under 655,360 pixels. 810x810 fails the 16 rule. 816x816 is the smallest legal square.
- sonic-latest or sonic-3-6: which Sume TTS id for repeatable narration
Pin sonic-3.6 when a series must sound the same; sonic-latest is an alias that tracks the current stable Sonic. Avoid sonic-preview with pro voice clones.
- Sora API removed 2026-09-24: point a /v1/videos client at Sume
OpenAI lists the Videos API and sora-2 as removed on 2026-09-24, no replacement. A client written to the OpenRouter video guide changes three values for Sume.
Written by Sume