ElevenLabs Dubbing API: AI Video Translation Guide

Learn how to use the ElevenLabs Dubbing API through SandBase to automatically translate and re-voice video and audio content into 29+ languages.

ElevenLabs Dubbing API: AI Video Translation Guide

You have a great video — but it only speaks one language. Your audience doesn’t. That’s where AI dubbing comes in. ElevenLabs’ Dubbing API translates spoken content and re-voices it with natural-sounding speech in the target language, preserving tone, timing, and emotion. Through SandBase, you can access this capability with a single unified API call.

This tutorial walks you through the complete process: from submitting a video URL to receiving a fully dubbed version in another language.

What Is AI Dubbing?

AI dubbing is the process of automatically translating spoken audio and regenerating it in a different language using AI voices. Unlike simple text-to-speech overlays or subtitle generation, modern AI dubbing performs a multi-step pipeline that produces broadcast-quality results:

  • Transcribes the original audio using speech recognition
  • Translates the transcript into the target language with context-aware machine translation
  • Re-voices the content with natural speech that matches the original speaker’s tone, pitch, and emotion
  • Synchronizes lip-sync timing with the original video to maintain visual coherence
  • Mixes the new voice track with preserved background audio, music, and sound effects

ElevenLabs is one of the leading providers in this space, supporting 29+ languages with high-quality voice synthesis. Their models are trained to handle diverse accents, speaking speeds, and emotional registers, producing dubbed audio that sounds remarkably close to a professional human dubbing studio.

SandBase ElevenLabs Dubbing API page

Why Use SandBase for ElevenLabs Dubbing?

SandBase provides a unified API gateway that simplifies access to AI models across providers. Instead of managing ElevenLabs API keys, handling their specific authentication flow, and dealing with provider-specific request formats, you get:

  • One API key for all models (ElevenLabs, OpenAI, Runway, and more)
  • Consistent request format across different AI services
  • Built-in rate limiting and error handling
  • Usage tracking and billing in one place
  • Easy integration into AI agent workflows and automation pipelines

The model identifier for ElevenLabs dubbing on SandBase is elevenlabs/dubbing.

Prerequisites

Before you start, you’ll need:

  1. A SandBase account — sign up at sandbase.ai
  2. Your SandBase API key (found in your dashboard)
  3. A video or audio file URL to dub (publicly accessible)

How the Dubbing Process Works

The dubbing workflow follows these steps:

  1. Submit a video/audio URL with source and target language
  2. Wait for processing (transcription → translation → voice synthesis → mixing)
  3. Retrieve the dubbed output file

Processing time depends on the length of the content. A 5-minute video typically takes 2-4 minutes to process.

Quick Start: Your First Dubbed Video

Using curl

Here’s the simplest way to submit a dubbing job:

curl -X POST https://api.sandbase.ai/v1/dubbing \
  -H "Authorization: Bearer YOUR_SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "elevenlabs/dubbing",
    "source_url": "https://example.com/my-video.mp4",
    "source_language": "en",
    "target_language": "es",
    "options": {
      "preserve_background_audio": true,
      "speaker_count": 1
    }
  }'

Response:

{
  "id": "dub_abc123xyz",
  "status": "processing",
  "estimated_duration_seconds": 180,
  "created_at": "2026-08-13T01:24:00Z"
}

Check Job Status

Poll the status endpoint until processing completes:

curl https://api.sandbase.ai/v1/dubbing/dub_abc123xyz \
  -H "Authorization: Bearer YOUR_SANDBASE_API_KEY"

When complete:

{
  "id": "dub_abc123xyz",
  "status": "completed",
  "output_url": "https://cdn.sandbase.ai/output/dub_abc123xyz.mp4",
  "duration_seconds": 312,
  "source_language": "en",
  "target_language": "es",
  "created_at": "2026-08-13T01:24:00Z",
  "completed_at": "2026-08-13T01:27:42Z"
}

Using Python

Here’s a complete Python script that submits a dubbing job and waits for the result:

import requests
import time

SANDBASE_API_KEY = "your_sandbase_api_key"
BASE_URL = "https://api.sandbase.ai/v1"

headers = {
    "Authorization": f"Bearer {SANDBASE_API_KEY}",
    "Content-Type": "application/json"
}

def dub_video(source_url: str, source_lang: str, target_lang: str) -> dict:
    """Submit a video for dubbing and wait for the result."""

    # Step 1: Submit the dubbing job
    payload = {
        "model": "elevenlabs/dubbing",
        "source_url": source_url,
        "source_language": source_lang,
        "target_language": target_lang,
        "options": {
            "preserve_background_audio": True,
            "speaker_count": "auto"
        }
    }

    response = requests.post(
        f"{BASE_URL}/dubbing",
        headers=headers,
        json=payload
    )
    response.raise_for_status()
    job = response.json()

    print(f"Job submitted: {job['id']}")
    print(f"Estimated wait: {job['estimated_duration_seconds']}s")

    # Step 2: Poll for completion
    while True:
        status_response = requests.get(
            f"{BASE_URL}/dubbing/{job['id']}",
            headers=headers
        )
        status_response.raise_for_status()
        result = status_response.json()

        if result["status"] == "completed":
            print(f"Done! Output: {result['output_url']}")
            return result
        elif result["status"] == "failed":
            raise Exception(f"Dubbing failed: {result.get('error', 'Unknown error')}")

        print(f"Status: {result['status']}... waiting")
        time.sleep(10)


# Example usage
result = dub_video(
    source_url="https://example.com/marketing-video.mp4",
    source_lang="en",
    target_lang="ja"
)

print(f"Dubbed video URL: {result['output_url']}")

