How to Translate a Video to English (or Any Language)
Translate a video to English with subtitles: Whisper's translate task, a transcribe-then-translate route, Sablate and YouTube, plus other target languages.
To translate a video to English, you need English subtitles timed to the speech. The fastest free route is Whisper's translate task, which writes English subtitles straight from foreign speech. For any other language, or for several languages at once, you transcribe first and then translate the text, keeping every timecode.
This guide covers four ways to do it, what changes when the target is not English, and how to check the result before you publish it.
Subtitles or dubbing: what "translate a video" means here
Translating a video can mean two different jobs. This guide is about the first: subtitles, meaning text on screen, translated and timed to what is said. The second is translating the voice itself, with a dubbed track or a voice-over in the new language. That is a different job with different tools. Sablate does not dub, so none of the methods below produce a spoken translation.
Every method here starts from a video or audio file you already have on your disk.
How do you translate a video to English? Four methods
- Whisper's translate task. Free, runs from a command line, English output only.
- Transcribe, then translate the subtitle file. Works for any target language and any tool you like.
- Sablate. Transcribe once, add the translation as a layer, export or burn in.
- YouTube's auto-translate. For watching only. No file, no export.
They differ most in two things: which languages they reach and whether you end up with a subtitle file you own.
Method 1: Whisper's translate task (English only)
Whisper is OpenAI's open-source speech model. According to its README, it is a multitask model: it does multilingual speech recognition, speech translation and language identification. The translation part is the useful one here, and the README gives this example for turning Japanese speech into English:
whisper japanese.wav --model medium --language Japanese --task translate
To get a subtitle file instead of the default outputs, add --output_format srt. The command line tool reads video files as well as audio, because it decodes media through FFmpeg, so you can point it at an .mp4 directly.
Only English. The translate task has one target language. If you need Turkish, German or Japanese subtitles, this method cannot produce them.
Do not use turbo. This is the mistake behind most "Whisper did not translate my video" reports. The README states that the turbo model is not trained for translation tasks and returns the original language even when --task translate is set. It recommends medium or large for the best translation results. If your "translation" came back in the original language, check which model you ran.
The limits are practical ones. It needs a command line and a Python setup. It gives you one language and no editor, so a mistranslated name means editing the SRT by hand. For one video into English at no cost, it is hard to beat. If you want help choosing a model, the Whisper model comparison shows what each size costs in time and accuracy.
Method 2: Transcribe first, then translate the subtitle file
The second route splits the job in two. Make a subtitle file in the language spoken, using any Whisper tool, then translate the text while keeping the timecodes. It works for any target language, English included, because the translator is a separate step.
There are several ways to run that second step: a subtitle editor with an auto-translate function, a document translator that accepts .srt, or a language model with a strict prompt, followed by a check that the block count still matches. The tools and the traps are covered in translating an SRT without breaking the timing, so they are not repeated here.
The advantage is control: you can choose a translator for each language and correct the source text before it is translated. The cost is several tools and several hand-offs. If the transcript is not a file yet, transcribing a video to text covers that first half.
Method 3: Translate a video in Sablate, as a layer
Sablate is a desktop app for Windows 10 64-bit or later and macOS 12 Monterey or later. It does not use Whisper's translate task. It transcribes the speech in the language spoken, then translates that text as a layer, cue by cue, so every translated line keeps the timing of the original line.
The steps:
- Click New job and drop in a video or audio file from your disk.
- Set Spoken language, or leave it on auto-detect. Transcription runs locally with faster-whisper and covers 100 spoken languages.
- Under Translate into, pick one or more target languages.
- Click Start.
- Read the lines in the editor. You can add another language later with Add language… without transcribing again.
- Export
.srt,.vttor.txt, or burn the subtitles into an.mp4. Pro also exports.assand a multi-track.mkv.
Argos is the offline translator. It runs on your machine, and each language pack is downloaded once. Argos packages pair a language with English, so a translation into English is direct from most languages. A pair like Spanish to Turkish goes through English as a middle step and reads a little flatter. Argos reaches about 50 target languages. With your own API key, Pro can also use DeepL, OpenAI or Claude, which usually phrase better, though the subtitle text then goes to that provider.
Because the translation is a layer on one transcription, you can add a second and third language without repeating anything, and each layer carries its own style and script font. Adding subtitles in multiple languages explains that workflow.
The free plan needs no account and covers videos up to ten minutes, three jobs a month, the Fast and Balanced models and one offline translation layer; its burn-in carries a small corner mark. Pro costs $29 one-time or $5.99 a month and removes the limits; see pricing. Once the speech model and any Argos language packs are downloaded, transcription, offline translation and burn-in run without an internet connection. Download Sablate to try it on a short clip.
Method 4: YouTube auto-translate, if you only need to watch
If the video is on YouTube and you only want to understand it, you do not need any file. In the player, open the settings gear and choose Subtitles/CC; if your language is not in the list, choose Auto-translate and select it. This is described in YouTube's caption settings help page.
It is free and instant, and it gives you subtitles inside YouTube's own player only. You get no file, no export and nothing to burn in. YouTube's automatic captions page says automatic captions are machine generated and that quality may vary, so a translation built on top of them inherits that. For understanding a talk, that is often enough. For a video you will publish, it is not.
Translating a video into a language other than English
Most people do not need English. They need Turkish, German, French or Japanese, and that changes the method.
- Whisper's translate task is out. It is English only. This is the one fact in this guide that does not carry over to other languages.
- Transcribe, then translate. Methods 2 and 3 work for any target language, because the translation is a separate step from the speech recognition.
- Direct versus pivot. In Argos, English pairs are direct. A pair that does not include English, such as Spanish to Turkish, goes through English, which adds one more place for meaning to drift. If your source is already English, or your target is, you avoid the extra hop.
- A better translator helps more than a bigger speech model. Once the transcript is correct, phrasing quality comes from the translator. DeepL, OpenAI and Claude, used with your own key in Sablate Pro, generally read better than offline Argos. The trade is that the text leaves your machine.
- Scripts and fonts. Chinese, Japanese, Korean, Arabic and Devanagari need a font that actually contains those characters, or a burned-in video shows empty boxes. Sablate gives each language layer its own script font.
A video can also be translated from English into your language in the same way. The source language is whatever is spoken; the target is whatever you pick.
What translating does to timing and reading speed
Translation keeps the timing and breaks the reading speed. The cue still starts and ends where the speaker did, but the translated line can be longer, and the viewer has the same number of seconds to read it. English to German is a common example: the text grows, and a cue that was comfortable becomes too fast.
The measure is characters per second, explained in subtitle reading speed (CPS). The fix is to shorten the wording or split the cue in two. Do not move the timestamps, because they match the audio.
Also read every line before publishing. Machine translation of subtitles reads literal: idioms, jokes and names come out wrong in ways a quick skim misses. Offline Argos sits below DeepL and current language models on phrasing, and no engine replaces a human read.
Translate a video online or offline?
Browser-based video translators work by uploading your file to their servers, translating it there and sending the result back. That is convenient, and it means the video leaves your computer. For private footage, client work or a slow connection, a local method is the safer default. Whisper's translate task and Sablate's Argos route both process the file on your machine.
How the methods compare
| Whisper translate task | Transcribe, then translate the SRT | Sablate | YouTube auto-translate | |
|---|---|---|---|---|
| Target languages | English only | Any the translator supports | About 50 offline with Argos, more with your own API key | The languages YouTube lists |
| Works offline | Yes, once the model is downloaded | Depends on the translator | Yes, with Argos language packs downloaded | No |
| Needs a video file | Yes | Yes, to make the SRT | Yes | No |
| Gives you a subtitle file | Yes, with --output_format srt | Yes | Yes, SRT or VTT | No |
| Keeps the timing | Yes | Yes, if the block count is checked | Yes, cue by cue | Yes, inside the player |
| Burn-in | No | With a separate tool | Yes | No |
| Several languages from one transcription | No | Run it once per language | Yes, as layers | One at a time for the viewer |
| Editor for fixing lines | No | Yes, in a subtitle editor | Yes | No |
| Price | Free | Free to paid, depending on the tools | Free plan; Pro $29 one-time or $5.99 a month | Free |
Whisper's translate task and YouTube both beat Sablate on price and setup: the first is free with no app to buy, the second needs nothing at all. For a single video into English, or a talk you only want to follow, either one may be all you need.
Which method should you pick?
- One video into English, you are comfortable with a terminal: Whisper's translate task with a medium or large model.
- Just understanding a YouTube video: YouTube's auto-translate. Do not build a workflow around it.
- A language other than English, one video: transcribe, then translate the SRT with the translator you trust most.
- Several languages, a video you will publish, or burned-in subtitles: Sablate, because one transcription feeds every language and the editor catches the long lines.
- Phrasing matters more than privacy: pair any transcript with DeepL or a language model, and keep the review step.
If you publish the result, remember that a subtitle file and a burned-in video behave differently on each platform. Hardsub versus softsub explains which you need, and burning subtitles into a video covers the render.
Frequently asked questions
How do I translate a video to English for free?
Use Whisper's translate task, which is free and open source. Run it on your video file with the task set to translate and the output format set to srt, and it writes English subtitles from the speech. It needs a command line. Sablate's free plan does the same job in an app for videos up to ten minutes.
Can Whisper translate a video into other languages?
No. Whisper's built-in translate task only produces English. To reach any other language, transcribe the speech in its original language first, then translate the resulting text with a separate translator while keeping the timecodes. Argos, DeepL and large language models can all do that second step on the subtitle text.
Why did Whisper not translate my video?
You probably used the turbo model. The Whisper README says turbo is not trained for translation and returns the original language even when the translate task is set. Switch to the medium or large model and run the same command again. The README recommends those two for the best translation results.
Can I translate a video offline without uploading it?
Yes. Whisper runs locally for transcription and translation into English, and Sablate pairs local transcription with Argos, an offline translator. Once the speech model and the language packs are downloaded, both run without an internet connection. Browser-based video translators work differently: they upload your file to their servers to process it.
Does translating a video break the subtitle timing?
Not if you translate the text and keep the timecodes. The cue start and end times stay where the speech is. What changes is length: translated lines are often longer, so a cue can become too fast to read. Fix that by shortening the wording or splitting the cue, not by moving timestamps.
How do I translate a video from Spanish to English?
Transcribe the Spanish speech, then translate the text to English with the timings kept. Whisper's translate task does both at once, and Sablate does it as a translation layer, from Spanish to English directly through Argos. Whichever you use, read the result before publishing, because machine translation of subtitles tends to read literal.