> ## Documentation Index
> Fetch the complete documentation index at: https://heygen-1fa696a7.mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Multilingual Content

> Localize video content into 175+ languages with the HeyGen API. Preserves voice characteristics and lipsync; pairs with translation for end-to-end global.

## See It in Action

One video, generated in English, then translated into multiple languages with lip-sync — stitched together:

<iframe src="https://www.loom.com/embed/ad62bbbdbfef4961bcd6e8c110768c50" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style={{width: "100%", height: "315px"}} />

## The Problem

Professional dubbing costs thousands of dollars per language. Most companies either skip localization entirely or settle for subtitles — missing the large audience that prefers content in their native language.

## How It Works

```
Create source video (Video Agent) → Translate (Video Translation API) → Distribute per region
```

Generate your video once in one language. Then translate it into as many languages as you need — with lip-sync so the avatar's mouth matches the translated audio.

## Build It

<Steps>
  <Step title="Create your source video">
    Generate the original video using any workflow — [social content](/cookbook/video-agent/social-media-pipeline), [product demo](/cookbook/video-agent/product-demos), [training](/cookbook/video-agent/training-and-onboarding), etc.

    ```python theme={null}
    import requests

    resp = requests.post(
        "https://api.heygen.com/v3/video-agents",
        headers={
            "X-Api-Key": HEYGEN_API_KEY,
            "Content-Type": "application/json",
        },
        json={
            "prompt": "Create a 60-second product overview of TaskFlow, a project management app..."
        },
    )
    source_video_id = resp.json()["data"]["video_id"]
    # ... poll until completed, get video_url
    ```
  </Step>

  <Step title="Translate into multiple languages">
    Use the Video Translation API to translate into multiple languages in a single request.

    ```python theme={null}
    target_languages = ["es", "fr", "de", "ja", "zh", "pt-BR", "ko", "ar", "hi"]

    resp = requests.post(
        "https://api.heygen.com/v2/video_translate",
        headers={
            "X-Api-Key": HEYGEN_API_KEY,
            "Content-Type": "application/json",
        },
        json={
            "video_url": source_video_url,
            "output_languages": target_languages,
            # "translate_mode": "precision"  # For premium lip-sync quality
        },
    )
    translation_id = resp.json()["data"]["video_translate_id"]
    ```

    See [Video Translation docs](/docs/video-translate) for all supported languages and options.
  </Step>

  <Step title="Choose your quality mode">
    Two modes with different cost/quality tradeoffs:

    | Mode                | Cost          | Lip-sync quality | Best for                         |
    | ------------------- | ------------- | ---------------- | -------------------------------- |
    | **Speed** (default) | \$0.05/second | Good             | Most content, fast turnaround    |
    | **Precision**       | \$0.10/second | Premium          | Face-heavy videos, brand content |

    For a 60-second video translated into 9 languages:

    * Speed mode: 60s × 9 × $0.05 = **$27\*\*
    * Precision mode: 60s × 9 × $0.10 = **$54\*\*

    See [Pricing](/docs/pricing) for current rates.
  </Step>

  <Step title="Generate captions">
    Get subtitle files for each translated version.

    ```python theme={null}
    # After translation is complete
    resp = requests.get(
        f"https://api.heygen.com/v2/video_translate/{translation_id}/caption",
        headers={"X-Api-Key": HEYGEN_API_KEY},
        params={"format": "srt"},  # or "vtt"
    )
    captions = resp.json()
    ```

    <Info>
      Caption URLs expire after 7 days but are regenerated each time you request them.
    </Info>
  </Step>

  <Step title="Distribute per region">
    Now you have the source video + 9 translated versions + captions for each. Distribute based on your audience's region.

    ```python theme={null}
    # Example: organize outputs by language
    for lang in target_languages:
        print(f"{lang}: video_url=..., caption_url=...")
        # Upload to regional CDN, post to regional social accounts, etc.
    ```
  </Step>
</Steps>

## Real-World Results

These results are reported by companies via [HeyGen's customer stories](https://www.heygen.com/customer-stories):

| Company        | What they did                                   | Reported result                             |
| -------------- | ----------------------------------------------- | ------------------------------------------- |
| **Trivago**    | Localized TV ads across 30 markets              | Halved post-production time                 |
| **Würth**      | Translated employee training                    | Reported 80% reduction in translation costs |
| **McDonald's** | "Grandma McFlurry" campaign translated globally | Used HeyGen for multi-language distribution |

## Workflow: Translate Everything You Generate

Once you have a translation pipeline, apply it to every video you create:

```
Social Media Pipeline → Generate 5 English videos → Translate each to 9 languages = 45 videos
Training Pipeline → Generate 10 module videos → Translate to 7 languages = 70 training videos
Product Demo → Generate 1 demo → Translate to 5 key markets = 5 localized demos
```

The marginal cost per additional language is minimal compared to the reach it unlocks.

## Variations

* **Audio-only translation:** Keep the original video visuals, just change the voiceover — useful when lip-sync isn't critical
* **Subtitle-only:** Generate captions without re-rendering the video — cheapest option for supplementary languages
* **Regional adaptation:** Use different Video Agent prompts per region (not just translation but cultural adaptation) for high-priority markets

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Training & Onboarding" icon="book-open" href="/cookbook/video-agent/training-and-onboarding">
    Generate the training content that feeds into this pipeline.
  </Card>

  <Card title="Social Media Pipeline" icon="share-nodes" href="/cookbook/video-agent/social-media-pipeline">
    Multiply your social content across languages.
  </Card>
</CardGroup>
