Public URL or media.sume.com: which Sume media tool takes which
Sume video trim and timeline accept only media.sume.com URLs from your workspace. Captions and video upscale take a public HTTPS URL. Import first.

Sume video trim and timeline accept only media.sume.com URLs from your own workspace, and captions and video upscale take a public HTTPS URL. Image upscale and background removal are priced below, but their URL rules are not in the docs I read. Sending a public URL to trim returns the refusal unsupported_media_source, and the fix is to import the file first with POST /v1/media-imports.
The input rule by tool
| Tool | Input field | Accepted URL | Price |
|---|---|---|---|
| Video trim | video_url | workspace media.sume.com only | $0.02 per job |
| Timeline render | source_url, audio.url | workspace media.sume.com only | $0.10 per output minute |
| Video captions | video_url | public HTTPS | $0.20 per clip up to 60 s |
| Video upscale | video_url | public HTTPS | $0.009 per input second |
| Image upscale | image_url | see model page | $0.20 per image |
| Background removal | image input | see model page | $0.0225 per image |
Import first, then trim
The URL above is the documented example. Replace it with an artifact from your workspace. The import call that produces such a URL is the one place an outside URL is fetched.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: trim-demo-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
"start": 2,
"duration": 8
}'Why the split exists
A practical chain imports the source once, trims it, and sends the trimmed clip to captions. If the caption step needs a public URL and the trimmed clip's URL is not public, host a copy for that step. Check each tool's page before you automate, because the rules are per tool and a refusal arrives as a typed error code, not a silent failure.
- Trim and timeline read only the Sume media host, so import outside files first.
- Captions and video upscale read the public HTTPS URL you pass.
- A chain mixes both kinds, so plan where each file lives at each step.
Typed refusals to expect
Handle these codes in your client so a bad URL is reported as a typed error.
Also keep the idempotency key stable per file. If an import or a trim is retried with the same key, you get the same job back rather than a second charge, which matters when a chain of five tools retries after a timeout.
| Code | When |
|---|---|
| unsupported_media_source | video_url is not on the Sume media host |
| source_not_found | the media.sume.com URL is dead or from another workspace |
| unsupported_media_type | the HEAD result is not a video |
| source_duration_exceeded | the source is longer than 1800 seconds |
Sources
Related posts
More in Media tools
- Why every AI background track sounds the same: a seven-axis brief
If your AI music all sounds alike, the prompt is probably generic. Sume's Lyria brief has seven axes: emotion, genre, BPM, key, instruments, arc and era.
- Write a YouTube show description from your episode transcripts
YouTube asks you to set a show's details but lists no required fields. Pull transcripts with Sume video inspect at $0.01 a minute and draft from them.
- YouTube Shorts series: pin one caption look for every episode
Shorts series run from 2026-09-23. Omit style and Sume picks one from the text. Pin style, font and design in one config so ten episodes look the same.
- YouTube show banner and backdrop: one has the title, one must not
YouTube wants a 16:9 banner with the show title and a 16:9 backdrop without it. How to make both from one source image with Sume Ideogram 4.5.
Written by Sume