AI Dubbing
Automatically dub audio and video content into 100+ languages while preserving the original voice.
Overview
The AI Dubbing API translates and re-voices audio and video content, maintaining the speaker's original voice characteristics across languages. It supports automatic speaker detection, lip-sync adjustment for video, and quality scoring for every output.
Quickstart
Dub an audio file into a new language in just a few lines of code.
Create Dubbing Job
/v1/dubbing/createSubmit an audio or video file for dubbing into one or more target languages. You can provide either a file upload or a public URL to the source media.
| Parameter | Type | Description |
|---|---|---|
| source_url | string | Public URL of the audio or video file to dub. |
| file | file | Audio or video file upload. Provide either file or source_url. |
| source_languageREQUIRED | string | ISO 639-1 language code of the source content. |
| target_languagesREQUIRED | string[] | Array of ISO 639-1 language codes for the dubbed outputs. |
| preserve_voice | boolean | Whether to clone the speaker's voice for dubbed output. Default: true. |
| lip_sync | boolean | Enable lip-sync adjustment for video files. Default: false. |
Response
Get Dubbing Job
/v1/dubbing/{job_id}Retrieve the status and results of a dubbing job. Once the status is completed, the response includes download URLs for each target language.
| Parameter | Type | Description |
|---|---|---|
| job_idREQUIRED | string | The unique identifier of the dubbing job. |
Response
List Supported Languages
/v1/dubbing/languagesRetrieve the full list of supported source and target languages for dubbing. No parameters are required.
Response
Response Objects
Reference for the objects returned by the AI Dubbing endpoints.
DubbingJob (Create)
| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier for the dubbing job. |
| status | string | One of: pending, processing, completed, failed. |
| source_language | string | ISO 639-1 code of the source language. |
| target_languages | string[] | Array of target language codes. |
| created_at | string | ISO 8601 timestamp of job creation. |
| estimated_completion | string | ISO 8601 timestamp of estimated completion. |
DubbingJob (Get - Completed)
| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier for the dubbing job. |
| status | string | One of: pending, processing, completed, failed. |
| outputs | object | Map of language code to { download_url } for each target. |
| duration | number | Duration of the source media in seconds. |
| quality_scores | object | Map of language code to quality score (0.0 - 1.0). |
Best Practices
Use high-quality source audio
Clean source audio with minimal background noise produces significantly better dubbing results. Consider denoising with the Audio Tools API first.
Batch related languages together
Submit all target languages in a single request rather than creating separate jobs. This reduces processing time and ensures consistent voice cloning across outputs.
Check quality scores before publishing
The quality_scores field indicates how natural each dubbed output sounds. Scores below 0.85 may benefit from re-processing or manual review.
Use webhooks for long-running jobs
Instead of polling, configure a webhook URL in your dashboard to receive notifications when dubbing jobs complete. This is more efficient for production workflows.