unsupported_media_source: why the media API rejects your video URL

unsupported_media_source means video_url is not on the Sume media host. Import the clip first; which Sume video endpoints need a hosted URL and which don't.

4 min readSume
All posts

unsupported_media_source means the video_url you sent is not on Sume's media host. The trim, filter, audio detach, frames and inspect endpoints read only a media.sume.com artifact or asset in your workspace; they never fetch an arbitrary web URL. Import the clip first, then use the URL the import gives you.

The rule and the error list below come from the Video trim and Video inspect docs, read 2026-09-29.

Which endpoints need a hosted URL?

Not every video endpoint has the rule. Captions and face swap take a public HTTPS URL instead, per the Media inputs page.

Where each media endpoint reads its video from, per the Sume docs, read 2026-09-29.
Endpoint`video_url` must be
/v1/video-trimA workspace media.sume.com clip
/v1/video-filterA workspace media.sume.com clip
/v1/audio-detachA workspace media.sume.com clip
/v1/video-framesA workspace media.sume.com clip
/v1/video-inspectA workspace media.sume.com clip
/v1/video-captionsA fetchable public HTTPS URL
Avatar face swap (Beta)A fetchable public HTTPS URL

How do I get the clip onto the media host?

Import it with POST /v1/media-imports; over MCP the tool is media-imports_create, with media-imports_get to read the result. The docs name this call as the way to bring a clip in before trim, filter, detach, frames or inspect. Read the request fields from the live OpenAPI at api.sume.com/reference, since they are not repeated in these pages.

A clip Sume generated is already on media.sume.com, so its result URL works directly.

What are the neighboring errors?

Two other codes look alike and mean different things.

  • source_not_found: the URL is on the media host but dead, or belongs to another workspace.
  • unsupported_media_type: the HEAD check says the file is not a video.
  • ffmpeg_fields_rejected: you sent vf, filter, ffmpeg, cmd, codec or similar; the server builds the ffmpeg command itself.

Does the check happen before I am billed?

The docs say off-host URLs are rejected at admit, that is when the request is accepted, so the rejection comes before a job runs. Other failures, such as a source longer than the limit, are raised by the worker after admit.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume