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.

4 min readSume
All posts

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.

audio.source_in rules on Timeline 1.0, from the Sume docs read 2026-09-30.
SetupResult
Single audio.url plus source_inAllowed; in-point into the spine
audio.parts[] plus source_inaudio_source_in_requires_single_spine
audio.mode: "silence" plus source_insilent_audio_takes_no_source_in (family of silent_audio_takes_*)
Both url and partsaudio_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

All Media tools posts

Written by Sume