> ## Documentation Index
> Fetch the complete documentation index at: https://docs.percify.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Dub a video into another language with AI

> Dub or translate a video in the Percify Playground: upload an MP4, pick the target language, and pay by the length of the video.

You can dub a video into another language in the Percify Playground. Open one of the two video translation models, upload the video, pick the target language and run it. The price depends on the length of the video: the dubbing model starts at 72 credits and the video translate model at 90.

## What you need

* A computer. The Playground runs in the desktop web app at [app.percify.io/home/playground](https://app.percify.io/home/playground), under **Playground** in the sidebar.
* A video with speech, as an MP4 or MOV file. Other formats are refused before you are charged.
* Enough credits for its length (see below).

## Which model should I use?

The Playground has two models for this job. Both are listed under their names as shown in the app.

|                  | ElevenLabs Dubbing                                       | HeyGen Video Translate                   |
| ---------------- | -------------------------------------------------------- | ---------------------------------------- |
| Input            | A video (or an audio file)                               | A video                                  |
| Target languages | 18                                                       | 178 options, including regional variants |
| Source language  | Pick it, or leave it on Auto                             | Not asked                                |
| Price            | 72 credits per minute, charged by the second, minimum 72 | 3 credits per second, minimum 90         |

Dubbing target languages: English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, Korean, Russian, Arabic, Hindi, Dutch, Polish, Turkish, Vietnamese, Thai and Indonesian.

Video Translate covers those and many more, with regional options such as Spanish (Mexico), Portuguese (Brazil) and French (Canada), plus "English - Your Accent" and "English - American Accent".

## How to dub a video

<Steps>
  <Step title="Open the model">
    Click **Playground** in the sidebar, type "dubbing" or "translate" into **Search models**, and open the model.
  </Step>

  <Step title="Upload the video">
    In the form, click **Upload video** under the video field and pick your file. The player shows its length once it loads.
  </Step>

  <Step title="Pick the languages">
    For Dubbing, choose the language in target\_lang, and optionally the original language in source\_lang (Auto detects it). For Video Translate, choose output\_language.
  </Step>

  <Step title="Run it">
    The run button shows the price for this video, for example **Run · 108**. Click it and wait for the result, then click **Download**. A long video can take several minutes. If the page says it is still rendering, you can leave and come back: the result appears when it is ready.
  </Step>
</Steps>

## How much does it cost?

The server measures the length of the uploaded video and charges from that.

| Video length | ElevenLabs Dubbing | HeyGen Video Translate |
| ------------ | ------------------ | ---------------------- |
| 30 seconds   | 72                 | 90                     |
| 1 minute     | 72                 | 180                    |
| 90 seconds   | 108                | 270                    |
| 2 minutes    | 144                | 360                    |

If a run fails, or is still unfinished after 15 minutes, the credits are refunded. See [how credits work](/percify/credits).

## Tips

* Trim the video to the part you need first. Both models charge for the whole length.
* Test with a short clip on Dubbing, which has the lower minimum, before a long video.
* Use a clean MP4. If the length cannot be read you see "Could not read the video duration", and re-encoding to a standard MP4 fixes it.
* To make a new talking video in another language instead of translating an existing one, record or upload audio in that language and use [lip-sync](/create/lip-sync).

## Related

<CardGroup cols={2}>
  <Card title="Lip-sync any audio" icon="wave-square" href="/create/lip-sync">
    Turn a recording into a talking video.
  </Card>

  <Card title="Model playground" icon="flask" href="/create/playground">
    How the Playground works and how runs are priced.
  </Card>

  <Card title="Clone your voice" icon="microphone" href="/percify/voice-cloning">
    Generate speech in your own voice.
  </Card>

  <Card title="Generation failed" icon="triangle-exclamation" href="/troubleshooting/generation-failed">
    What to do when a run does not finish.
  </Card>
</CardGroup>
