D-ID translation result URL: valid 24 hours, then re-fetch
D-ID's translation result_url is valid for 24 hours, so store the file or re-fetch it. Sume media.sume.com URLs do not expire. What to save and when.

D-ID's Video Translate page says the result_url for a finished translation is valid for 24 hours, and tells you to store the video or re-fetch the translation to get a fresh URL. Sume works the other way round: generated media is served from durable media.sume.com URLs that the docs say do not expire.
D-ID facts are from its quickstart; Sume facts from Runs and Jobs and results, read 2026-10-01.
How does the D-ID translation flow end?
You POST /translations with a source_url and a list of languages. Each language becomes its own translation with its own id. You poll each one until status is done; the page says this typically takes 1-5 minutes depending on video length. The done response carries result_url, a direct link to that language's video. That link is the one with the 24-hour limit.
What is the difference in URL lifetime?
| Question | D-ID translation | Sume |
|---|---|---|
| How long is the link good? | 24 hours | Durable media.sume.com URLs; the docs say they do not expire |
| What if it lapses? | Re-fetch the translation for a fresh URL | Nothing to refresh; expires_at is null on durable URLs |
| Who can open the link? | Not stated on the page | Anyone holding the URL (public) |
How does a Sume job hand you the file?
The default mode is async: you get a 202 with the job envelope and polling URLs, poll status_url until terminal is true, then GET result_url once result_ready is true. A webhook is optional and terminal-only (job.completed, job.failed, job.canceled), so keep polling as a backup. The artifact URL you read back is the durable one, so you can store it against your own record and render it later.
Do I still need to copy the file?
Only for access control. The Runs page notes the URLs are public to anyone holding them, so if your product needs per-customer access, proxy or copy the file into your own storage. For D-ID, plan the copy inside the 24-hour window; see also do Sume video URLs expire for the Sume side.
What should my pipeline do?
If a step downstream is slow or batched, do not carry a time-limited link through it. With D-ID, download at done time. With Sume, save the job id and the media.sume.com URL, and read expires_at anyway: it is only populated when a signed URL is returned, so a non-null value is your cue to copy.
Sources
Related posts
More in Developers
- Deepgram Aura-2 allows 2,000 characters per request; Sume 20,000
Deepgram answers 413 when Aura text passes 2,000 characters. Sume TTS 1.0 accepts 1 to 20,000 characters per request, with a separate 1,200-second audio cap.
- Deepgram Aura-2 languages: seven, and how Sume TTS sets a language
Deepgram lists English, Spanish, German, French, Dutch, Italian and Japanese for Aura. Sume TTS takes a language field per request, matched to the voice.
- Deepgram Flux numerals toggle vs Sume STT digits
Deepgram Flux can switch numerals on mid-stream for PINs and phone numbers. Sume STT is a batch job with fixed provider settings and no numerals flag.
- Flux TTS CONTROL_COMBINATION_INVALID and the 1.15 pause speed cap
Deepgram Flux TTS rejects some control combinations and caps speed at 1.15 with a pause. The error codes, the rules, and Sume's 0.6 to 1.5 speed range.
Written by Sume