POST
/
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
}'
{
  "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.

The Dubbing Process

When you submit a dubbing request, our system begins a multi-stage workflow:

1

Project Setup

Our intelligent system works its magic behind the scenes to prepare your content for flawless localization.

2

Translation

The transcribed text is expertly translated to your target language using our proprietary translation engine BOLI.

3

Voiceover Generation

Voiceovers are created using natural-sounding synthetic voices using our in-house novel speech model MARS.

4

Final Assembly

Everything is combined into a seamless final product.

Throughout this process, you can check on your task’s progress using the /dub/{task_id} endpoint with the task_id provided in your initial response.

Compatible Media Sources

Our dubbing service accommodates various media sources to fit your workflow needs. The video_url parameter in your request can point to any of the following:

Online Platforms

Use content directly from popular content platforms:

  • YouTube videos: Simply provide the standard YouTube video URL.
  • Google Drive: Link to media files stored in Google Drive (ensure they’re publicly accessible).
  • Direct URLs: Any direct link to a media file that doesn’t require authentication.

Supported File Formats

Our system processes a wide range of professional and consumer media formats:

Media TypeSupported Formats
Video FilesMP4, MOV, MXF
Audio FilesMP3, FLAC, WAV, AAC

This flexibility allows you to work with both broadcast-quality content and consumer-grade media without conversion hassles.

Please note that MXF format support is exclusively available to customers on our Enterprise plan, offering professional broadcast-quality media handling for organizations with advanced needs.

Language Configuration

Specifying the right languages is crucial for successful dubbing. Your request needs to include:

  • Source Language: The original language spoken in your media.
  • Target Language(s): The language(s) you want your content to be dubbed into.

Both parameters require specific language identifiers from our system. To find the correct IDs:

  1. Query the /source-languages endpoint for available source language options.
  2. Check the /target-languages endpoint for supported target languages.

Using these official IDs ensures our system correctly processes your content.

Creating Your First Dubbing request

Let’s look at how to initiate a dubbing task with Python:

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)

Monitoring Your Dubbing Progress

After submission, your content enters our processing pipeline. The time required depends on the length and complexity of your media. You can check progress by polling the status endpoint:

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)

Best Practices for Optimal Results

To get the most from our dubbing service, consider these professional tips:

  1. Source Quality Matters: Higher quality original media yields better dubbing results.
  2. Language Selection: Choose the right language for your audience to ensure clarity and authenticity.

Practical Applications

Our end-to-end dubbing functionality opens exciting possibilities across industries:

  • E-Learning: Make educational content accessible to global learners.
  • Marketing: Localize promotional videos for international markets.
  • Entertainment: Bring films and shows to new language audiences.
  • Corporate Communications: Ensure company messages reach multilingual teams.
  • Social Media: Expand your content’s reach across language barriers.

By integrating this API into your workflow, you can dramatically reduce the time and expense traditionally associated with professional dubbing while maintaining impressive quality.

Authorizations

x-api-key
string
header
required

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.

Body

application/json

Response

200
application/json

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