Wan 3.0 result URLs expire in 24 hours at Alibaba; fetch from Sume
Alibaba says a Wan3.0 result URL is valid for 24 hours. On Sume you download the finished video through the content endpoint with a Bearer key.

Alibaba Cloud's Wan3.0 guide says the result URL is valid for 24 hours, so you have to download the file in that window (read 2026-10-04). If your pipeline calls Wan 3.0 directly, a late download means a re-run and a second charge.
Through Sume you do not hold the vendor URL. A finished job exposes its video at GET /v1/videos/{jobId}/content?index=0, and you send your Bearer key to read it, per the video generation docs. This post does not claim how long Sume keeps the file, because the docs do not put a number on it here. Download what you need as soon as the job is done and store it yourself.
Download on completion
import os
import requests
job_id = os.environ["JOB_ID"]
url = f"https://api.sume.com/v1/videos/{job_id}/content?index=0"
r = requests.get(
url,
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
stream=True,
)
r.raise_for_status()
with open(f"{job_id}.mp4", "wb") as f:
for chunk in r.iter_content(1 << 20):
f.write(chunk)
print("saved", job_id)A safer pipeline
Cost is unaffected by the download, so retrying a fetch is free. A failed job is the case to watch instead; check the job status before you assume a clip exists.
- Pass a
callback_urlon submit if you want a push when the job finishes, and download in that handler. - Save the MP4 to your own storage on first read.
- To edit it further, import it to
media.sume.comand use Timeline or Video trim, which only accept Sume-hosted URLs.
Sources
Related posts
More in Developers
- Wan 3.0 duration -1 is Alibaba's smart length; Sume wants 2 to 30 s
Alibaba's Wan3.0 guide lets duration be -1 for smart length. Sume's wan-3.0 takes whole seconds from 2 to 30, so send a number and know the cost.
- Fetch tool to media input: which URLs Sume accepts
A model can fetch a page, but Sume media inputs must be public HTTPS image or video URLs, not web pages. Here is what each Sume endpoint accepts.
- A Sume webhook arrives before your database knows the job: park it
If job.completed lands before your submit handler stored the job id, keep the verified event in a parked table, answer 2xx, and reconcile when the id is saved.
- What a media MCP server should declare at server/discover
MCP 2026-07-28 adds a required server/discover call. A media server has more to say than versions: async jobs, wait limits, scopes. Where Sume documents each.
Written by Sume