🚀 Introducing MARS8 Series — Four Powerful Variants | Available on All Major Clouds | Learn about the model here
🚀 Introducing MARS8 Series — Four Powerful Variants | Available on All Major Clouds | Learn about the model here
Initiate a full end to end dubbing task.
curl --request POST \
--url https://client.camb.ai/apis/dub \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"video_url": "<string>",
"source_language": 1,
"project_name": "<string>",
"project_description": "<string>",
"target_languages": [
1
],
"selected_audio_tracks": null,
"add_output_as_an_audio_track": null,
"chosen_dictionaries": null,
"ai_optimization": true
}
'{
"task_id": "<string>"
}Transform your media content for global audiences with our comprehensive dubbing solution. This powerful endpoint automates the entire dubbing process, taking your original media and producing a version that speaks naturally in your target language. The system handles everything from transcription to voice synthesis, delivering professional-quality results without requiring specialized audio engineering knowledge.Documentation Index
Fetch the complete documentation index at: https://docs.camb.ai/llms.txt
Use this file to discover all available pages before exploring further.
Project Setup
Translation
Voiceover Generation
/dub/{task_id} endpoint with the task_id provided in your initial response.
video_url parameter in your request can point to any of the following:
| Media Type | Supported Formats |
|---|---|
| Video Files | MP4, MOV, MXF |
| Audio Files | MP3, FLAC, WAV, AAC |
/source-languages endpoint for available source language options./target-languages endpoint for supported target languages.import requests
import json
import time
# Your API authentication
headers = {
"x-api-key": "your-api-key", # Replace with your actual API key
"Content-Type": "application/json"
}
# Define your dubbing request parameters
dubbing_request = {
"video_url": "https://www.youtube.com/watch?v=exampleVideo", # Your media URL
"source_language": 1, # Example: English (check /source-languages for IDs)
"target_languages": [5], # Example: Spanish (check /target-languages for IDs)
}
# Submit the dubbing request
def submit_dubbing_task(payload):
"""
Submits a new dubbing task and returns the task ID for tracking.
"""
try:
response = requests.post(
"https://client.camb.ai/apis/dub",
headers=headers,
data=json.dumps(payload)
)
# Verify the request was successful
response.raise_for_status()
# Extract the task ID from the response
result = response.json()
task_id = result.get("task_id")
print(f"Dubbing task submitted successfully! Task ID: {task_id}")
return task_id
except requests.exceptions.RequestException as e:
print(f"Error submitting dubbing task: {e}")
if hasattr(e, 'response') and e.response is not None:
print(f"Response content: {e.response.text}")
return None
# Call the function to submit your dubbing task
task_id = submit_dubbing_task(dubbing_request)
def check_dubbing_status(task_id):
"""
Checks the status of a dubbing task.
Returns the current status and any available result information.
"""
if not task_id:
print("No task ID provided.")
return None
try:
response = requests.get(
f"https://client.camb.ai/apis/dub/{task_id}",
headers=headers
)
# Verify the request was successful
response.raise_for_status()
# Parse the status information
status_data = response.json()
print(f"Current status: {status_data['status']}")
return status_data
except requests.exceptions.RequestException as e:
print(f"Error checking dubbing status: {e}")
return None
# Check the status of your task
status_info = check_dubbing_status(task_id)
The x-api-key is a custom header required for authenticating requests to our API. Include this header in your request with the appropriate API key value to securely access our endpoints. You can find your API key(s) in the 'API' section of our studio website.
The URL of the media file to be used to create the end-to-end dubbing task.
The original language of the media file to be used to create the end-to-end dubbing task.
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 139, 140, 141, 142, 143, 144, 145, 146, 148 Enter a distinctive name for your project that reflects its purpose or content. This name will be displayed in your CAMB.AI workspace dashboard and used to organize related assets, transcriptions, etc.. . Choose something memorable that helps you quickly identify this specific project among your other voice, audio and localization tasks.
3 - 255Provide details about your project's goals and specifications. Include information such as the target languages for translation or dubbing, desired voice characteristics, emotional tones to capture, or specific audio processing requirements, outlining the workflow here can serve as valuable documentation for organizational purposes.
3 - 5000The list of desired languages that the media file will be dubbed to.
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150 Optional array of one or two zero‑based audio track indices to dub. Only supported for MXF files. If omitted, the first audio track (index 0) is used by default.
1 - 2 elementsOptional flag to append the dubbed audio as a new audio track in the output file. Only supported for MXF files. If true, the dubbed audio is added as an additional track; if false or omitted, the source would be returned with only dubbed audio.
An optional list of dictionary IDs selected by the user. Each entry must be an integer corresponding to a valid dictionary ID. If provided, at least one ID is required.
1Artificial Intelligence automatically modifies timestamps to smoothen out the speedups of dialogues.
Successful Response
A JSON that contains the unique identifier for the task. This is used to query the status of the end to end dubbing task that is running. It is returned when a create request is made for a dub
curl --request POST \
--url https://client.camb.ai/apis/dub \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"video_url": "<string>",
"source_language": 1,
"project_name": "<string>",
"project_description": "<string>",
"target_languages": [
1
],
"selected_audio_tracks": null,
"add_output_as_an_audio_track": null,
"chosen_dictionaries": null,
"ai_optimization": true
}
'{
"task_id": "<string>"
}