Start a video's audio 45 seconds into a song: audio.source_in
Timeline 1.0's audio.source_in sets the in-point into a single audio spine. Output length stays duration_seconds, and it is illegal with parts or silence mode.

Set audio.source_in in the Timeline 1.0 render to start the audio spine that many seconds into the file. Output length is still audio.duration_seconds, so a 45-second in-point with 24 seconds of duration plays seconds 45 to 69 of the song.
Where is it legal?
The Timeline docs give one rule per case.
| Setup | Result |
|---|---|
Single audio.url plus source_in | Allowed; in-point into the spine |
audio.parts[] plus source_in | audio_source_in_requires_single_spine |
audio.mode: "silence" plus source_in | silent_audio_takes_no_source_in (family of silent_audio_takes_*) |
Both url and parts | audio_url_and_parts_exclusive |
What does a render look like?
Video slots start on the spine at 0 and later starts must increase. video[0].start must be 0. The spine here is a Sume-hosted song file.
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: timeline-source-in-001" \
-d '{
"audio": {
"url": "https://media.sume.com/artifacts/artf_demo/song.wav",
"duration_seconds": 24,
"source_in": 45
},
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4", "start": 0, "duration": 24 }
]
}'What if I want the middle as a reusable file?
Cut it once with timeline audio: a split range such as { "start": 45, "end": 69 } returns its own audio_url, at $0.01 per job. Use that URL as audio.url when several renders share the same excerpt.
Can the soundtrack bed use source_in?
The docs list soundtrack fields as url, gain_db, loop, fade_out_seconds and duck_db; source_in is not among them. Use a pre-cut file for a bed.
How does the job run?
Timeline jobs default to mode: "async". Pass mode: "sync" to wait up to 30 seconds for a 200 finished job, or you get 202 and poll GET /v1/jobs/:id/status and GET /v1/jobs/:id/result; there is no separate GET for the audio or render job. Idempotency-Key is required on the render and audio jobs, and every URL must already be this workspace's media.sume.com audio or video. A render is $0.10 per ceil(output minute), so 24 seconds bills one minute.
Hosted MCP has timeline_audio and timeline_create; the flow is the tool, then jobs_wait, then the result tool. Details are in the Timeline audio docs and Timeline 1.0 docs.
Sources
Related posts
More in Media tools
- Timeline audio segments: re-base video start times after concat
After a concat, use segments[] (index, start, duration_seconds) as the on-spine start of each video slot in Timeline 1.0. Declared starts are authoritative.
- How to assemble a long-form video with the Timeline 1.0 API
Timeline 1.0 renders one audio spine plus 1 to 200 ordered video slots into one MP4. Every URL must be Sume-hosted; the plan preflight is unbilled.
- How to burn captions onto a video with the Sume API
Send a public HTTPS video URL to POST /v1/video-captions and get a job-backed captioned video, timed by speech-to-text or by text you supply.
- How to extract frames from a video with the Sume API
POST /v1/video-frames returns stills at the times you name from one Sume-hosted clip, as durable images at source size. The call is unbilled.
Written by Sume