Skip to main content

Starting dubs

POST /dubs turns a completed upload into one dub per language:
The answer lists the dubs that started. Languages that couldn’t start come back in refused with a reason, and the others still start:
Response

Minutes

Dubs are counted in minutes of source media, once per language. Each dub reserves its minutes when it starts. If a dub fails or you cancel it, its minutes are returned. Check what’s left with GET /usage. Test keys use no minutes.

Dubs running at once

Your plan sets how many dubs can be unfinished at the same time: 3 on Creator, 10 on Professional studio and 25 on Ministry & Platform. Past that, new dubs get 429 TOO_MANY_DUBS_RUNNING until some finish. The limit is per account, across all its keys and the Reedapt app.

Following a dub

A dub moves through these statuses. completed and failed are final. While a dub is processing, progress runs from 0 to 100 and stage says what it’s doing. Show stage if you like, but don’t build logic on its values: they may change as we improve the pipeline.
Use webhooks rather than polling. If you poll GET /dubs/{id}, once every 30 seconds is plenty.
A completed dub
A failed dub has an error with a code and a message you can show to people. See Errors for the codes.

Downloading the files

GET /dubs/{id}/files returns links to a completed dub’s files. Each link lasts an hour; ask again for fresh ones. Test dubs return only dub, the watermarked preview.
Dubs and their files are kept for a limited time, as in the Reedapt app. Download what you need to keep. A dub whose files are gone answers 404 FILES_GONE.

Listing and cancelling

  • GET /dubs lists the account’s dubs, newest first. Page with limit (up to 100) and offset; has_more says whether another page follows.
  • POST /dubs/{id}/cancel stops a dub that hasn’t finished and deletes it. Its minutes are returned.