More free subtitle tools
Same quality bar. Still free. Still no upload.
Your files never leave your device
Free to use, with no account and no watermark. The first run downloads the model files once and your browser caches them; the model then runs on your device, and the file you process is never sent anywhere.
This is not a promise about how carefully we handle your upload. There is no upload. The file you choose is read into memory by your own browser, processed there, and handed back as a download — the tool has no server component and makes no network request with your data. The only download is the model itself, which contains nothing of yours.
- Nothing is stored. We never receive the file, so there is no copy to retain, no retention period to disclose, and nothing to delete on request.
- Nothing is transmitted. No upload endpoint, no analytics payload carrying file contents, no third-party processor.
- You can verify it. Run the tool once so the model is cached, then disconnect from the internet and run it again. It still works, because everything it needs is already on your machine.
- Nothing persists after you close the tab. Files are held in page memory only — not in local storage, not in a cache, not in a database.
A note on wording, because it matters: we do not describe these tools as “encrypted.” Encryption protects data that travels to somebody else's computer. Your file does not travel, so there is nothing to encrypt and nothing to intercept — which is a stronger guarantee than encryption, not a weaker one. The page itself is served over HTTPS like the rest of the site.
This makes the tools safe for material you are contractually barred from uploading to third-party services — client footage under NDA, unreleased campaign assets, anything covered by a confidentiality clause.
How it works
1. Drop or paste the track
SubRip (.srt) or WebVTT (.vtt), up to 20 MB and 2,000 cues. The same parser as the SRT and VTT converters reads the cues. Blocks with no timing are skipped.
2. Pick a language pair
English into Spanish, French, German, Italian, Portuguese, Hindi, Japanese, Chinese, Arabic, Russian, Dutch or Indonesian, and Spanish, French, German, Portuguese, Hindi, Japanese, Chinese or Russian back into English. The picker lists each pair's first-run size, about 99 to 136 MB. Portuguese uses Xenova/opus-mt-en-ROMANCE (target token >>pt<<) and Xenova/opus-mt-ROMANCE-en, because there is no dedicated opus-mt-en-pt or opus-mt-pt-en export. English to Korean and English to Turkish are absent from the Xenova OPUS-MT set, so they are not in the list.
3. Translate on this device
Helsinki-NLP OPUS-MT, ONNX exports Xenova/opus-mt-… on the Hugging Face Hub. Licence is Apache-2.0, except English to German (opus-mt-en-de), Chinese to English (opus-mt-zh-en) and Russian to English (opus-mt-ru-en), which are CC-BY-4.0. Both allow commercial use. CC-BY asks for attribution, which this page gives by naming the model. Weights are quantized q8 and run with transformers.js on WebAssembly, which translates a batch of cues in well under a second. They download from the Hub once per pair into the browser cache. This site does not re-host them. The page uses OPUS-MT only. NLLB's licence does not allow this use.
4. Edit and download
Original and translation sit side by side. Fix a line, then download .srt or .vtt. Cue numbers and timestamps are the parsed ones. Lines over 42 characters are flagged, 16 for Japanese and Chinese, the same presets as the caption line length checker.
Questions
Does this upload my subtitle file?
No. The file is read and translated in this browser tab. The network request is the first-run download of the OPUS-MT weights from Hugging Face. After that, the pair is in the browser cache. The subtitle text is not part of that request.
Which model is it, and what is the licence?
Helsinki-NLP OPUS-MT (Marian), via the Xenova ONNX exports on the Hugging Face Hub, quantized q8. Most pairs are Apache-2.0. English to German (opus-mt-en-de), Chinese to English (opus-mt-zh-en) and Russian to English (opus-mt-ru-en) are CC-BY-4.0. Both allow commercial use. CC-BY asks you to credit Helsinki-NLP and the model name. This page uses OPUS-MT only. NLLB's licence does not allow this use.
Will the timings or cue numbers change?
The start and end of each cue stay put. Cue numbers follow the parsed order, 1, 2, 3, which is how the other subtitle tools on this site read a file. A block with no timing is skipped, and the remaining cues are numbered in order. Translation leaves every timestamp where it was.
How good is the translation?
Usable on clear, short dialogue. Names, slang, wordplay, and more than one language in the same cue can come out wrong. The model is a small Marian pair running one beam, so a desktop OPUS-MT run with beam search can be cleaner. Read every line before you publish. A film script still wants a person who knows both languages.
Why are some lines flagged after translation?
A translated line over 42 characters is flagged. Japanese and Chinese use 16. Those are the wide-screen and dense-script presets on the caption line length checker, counted in code points with tags included. The file still downloads. Edit the long lines, or open that checker for the full report.
Why is the first run a download, and why does it differ by language?
Each language pair is its own model. English to Japanese is 98,933,843 bytes (about 99 MB). English to Italian is 136,474,118 bytes (about 136 MB). The picker lists every pair: q8 encoder, q8 merged decoder, tokenizer and config. Switching language downloads that pair. The same pair on a later visit is read from the browser cache.
Are italic tags and line breaks kept?
Line breaks inside a cue are translated as separate lines and joined back. <i> and <b> stay around the words they wrapped. The SRT download keeps those two tags and drops WebVTT voice tags and ASS overrides, same as the VTT to SRT converter. The VTT download keeps the tags.
Related tools
Stay in the same job cluster. Free tools stay on-device; paid tools are labelled as such.
These rearrange files. Versely makes new ones.
Everything on this page works on a file you already have, which is why it costs nothing. Generating something that did not exist (video from a prompt, a voice, a score) runs a model, and that costs credits.