reference-ingest source_no_video_stream: audio-only file as input
source_no_video_stream means the reference file has no video track, such as an m4a. Send a clip with picture, or use audio detach to work with the sound.

source_no_video_stream is a Sume reference-ingest error. It means the media.sume.com file you passed as video_url has no video stream, as with an audio-only upload or a track exported without picture. Reference ingest reads shots, on-screen text and audio from a clip, so there is nothing to ingest. Send a file with picture. If you only needed the sound, use audio detach on a video, or work from the audio file directly.
Reference ingest is dest first: the docs say Sume lists POST /v1/reference-ingest and the tool reference_ingest only where SUME_COM_REFERENCE_INGEST_ENABLED permits them, with development auto-on and production opt-in. So a 404 or a missing tool on one environment may be the flag, not your request.
Where this shows up
The usual trigger is a pipeline that saves a competitor's trending sound and a clip with the same name, and passes the wrong one. A YouTube Short is vertical or square video of up to 3 minutes (YouTube Help, read 2026-10-05), well under the 300 second ceiling of the ingest, so a real Short passes the length check; the file type is what fails.
| Code | Meaning | Typical fix |
|---|---|---|
| source_no_video_stream | the file has no video stream | send a clip with picture |
| source_too_long_for_reference_ingest | longer than 300 s | use video inspect |
| reference_ingest_unavailable | runtime lacks the function | use video inspect |
| reference_ingest_stt_required | STT-only fields without a transcribing read | drop the field or allow STT |
| source_not_found | dead URL or another workspace | import the file again |
A defensive probe first
Before ingest, a probe-only video inspect call (frames: false) returns the file facts, including probe.has_audio. Use it to separate a bad file from a bad request. If the probe shows no picture, stop before you pay for an ingest. The ingest itself bills by its Modal compute, with a reserved ceiling that settles to what ran, so check the file before you submit.
{
"video_url": "https://media.sume.com/artifacts/artf_demo/reference.mp4",
"purpose": "reference_remix"
}What to do with an audio-only reference
If the reference really is a sound, the question is different: what is the music like. Then describe the sound in a prompt for Music Router, which takes a prompt of 1 to 5000 characters and an optional image, and does not accept a duration field. If it is a video with its picture removed by mistake, find the original and import that one.
Limits
The error is about the file, not the account or the plan. The docs also state that a read on a clip longer than 300 seconds is refused with a different code, so split those cases in code. Reference ingest never re-encodes the source and does not produce an MP4; it is read-only.
Sources
Related posts
More in Media tools
- reference_ingest_stt_required: speech.language_code without STT
speech.language_code and duration_seconds only apply when the read transcribes. Set speech.allow_billed_stt true, use reference_remix, or drop them.
- Reference ingest text_tracks is not caption coverage: 5 sampled frames
text_tracks come from OCR on deduplicated frame states, at most five frames, not every caption. To know if a Short is captioned, check frames yourself.
- Reframe 16:9 to 9:16: crop fractions for left, center, right
A 16:9 to 9:16 crop is a width of 0.3164 of the frame. Use x 0, 0.3418 or 0.6836 for a left, centered or right subject in Sume video filter.
- Restaurant menu video music: a 30-second brief and cost
What to ask Lyria for under a 30-second restaurant menu video: tempo, instruments, a clean ending and the $0.225 audio cost on Sume with a Timeline render.
Written by Sume