Extract audio from a 30-minute video: the 900-second cap

Audio detach accepts a source up to 1800 seconds but returns at most 900 seconds of audio per job. Use range to split a 30-minute video into two detaches.

4 min readSume
All posts

Audio detach reads a video of up to 1800 seconds but returns at most 900 seconds of audio per job, so a 30-minute source needs a range. Send two jobs, { "start": 0, "end": 900 } and { "start": 900 }, then join or split later with timeline audio.

What are the caps?

From the Audio detach docs:

Audio detach length limits and their errors, from the Sume docs read 2026-09-30.
CaseResult
Source up to 1800 sAccepted
Source longer than 1800 ssource_duration_exceeded (worker)
Whole track past 900 s, no rangeNeeds a range
range longer than 900 s, or end <= startaudio_detach_range_empty
range.start past the sourcedetach_start_past_source (worker)

How do I split it into two detaches?

Each job needs its own Idempotency-Key. range.end is open-ended when omitted, so the second job runs to the end of the video. The default output is wav (pcm_s16le), sample-exact.

curl -X POST https://api.sume.com/v1/audio-detach \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: detach-part-1" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
    "range": { "start": 0, "end": 900 }
  }'

# second job: same body with "start": 900 and a new key

What if the video is over 1800 seconds?

Detach cannot read it (source_duration_exceeded). Cut the video first with Video trim, described in trim, filter and detach, then detach each piece. Probe the source length first with video inspect.

How does the job run?

Audio detach defaults 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 GET /v1/audio-detach/:id. Idempotency-Key is required. The result is kind: audio_detach with audio_url, duration_seconds, format, channels and sample_rate; sample_rate is null when you omitted it and the source rate was inherited. For two ranges, submit two jobs and read both audio_url values.

Detach is not clip inspection. For probing, stills or transcripts use video inspect; for a new MP4 cut use video trim, described in the Audio detach docs.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume