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
- 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.
- Why a 2-minute YouTube upload is or is not a Short in 2026
YouTube treats square or vertical uploads up to three minutes as Shorts if posted on or after October 15, 2024. What to check, and how to render one in Sume.
- 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