Is my Short silent? Check has_audio before detach or captions
Video inspect with frames off returns probe.has_audio. Check it before audio detach or speech captions, which refuse a clip with no audio track.

Run video inspect with frames: false and read probe.has_audio. If it is false, skip audio detach and speech captions and use caption cues instead. The Sume docs say a frames: false inspect is enough to learn this.
Which refusals you avoid
Silent b-roll Shorts are common. Sending one to the wrong tool wastes a request, and each tool refuses with a specific code.
| Call | Error code |
|---|---|
| POST /v1/audio-detach | detach_source_has_no_audio |
| POST /v1/video-inspect with transcribe: true | inspect_source_has_no_audio |
| POST /v1/video-captions from speech | caption_no_speech |
The check
Import the clip to media.sume.com first; inspect does not fetch from the open internet. Then send the clip with no frames and no transcript. The result carries a probe with duration, size, fps, codecs and has_audio.
curl -X POST https://api.sume.com/v1/video-inspect \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: inspect-broll-01" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/broll.mp4",
"frames": false
}'Branch on the answer
If has_audio is true, detach it ($0.01) or caption it from speech ($0.20 flat for clips up to 60 seconds). If false, send authored text with cues and your own start and end times. Cues burn exactly your text, so no speech recognition runs.
Cost
Inspect without a transcript is read-only, and the Sume docs describe it as free apart from worker compute. Only transcribe: true bills the speech-to-text rate of $0.01 per audio minute.
Series habit
Keep the probe result with the episode notes. For a series, a quick run on every episode catches a file exported without its audio track before you promise captions.
Sources
Related posts
More in Media tools
- Kling 3.0 Element Binding: a face close-up, and one still on Sume
Kling says 3.0 Motion Control wants a clear facial close-up for Element Binding. Sume's route takes one still or a ready avatar. What that means for faces.
- Kling motion control: 3 s minimum on Kling, 1 s field on Sume
Kling says action videos run 3 to 30 seconds. Sume's duration_seconds accepts 1 to 30. Why to keep the reference at 3 seconds or more, and what it costs.
- Kling motion control still: 340 to 3,850 px edges, checked first
Kling's motion control guide sets a 340 px short edge and a 3,850 px long edge for the still. Check both in Python before a Sume job reserves money.
- Meta wants a fixed frame rate: set Timeline output.fps when clips mix
Meta's Facebook feed page requires a fixed frame rate. Sume Timeline takes output.fps 24, 25, 30 or 60, and mixed-rate sources are resampled with judder.
Written by Sume