SandBase Dubbing API workflow diagram

Supported Languages

ElevenLabs dubbing supports 29+ languages including:

LanguageCodeLanguageCode
EnglishenSpanishes
FrenchfrGermande
ItalianitPortuguesept
JapanesejaKoreanko
Chinese (Mandarin)zhHindihi
ArabicarDutchnl
PolishplTurkishtr
SwedishsvIndonesianid

Additional languages include Russian, Thai, Vietnamese, Czech, Danish, Finnish, Greek, Hungarian, Norwegian, Romanian, and Ukrainian.

Advanced Options

Multi-Speaker Detection

For videos with multiple speakers, enable automatic speaker detection:

payload = {
    "model": "elevenlabs/dubbing",
    "source_url": "https://example.com/interview.mp4",
    "source_language": "en",
    "target_language": "fr",
    "options": {
        "speaker_count": "auto",
        "preserve_background_audio": True,
        "preserve_music": True
    }
}

Dubbing Audio-Only Content

The API works with audio files too — perfect for podcast translation:

curl -X POST https://api.sandbase.ai/v1/dubbing \
  -H "Authorization: Bearer YOUR_SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "elevenlabs/dubbing",
    "source_url": "https://example.com/podcast-episode.mp3",
    "source_language": "en",
    "target_language": "de",
    "options": {
      "output_format": "mp3",
      "speaker_count": 2
    }
  }'

Batch Dubbing Multiple Videos

For content pipelines that need to localize many videos at once:

import concurrent.futures

videos = [
    {"url": "https://example.com/video1.mp4", "target": "es"},
    {"url": "https://example.com/video2.mp4", "target": "fr"},
    {"url": "https://example.com/video3.mp4", "target": "ja"},
]

def submit_job(video):
    payload = {
        "model": "elevenlabs/dubbing",
        "source_url": video["url"],
        "source_language": "en",
        "target_language": video["target"],
        "options": {"preserve_background_audio": True}
    }
    response = requests.post(
        f"{BASE_URL}/dubbing",
        headers=headers,
        json=payload
    )
    return response.json()

# Submit all jobs in parallel
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
    jobs = list(executor.map(submit_job, videos))

print(f"Submitted {len(jobs)} dubbing jobs")

Real-World Use Cases

YouTube Video Localization

Expand your YouTube channel’s reach by dubbing videos into the top languages for your audience. The workflow is straightforward: submit the video URL, get dubbed versions, and upload them as alternate audio tracks or publish to localized channels. Many creators are seeing 30-50% audience growth by making their content accessible in Spanish, Portuguese, Hindi, and Japanese — the fastest-growing YouTube markets in 2026.

Online Course Translation

Make educational content accessible worldwide. Dub entire course modules into multiple languages while preserving the instructor’s teaching style and tone. Platforms like Udemy and Coursera have shown that localized courses see significantly higher enrollment rates in non-English markets. With API-driven dubbing, you can maintain a single source of truth and regenerate translations whenever the course content updates.

Marketing Video Adaptation

Launch campaigns simultaneously in multiple markets. A single English marketing video can become a Spanish, French, Japanese, and German version — all within minutes.

Podcast Translation

Bring your podcast to international listeners. The API preserves conversational dynamics between multiple speakers while translating into the target language.

Building a Full Content Pipeline

The real power emerges when you combine dubbing with other AI APIs available through SandBase. Here’s a content pipeline that generates and localizes video:

  1. Generate video using AI video generation APIs — create the source content
  2. Add voiceover using text-to-speech — narrate your generated video
  3. Dub into target languages using ElevenLabs dubbing — localize for global distribution

This approach lets you go from a text script to a fully localized video in multiple languages, all through API calls. Check out our comparison of text-to-video vs image-to-video approaches to choose the right generation method for your content.

SandBase GPT-5.6 Luna API page

Tips for Best Results

  1. Use high-quality source audio — clear speech without heavy background noise produces better dubs
  2. Specify speaker count when you know it — helps the AI separate and match voices accurately
  3. Keep segments under 30 minutes — split longer content for faster processing and better quality
  4. Preserve background audio — enable this option to keep music and sound effects from the original
  5. Test with short clips first — validate quality before processing full-length content

Error Handling

Always handle potential errors in production code:

try:
    result = dub_video(source_url, "en", "es")
except requests.exceptions.HTTPError as e:
    if e.response.status_code == 429:
        print("Rate limited — retry after delay")
    elif e.response.status_code == 400:
        print(f"Invalid request: {e.response.json()}")
    else:
        print(f"API error: {e}")
except Exception as e:
    print(f"Dubbing failed: {e}")

Pricing Considerations

ElevenLabs dubbing through SandBase is billed per minute of source audio processed. Check the SandBase pricing page for current rates. Batch processing and longer content generally offer better value per minute than short clips.

Conclusion

AI dubbing removes the cost and time barrier to content localization. What once required hiring voice actors, translators, and sound engineers for each language — often costing thousands of dollars and taking weeks per video — can now be accomplished with a single API call in minutes. Through SandBase, you get access to ElevenLabs’ dubbing technology alongside hundreds of other AI models, all under one API key and billing system.

The integration possibilities are vast. Combine dubbing with automated video generation, transcription services, and content management systems to build fully automated localization pipelines. Whether you’re a solo content creator looking to reach international audiences or an enterprise team managing thousands of videos across dozens of markets, the same API scales to meet your needs.

Start with a single video, pick a target language, and see the results for yourself. The quality of AI dubbing in 2026 is remarkably natural, and the workflow couldn’t be simpler.


Ready to start dubbing? Sign up for SandBase and get API access to ElevenLabs dubbing and 200+ other AI models.