Submit a dubbing job
Changed onStart an asynchronous job that translates the speech in a video into another language, clones each speaker's voice to say the translation, and lip-syncs their faces to it. Returns the dubbed video.
Inputs
- video_url — public URL of the video to dub, up to 10 minutes
- target_language — the language to dub into, as a BCP 47 tag such as es. This variant has no dialects: a regional tag such as fr-CA is dubbed as its base language
- source_language — optional; the language spoken in the video. Omit it, or send auto, to detect it
Languages
af, ar, as, ast, az, be, bg, bn, bs, ca, ceb, cs, cy, da, de, el, en, es, et, fa, fi, fil, fr, ga, gl, gu, ha, he, hi, hr, hu, hy, id, is, it, ja, jv, ka, kk, kn, ko, ky, lb, ln, lt, lv, mi, mk, ml, mn, mr, ms, mt, my, ne, nl, no, ny, oc, or, pa, pl, ps, pt, ro, ru, sd, sk, sl, so, sr, sv, sw, ta, te, tg, th, tl, tr, uk, ur, uz, vi, yo, yue, zh
What happens next
The job is accepted immediately — you get 202 Accepted with a job_id and status PROCESSING. Poll GET /v1/dubbing/{job_id} until the job is COMPLETED or FAILED.
Request
- Base URLhttps://api.veed.io
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Headers
Set to 0 to not store this request's and response's bodies. They are then not available in your request logs for debugging.
Number of seconds before the media URLs returned for this request expire. A value above the maximum is capped rather than rejected.
Request body
Example request
{
"$schema": "https://api.veed.io/schemas/DubbingInput.json",
"source_language": "fr",
"target_language": "en",
"video_url": "https://static-assets.veed.io/api-examples/dubbing-input.mp4"
}Response
Accepted
Example response
{
"$schema": "https://api.veed.io/schemas/ResourceDubbingJob.json",
"data": {
"result": {
"video": {
"content_type": "video/mp4"
}
}
}
}Changes
- info
endpoint added
- info