API REFERENCE · DUBBING

Outputs & subtitles

One output per language: the finished mp4, its subtitles in srt or vtt, its audio as the full mix or the voice track alone, and the translated title + description alongside.

01.Download an output

GET/v1/dubs/{dub_id}/output/{lang}
curl -L https://api.thefamiliarlab.com/v1/dubs/dub_31xk9m/output/es \
  -H "Authorization: Bearer $FAMILIAR_API_KEY" \
  -o dubbed-es.mp4

Redirects (302) to a signed URL for the finished video -- follow it with -Lor your HTTP client's redirect option. Signed URLs expire after one hour; re-request rather than storing them. Downloading a language that isn't complete yet returns 409; the dub.output_ready webhook fires per language the moment it lands (Webhooks).

TABLE 01 · QUERY PARAMETERS
PARAMTYPEDESCRIPTION
formatstringDefault mp4 (the finished video). srt · vtt return that language's subtitles; audio the full audio mix (m4a); voice the dubbed voice track alone (wav).

02.Subtitles

GET/v1/dubs/{dub_id}/output/{lang}?format=srt
200 · TEXT/SRT
1
00:00:12,480 --> 00:00:15,910
Ese es todo el truco.

Free on every dub, including subtitles_only jobs. Subtitle text comes from the review step, so a subtitle job always pauses at in_review before its files exist -- Transcript & review. Source-language subtitles ride the same route with the source's code.

03.Audio tracks

GET/v1/dubs/{dub_id}/output/{lang}?format=audio
curl -L "https://api.thefamiliarlab.com/v1/dubs/dub_31xk9m/output/es?format=voice" \
  -H "Authorization: Bearer $FAMILIAR_API_KEY" \
  -o dubbed-es.voice.wav

Two tracks per language, each the same 302 signed-URL redirect as the video. audio is the finished mix exactly as it sits in the mp4 -- for platforms that accept additional audio tracks (YouTube multi-language audio) and audio-only distribution. voice is the dubbed voice track alone, no scene bed -- take it into your own mix (music and effects rebalance) without touching the dub. Both land with the video: one dub.output_readywebhook covers the language's whole file set.

04.Translated metadata

If the dub was created with metadata.title / metadata.description, every language's output arrives with its own translated pair -- Metadata translation documents the endpoint and what survives translation untouched.

05.Retention

Outputs stay downloadable until you delete the dub (DELETE /v1/dubs/{dub_id}, Delete a dub) -- there is no automatic expiry.

06.Access

The API is enterprise-only: private access under a Studio contract, with volume pricing, raised limits, and a named point of contact for the integration. Book a call and your key is issued with the contract.