Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
AI Video Dubber icon

AI Video Dubber

Dub a video into another language. Transcribe, translate, AI voice timed to the original, optional subtitles. $0.12 per dubbed minute, flat.

5 from 1 review on Apify 125 runs on Apify $0.12 per dubbed minute ($120 / 1,000)
Run this in the cloudRun on Apify →

AI Video & Content Studio

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust videoUrl, targetLanguage, sourceLanguage (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.12 per dubbed minute = $120 per 1,000

You are charged forWhenPrice
Dubbed minutePer minute of dubbed/translated video.$0.12

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-08, and they are what you are actually charged.

Inputs

FieldWhat it doesType
videoUrlPublic direct URL to the source video (.mp4/.mov/.webm). You host it; nothing is scraped.string
targetLanguageLanguage to dub into (ISO-639-1: es, fr, de, hi, ar, pt, ja, zh, …).string
sourceLanguageSpoken language of the source, or 'auto' to detect.string
voiceAI voice for the dub (OpenAI TTS voices).string
burnSubtitlesOverlay the translated subtitles onto the video.boolean
openaiApiKeyYour OpenAI key, used for transcription (Whisper), translation, and TTS. Kept private.string
ttsModelOpenAI TTS model: tts-1 (fast) or tts-1-hd (higher quality).string
translationModelChat model for translation. Default gpt-4o-mini.string
baseUrlOpenAI-compatible base URL for all calls. Default https://api.openai.com/v1.string

What you get

A structured dataset — each result includes fields like:

oksourceLanguagetargetLanguagevoicesegmentsdurationSecondsoutput

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in AI Video & Content Studio

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Auto Caption Burner iconAI Video & Content Studio

Auto Caption Burner

Burn word-by-word animated captions into any video. Five styles, no watermark. Transcript and word timings included. $0.04 per 30-second block.

Ready to run — no setup

Storyboard Video Generator iconAI Video & Content Studio

Storyboard Video Generator

Turn images or a story into a Ken Burns slideshow video. Pan-and-zoom motion, optional audio, 9:16, 16:9 or 1:1 output. $0.015 per rendered second.

Ready to run — no setup

Story to Script Rewriter iconAI Video & Content Studio

Story to Script Rewriter

Turn a story, article or Reddit post into a short-form script. You get a hook, tight narration, a title and extra hooks. $0.02 per script.

Ready to run — no setup

Subtitle Translator iconAI Video & Content Studio

Subtitle Translator

Translate SRT and VTT subtitles into many languages in one run, or transcribe a video first. Timings stay exact. $0.05 per language, flat rate.

Ready to run — no setup

AI Thumbnail Generator iconAI Video & Content Studio

AI Thumbnail Generator

Generate video thumbnails with AI. A close-up face plus a bold hook headline. Sizes 9:16, 16:9 and 1:1. For YouTube, Shorts, Reels and ads.

Ready to run — no setup

Social Metadata Generator iconAI Video & Content Studio

Social Metadata Generator

Write titles, captions, hashtags, SEO tags and a pinned comment. For YouTube, TikTok, Reels, Shorts and X. $15.00 per 1,000 packs ($0.015 each).

Ready to run — no setup

See all AI Video & Content Studio →

AI Video Dubber: put a video into another language with a new voice track

Give it a direct link to a video you host and pick a language. It writes down what is said, translates it, speaks the translation with an AI voice timed to the original lines, and puts that back over the picture. You get a dubbed MP4 and a translated SRT.

Two things to be clear about. It runs on your own OpenAI key, so the transcription, the translation and the voice all land on your OpenAI bill on top of the charge here. And the original audio is gone: this is a replacement voice track, not a mix, and there is no voice cloning and no lip sync.

InputA direct link to a video file you host
OutputOne dubbed MP4 and a translated SRT
CeilingOne video and one language per run
Account neededYour own OpenAI API key
Price$0.12 per minute of source video, rounded up

🌍 What AI Video Dubber does

It downloads your file, pulls the audio out and sends it for transcription with timestamps, so every line of speech comes back with a start and an end.

Those lines are translated in one pass, which keeps them consistent with each other rather than translating each in isolation. Then each translated line is spoken separately and dropped back at the timestamp its original sat on, so the dub follows the picture instead of drifting.

Where a translated line runs longer than the gap it has to fit into, it is sped up to make room, up to three times. Past that it will not compress any further, and the next line starts while it is still speaking.

23 languages: Spanish, French, German, Italian, Portuguese, Hindi, Arabic, Russian, Japanese, Korean, Chinese, Dutch, Polish, Turkish, Indonesian, Vietnamese, Thai, Swedish, Ukrainian, Romanian, Greek, Hebrew and Filipino.

📥 What you give it

{
  "videoUrl": "https://yourdomain.com/clips/interview.mp4",
  "targetLanguage": "es",
  "voice": "onyx",
  "burnSubtitles": true
}
FieldDefaultWhat it is
videoUrlnoneA public direct link to an .mp4, .mov or .webm. You host the file. The form prefills an example.com address, which is a placeholder, not a default: leave it there with a key set and the run fails on a missing file.
targetLanguageesThe language to dub into, as a two-letter code from the list above.
sourceLanguageautoThe spoken language of the original. Leave it on auto unless detection gets it wrong.
voiceonyxalloy, echo, fable, onyx, nova or shimmer. onyx is the deep male one, nova and shimmer are female.
burnSubtitlestrueOverlays the translated subtitles on the picture. This means re-encoding the video, so it is slower. Turn it off and the picture is copied untouched.
openaiApiKeynoneYour own OpenAI key, used for all three steps. Marked secret.
ttsModeltts-1tts-1 is quick, tts-1-hd sounds better and costs you more on your own bill.
translationModelgpt-4o-miniThe chat model that does the translating. Any model name that works on your host.
baseUrlnoneAdvanced. Any OpenAI-compatible host. Empty means https://api.openai.com/v1.

Leave the key out and you get a labelled sample row rather than a dub, free, so you can see the shape before you spend anything.

📤 What you get back

One row, and two files in the run's key-value store: dubbed-es-1786411663909.mp4 and subtitles-es-1786411663909.srt, with the language code in the name.

FieldWhat it is
oktrue on a delivered dub.
videoUrlThe source link you gave it.
sourceLanguageWhat the speech was detected as, or what you set.
targetLanguage, voiceWhat it was dubbed into, and who read it.
segmentsHow many separate lines of speech were found and voiced.
durationSecondsThe length of the source video, rounded. This is what the charge is worked out from.
outputmp4Key, srtKey and mp4Url: where the dubbed video and the subtitle file ended up.
processingSecondsHow long the run took.

No example row is printed here. No run on record has produced one with a working customer key, and a plausible row typed out by hand is worse than none.

🧾 Reading the output

Two rows can appear, and they look alike in the table, which is the one thing to watch.

RowHow to spot itBilled
A finished duboutput.mp4Key has a filename in ityes
The keyless sample_sample: true, a reason, and output keys that are emptyno

The sample row carries ok: true, so the Overview table will not tell you apart from a real result. Check _sample or output.mp4Key before you trust a row.

If anything in the chain fails, the run stops and is marked failed. There is no partial row and no charge for a dub that was never made. The log names the step: the download, the transcription, the translation or the voice.

One more thing to check on the way out. When the translation comes back with fewer lines than there were segments, the gaps are filled with the original text, which means those lines get spoken in the source language by the dubbing voice. Listen through before you publish.

In the Overview table, output shows as a nested object rather than a link, so open the row or go to the run's Storage tab to get the file.

▶️ How to run it

1. Put your video somewhere with a direct download link. This does not fetch from video sites. 2. Open AI Video Dubber and click Try for free to see the sample row. 3. Paste your key into OpenAI API key (BYO) and your link into Video URL. 4. Pick Target language and Voice, and decide whether you want subtitles burned on. 5. Click Start, then take the MP4 and SRT from the run's Storage tab.

💰 How much does it cost?

$0.12 per minute of source video. Flat on every Apify plan, no volume tiers. Minutes are rounded up, so a 90-second clip counts as two and anything under a minute counts as one.

A run that fails delivers no video and is not charged for one. OpenAI bills your own key separately for the transcription, the translation and every line of speech, and tts-1-hd costs you more there than tts-1.

💡 What people use it for

  • Putting an existing channel's back catalogue into a second language without re-recording anything.
  • Course and training video localisation, where the SRT matters as much as the audio.
  • Ads and product clips that need a Spanish or Arabic cut for one campaign.
  • Getting a rough dub in front of a client to decide whether a proper voice session is worth booking.

🚧 What it does not do

  • No voice cloning and no lip sync. One of six stock voices reads the whole thing, and mouths

will not match.

  • The original audio is replaced, not mixed underneath. Music and effects that were on the

original track go with it.

  • Keep sources short. The whole soundtrack goes up for transcription in one piece, so anything

past roughly 13 minutes of audio is likely to fail at that step.

  • One language and one video per run. Dubbing into three languages is three runs.
  • It does not fetch from video sites. A direct file link to something you host, nothing else.
  • A line that will not fit can overlap the next one. Speed-fitting stops at three times, and

after that two voices can be heard together for a moment.

  • No speech, no dub. A video with no audio track, or with nothing spoken in it, stops the run.

🧭 Which AI video actor do you need?

If you wantUse
A video re-voiced in another languageThis one
Subtitles translated without touching the audioSubtitle Translator
A plain transcript of what was saidVideo Audio Transcriber
Word-by-word captions burned on your own videoAuto Caption Burner
A voiceover from text, with no video involvedAI Text-to-Speech Voiceover

❓ Questions people ask

Do I need my own key? Yes. Without it you get the sample row rather than a dub.

Can I keep the original audio underneath? No. The dub replaces the audio track.

Will it sound like the original speaker? No. It is one of six stock voices, picked by you.

How long does a run take? It depends on how many lines of speech there are, since each is voiced one at a time, and burning subtitles adds a full re-encode on top.

What do the rounded minutes mean for a short clip? A 20-second clip is charged as one minute, and a 3-minute-10-second one as four.

Can I dub a YouTube link? Not directly. Download the file first and host it somewhere with a direct link.

🆘 If something breaks

Open the Issues tab on the actor page. Include the run ID and your source link, and say which step the log stopped at, since that usually points straight at the cause.