Extract audio from a long video: the 900 s output cap and range
Audio detach takes sources up to 1800 s but outputs at most 900 s. For a longer track pass range and detach in two calls. Errors included.

POST /v1/audio-detach accepts a source up to 1800 s but writes at most 900 s of audio. For a longer video, pass range: { start, end } for each stretch of up to 900 s, so a 25-minute video needs two detach calls.
This is from the Audio detach docs, read 2026-09-30.
What does range do?
range is an optional { start, end? } in seconds. Omit it for the whole track; an omitted end runs to the end of the file. A range whose end is at or before start, or that is longer than 900 s, fails with audio_detach_range_empty. A start past the probed duration fails with detach_start_past_source.
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/long-talk.mp4",
"range": { "start": 0, "end": 900 }
}'Should I detach many times or split once?
For many ranges from one talking-head MP4, the docs say detach once, then split the file with POST /v1/timeline-1.0/audio (operation: "split", 1 to 20 ranges). That only works while the track fits in one detach; for a video over 900 s of audio, detach in ranges and split each result.
What else can fail?
A video with no audio track fails detach_source_has_no_audio; check probe.has_audio first with video inspect and frames: false. A source over 1800 s fails source_duration_exceeded. Each detach is $0.01 per job.
| Limit | Value | Error when exceeded |
|---|---|---|
| Source length | 1800 s | source_duration_exceeded |
| Output length | 900 s (longer range refused) | audio_detach_range_empty |
| Range start | Inside the source | detach_start_past_source |
| Price | $0.01 per job | - |
Sources
Related posts
More in Developers
- catalog_list shows a capability that tools_list does not
On Sume's hosted MCP, catalog_list lists public API capabilities and can name ones with no MCP tool. tools_list is the session's real tool contract.
- Reframe a video around the speaker by API: what a crop can do
Descript's Center Active Speaker (Beta) follows whoever talks. Sume's video filter crop is one fixed rectangle per clip, so cut per speaker and crop each part.
- Claude Code list_changed and reconnect: refresh Sume tools
Claude Code refreshes an MCP server's tools on list_changed and lets you reconnect from /mcp. After changing Sume's Write consent, verify with tools_list.
- D1 free-tier limit now fails queries: dedupe Sume webhooks safely
Cloudflare D1 queries on Workers Free now fail past the daily row limits. Dedupe Sume webhooks on request_id, return a 5xx, and use redeliver after the reset.
Written by Sume