Avatar package soundtrack failed: what soundtrack_audio_* means
A package.soundtrack.audio_url that fails does not fail the video. Read package.soundtrack.public_reason: url_blocked, too_large, not_audio or download_failed.
When your own soundtrack file does not make it into an Avatar Video package, the video is not lost. The package soft-fails: video_url stays the furthest successful file (captioned if captions finished, otherwise the clean talking head), and package.soundtrack.status reads failed with a typed public_reason. For a bring-your-own audio_url, the reasons are soundtrack_audio_url_blocked, soundtrack_audio_too_large, soundtrack_audio_not_audio and soundtrack_audio_download_failed.
Where do I read the reason?
On the finished avatar video, package has three parts: captions, soundtrack and mux. Each has a status of skipped, pending, ready or failed, and a failed one carries public_reason. While the soundtrack is pending, the audio_url you sent is echoed back so you can confirm what was requested. After a successful prep it becomes the mirrored copy Sume stores.
When the soundtrack could not be prepared, package.mux usually fails too, often with soundtrack_unavailable, because there is nothing to duck under the voice. Read the soundtrack block first; the mux code is the consequence.
What does each soundtrack_audio_* code mean?
Sume does not hand your URL to a generic downloader. The worker fetches it through a public-media fetch that resolves the host, requires every address to be public, pins the connection to those addresses and checks every redirect hop. The codes below come from that path.
| public_reason | What happened | Retried? | Fix |
|---|---|---|---|
| soundtrack_audio_url_blocked | The URL, or a redirect it followed, is not public HTTPS (private address, plain http, explicit non-default port) | No | Host the file at a public https URL on the default port |
| soundtrack_audio_too_large | The body passed the fetch size cap | No | Send a shorter or smaller file |
| soundtrack_audio_not_audio | The server answered with a content type that is not audio or video | No | Serve the file with an audio/* type |
| soundtrack_audio_download_failed | The host answered with an error status | Only for statuses treated as transient | Make the file reachable without login or expiry |
Which content types are accepted?
A response typed audio/ or video/ passes, and so does an empty type or application/octet-stream. Anything else, such as text/html, is refused as soundtrack_audio_not_audio. That second case is the usual cause: a share link or sign-in page returns an HTML page with a 200 status, and the player in your browser hides the problem.
The accepted file is re-hosted on Sume's media domain and mixed at the package volume, which is 0.15 unless you set another value between 0.05 and 0.4.
Should I retry or fix the URL?
Three of the four codes are terminal: the same URL will fail the same way, so resubmitting unchanged only repeats the work. Fix the URL first. The download code is the one the worker itself retries when the host answered with a transient status, so it only reaches you after that.
If you would rather not host a file at all, ask for a generated bed with soundtrack.prompt instead of audio_url. Send exactly one of the two.
- Open the URL in a private window: if you are asked to sign in, so is Sume.
- Check the response with
curl -sIL <url>and read the final content-type. - Avoid links that redirect to an internal or http host.
- Keep the file short enough for the video it sits under.
Sources
Related posts
More in Sume Avatar 1.0
- Do [pause] tags and dashes in an avatar script cost extra seconds?
Sume Avatar 1.0 counts every space-separated token as a word, so [pause] tags and lone dashes add planned seconds. See the math and the silence-scene fix.
- HeyGen Voice is free in the API: what a talking video costs
HeyGen Voice launched Oct 9 as free in the platform and API. A voice model is one part of a talking video; see Sume's per-second render prices by tier.
- Is my Sume avatar ready? Check resource_status and preview_video_url
Read a Sume Avatar 1.0 resource before your first talking video: resource_status, preview_image_url, nullable preview_video_url, voice.status, handle filter.
- UGC avatar scene prompt: why dim, glary lighting words are kept
Sume's first-frame step copies lighting words from your scene prompt as written, so ordinary light like TV glow or a side window stays. How to write it.
Written by Sume