Free · Open Source · 100% in your browser · No account to try · Free sign-in to burn

Free AI subtitle generator that runs in your browser

The open-source alternative to VEED and Kapwing. This subtitle generator transcribes, translates, styles and burns subtitles into any video for free — the video never leaves your machine.

It runs OpenAI's Whisper in this tab, then saves the subtitles as an .srt, .vtt, .ass or .txt file, or burns them into an MP4 with no watermark.

Looking for an existing subtitle file to download? See where to find subtitles.

Already playing in another tab? Subtitle it live: Add to Chrome Add to Firefox Add to Edge

Subtitle your video

Start with a video

Its speech becomes subtitles here, on this machine. Nothing is uploaded.

or drop one anywhere on this page

MP4, MOV, WebM and MKV. Free, no account to try; burning into a video takes a free sign-in. The speech model downloads once, when you generate.

What actually comes out.

Real output from the subtitle generator, on footage you can check for yourself — Tears of Steel, CC-BY, Blender Foundation. None of it was uploaded to make.

Eleven of the twelve presets, on one clip.
Word‑by‑word highlight, timed to the audio.
Original and translation on screen together.
Burned into the picture, exported as MP4.

How the subtitle generator works: four steps, none of them on a server.

The four steps above, in more detail. Every one of them runs on your own machine unless you explicitly choose otherwise.

Features

Transcribe the speech

The subtitle generator runs Whisper in your browser, on the GPU where your machine has one. Pick a model between 40 MB and 250 MB; it downloads once and is cached after that. Only the model is fetched — the audio stays put. More about transcribing a video to text and how Whisper runs in the browser.

Translate into 20 languages

Once the subtitle generator has written the lines, Chrome's built-in translation runs on your device at no cost. Bring your own Claude, OpenAI or DeepL key for better results on long dialogue, or use ours and pay in credits. How subtitle translation works

Style it, and see it

Twelve presets, from clean broadcast captions to bold social styles, each previewed over your own footage. Words can grow and glow as they are spoken.

Burn it into the video

Export a finished MP4 with the subtitles in the pixels, encoded in the browser with WebCodecs. Or take the .srt, .vtt or .ass and use them elsewhere. Burning takes a free sign-in; the subtitle files do not.

One subtitle generator, a page for each job.

Each of these pages walks through one task with the same subtitle generator, and says plainly what it will and will not do.

Add subtitles to a video

The subtitle generator writes them from the speech; fix any line, then burn them into an MP4 or save an .srt.

Caption generator

Captions written on your device by Whisper, exported as SRT, VTT, ASS or a captioned MP4.

SRT file generator

Drop a video into the subtitle generator and leave with a timed .srt made from its speech.

Add an SRT to an MP4

Burn an .srt you already have into the picture, used as it is, with no speech recognition.

Bilingual subtitles

The original line and its translation on screen together, burned in or exported.

Japanese to English subtitles

Whisper writes the Japanese from the audio, then it is translated to English, free on your device in Chrome.

Subtitle generator with no watermark

Nothing is stamped on the video: a burned MP4 carries only the subtitles you chose.

VEED and Kapwing alternative

What changes when the transcription, translation and burn all run in your browser instead of on a server.

A subtitle editor for the part the machine gets wrong.

Transcription in the subtitle generator is good, and it is not perfect. A name, a piece of jargon, a word swallowed by a passing lorry — those are the lines you will want to touch, and they are the ones this is built for. It edits the words and the timings. More on using it as a subtitle editor for .srt and .vtt files.

Type over it

Every cue the subtitle generator writes is a plain text box. Rewrite the wording, or press return inside it to split a line in two, and the captions over your video update as you go.

Hear the line you are fixing

The timestamp beside each cue is a button. Click it and the video jumps to that moment, which is faster than scrubbing for it and is usually the only way to tell what was actually said.

Bring a file you already have

The subtitle generator also opens an .srt or .vtt you already have, from a translator, an editor or another tool, so you can edit it here. If the characters arrive garbled, pick the file’s text encoding and it is read again. Saving it in another format is how to convert VTT to SRT or SRT to plain text.

Fix when a cue appears

Type a cue's start and end, or set either one from where the video is playing. Add a cue, delete one, split it into two or merge it with the next, and undo any step. Exports and the burned MP4 use the edited cues. There is no timeline to drag them on.

The same subtitle generator, in three other places.

The page above needs nothing installed. These do, and in return they do things a page cannot — subtitle a video already playing in a tab, or burn a two-hour file without a browser in the way. All of it is the same Rust engine, so the output is identical.

Free

Browser extension

Subtitles over whatever is playing in the tab, generated as it plays. Chrome, Edge and Firefox. In the Chrome Web Store, on Firefox Add-ons and in Edge Add-ons. More about the extension.

Add to Chrome Add to Firefox Add to Edge

Free

Desktop app

The subtitle generator on macOS, Windows and Linux, for long files. The macOS and Windows installers include ffmpeg; on Linux, install one built with the ass filter (libass). On Windows it is also on the Microsoft Store; the builds on GitHub are unsigned.

Get it from Microsoft Store Download

Free

Command line

The subtitle generator as a command-line tool: one command per file, for scripting and for CI. Same engine, same presets, same output. Build it from source; it needs an ffmpeg built with the ass filter (libass).

Read the source

AGPL-3.0-or-later

All of it, open

The engine, the web app, the extension, the desktop app and the command line are one repository. Read what runs on your machine rather than take this page's word for it.

View on GitHub

As of 24 October 2026 the desktop app is at version 1.0.5, a stable release. Entries marked pre-release on the releases page are release candidates.

“Private” here means there is no server to send it to.

Most online subtitle generators upload your video, process it, and promise to delete it. OpenSubs is a subtitle generator built the other way round.

Free, and open source. The code that touches your video is on GitHub under the AGPL-3.0-or-later — so the paragraph above is something you can check, not something you have to believe.

The full details are in the privacy policy; the Windows desktop app has its own.

The video never moves

It is read through an object URL and decoded by your browser. There is no upload endpoint in this subtitle generator, so a footage leak is not something we have to promise against — it is not possible.

What can leave, and only if you ask

Subtitle text, if you pick a cloud translator. Or the audio span you trimmed, if you pick cloud transcription. The subtitle generator’s on-device options send none of your text or audio anywhere, and they are the defaults.

Your key stays in the tab

Bring your own API key and it is used from your browser and never stored, never sent to us, and never written to disk.

Subtitles, free from start to finish. Pay only if you want a more natural translation.

Transcribing, translating, styling, burning and exporting are all free. Anything that costs money shows its price before it starts.

Credits
$5  for 1,000 credits
  • Cloud translation: more natural wording, more coherent over long dialogue
  • No translation model to download, and no need for a fast computer
  • No key and no account with anyone else
  • The price is shown before you run a job, and that is what you pay: about 1 credit per 30 subtitle lines, so $5 translates about 30,000
  • Credits never expire, and a failed job costs nothing

Before you start.

Is my video uploaded anywhere?

No, and not because we promise not to: there is no upload endpoint in the product. OpenSubs reads the file directly in your browser, and transcription, styling, translation on your device and burning all run on your own machine. You can check it rather than take it on trust — open the Network tab and subtitle a video: you will see the app's own files loading from opensubs.app or your browser's cache, the speech model from Hugging Face the first time, and no request carrying your video or its audio. The only parts of your work that can ever leave your machine are subtitle text or audio, and only if you choose a cloud option.

Is my API key saved?

No. An API key you enter to use your own provider is held only in the page's memory. It is never written to localStorage, sessionStorage, IndexedDB or cookies, and your browser sends it directly to the provider you picked — OpenAI or another OpenAI-compatible server, Anthropic or DeepL — without passing through OpenSubs servers. Reloading or closing the tab clears it, so you enter it again next time.

Do I need an account to use OpenSubs?

Not to try the subtitle generator. Transcription, translation on your device, styling, trimming and subtitle files (.srt, .vtt, .ass, .txt) work without signing in. Burning subtitles into a video takes a free sign-in, and paying for cloud translation on our backend needs an account too. Your video is never uploaded either way.

How do I add subtitles to a video for free?

Drop the video into the subtitle generator at the top of this page and it writes subtitles from the audio. Whisper runs on your machine, so nothing is uploaded and nothing is charged. Correct any line by editing its text, pick a style, then export the subtitles as .srt, .vtt or .ass, or burn them into an MP4. No account to try and no watermark; burning an MP4 takes a free sign-in. Step by step: add subtitles to a video.

How does OpenSubs generate subtitles from speech?

The subtitle generator runs OpenAI's Whisper locally — ONNX weights driven by transformers.js, on WebGPU where the machine has it and on WebAssembly otherwise. Three model sizes are offered: Tiny (English only, about 40 MB), Base (about 80 MB) and Small (about 250 MB). The model downloads once and is then cached by the browser; only the model is fetched, never the audio. The spoken language is detected every four seconds rather than once per file, so a video that switches between two languages comes out as one subtitle file containing both.

Can OpenSubs burn subtitles into the video file itself?

Yes, after a free sign-in. The subtitle generator renders them with libass — the same renderer ffmpeg uses — compiled to WebAssembly, and encodes them back into an MP4 using WebCodecs. What you see in the preview is what ends up in the pixels, and the audio is copied through untouched.

What does OpenSubs cost?

Everything the subtitle generator does on your machine is free: transcription, translation on your device, all 12 subtitle styles, word-by-word highlighting, trimming, burning into MP4 and every export format. There is no watermark, no file-size limit and no queue — none of those exist here because there is no server paying for the work. The one paid option is translation on our own backend, at $5 for 1,000 credits, with the price of a job shown before you run it and a failed job costing nothing.

Does it add a watermark?

No. This subtitle generator adds nothing to your video: a burned MP4 carries only the subtitles you chose, and the exported .srt, .vtt and .ass files are plain subtitle files. That is because the work runs in your browser rather than on a server someone has to pay for.

Which languages can OpenSubs translate subtitles into?

Twenty, including Simplified and Traditional Chinese, Japanese, Korean, Spanish, Portuguese, French, German, Italian, Russian, Arabic, Hindi, Indonesian, Thai, Vietnamese, Turkish, Polish, Dutch and Ukrainian. Fonts for non-Latin scripts are bundled, so Chinese and Arabic subtitles burn correctly instead of coming out as empty boxes.

Does OpenSubs work offline?

Not entirely. OpenSubs needs a connection to open. Once the page is open and the speech model has downloaded, transcribing and editing subtitles keep working if your connection drops, and the model stays cached in your browser for next time. Translating on your device uses Chrome's built-in translation models, which are also downloaded once. Burning subtitles into a video needs a connection.

Is OpenSubs open source?

Yes. The subtitle generator is open source, under the AGPL-3.0-or-later. The same engine — cue segmentation, line breaking, reading-speed limits, the style presets, the ASS writer — is compiled to WebAssembly for the browser and to a native binary for the desktop app and command-line tool, so all three produce identical output.

How do I add captions to a video?

Drop the video into the subtitle generator on this page. The speech is written down in the tab, you correct any line that came out wrong, pick a style, and then either burn the captions into the picture or export them as a file to send alongside. Nothing is uploaded and there is no watermark; burning the captions in takes a free sign-in. The longer version, with the two ways a platform will take captions, is in how to add captions to a video; the caption generator page walks through it step by step.

Can it generate an SRT file from a video?

Yes, and that is the usual way to leave the subtitle generator with one. Once the subtitles are written and corrected, export .srt, .vtt or .ass. An .srt is a plain text file holding a line number, a start and end time, and the words — anything that takes subtitles will read it. Step by step: the SRT file generator.

Is there a free AI subtitle generator that makes an SRT file?

Yes. This subtitle generator is free and makes an .srt from a video's speech: choose a video, generate the subtitles from the audio, correct any line, then export .srt. Whisper runs in your browser, so the video is not uploaded, and saving the .srt needs no account. The same subtitle generator also saves .vtt, .ass and .txt.

How accurate is the subtitle generator?

As accurate as Whisper at the model size you pick. On three single-language clips of synthesised speech, measured on 2026-09-09, the Base model (about 80 MB) had a 7.7% word error rate in English and character error rates of 3.4% in Chinese and 4.3% in Japanese; the Small model (about 250 MB) had 0.0%, 1.7% and 4.3%. Those clips have no accent, music or room noise, so they are a floor: real footage scores worse, which is why every line can be corrected before you export.

Can I edit the timings as well as the words?

Yes. In the subtitle generator on this page each cue's start and end time can be typed or set from the current playback position. A cue has to start before it ends, cannot overlap the cues beside it and cannot run past the end of the video. Cues can also be added, deleted, split and merged, and every step can be undone. Exports and the burned MP4 use the edited cues. There is no timeline to drag them on, and the phone apps get this in a later store update.

Is there a browser extension?

Yes. It takes the subtitle generator to whatever is playing in the tab: subtitles generated as it plays, in Chrome, Edge and Firefox. It is in the Chrome Web Store, on Firefox Add-ons and in Edge Add-ons, and it is free.

What do I need to run it?

The subtitle generator needs a browser with WebAssembly: Chrome, Edge, Safari or Firefox. WebGPU makes transcription faster but is not required. The speech model is downloaded once, about 40 to 250 MB depending on the size you pick, and then cached by the browser. iOS 17 Safari cannot run the recogniser; iOS 26 works.

How do I get in touch or report a problem?

Email hello@opensubs.app.

Worth reading first.

What the formats are for, which output a given platform will take, and how to write captions somebody can follow — what to know before you export from the subtitle generator.

Captions vs subtitles

Captions carry the sounds as well as the words; subtitles put the speech into another language. Which one you are being asked for.

SRT to VTT, and back

What actually changes between the two formats, with an example, and how to convert a file here without uploading it.

SRT, VTT and ASS

The same subtitle written in all three, and which one each player and platform will accept.

Adding captions to a video

Three ways to do it — type them yourself, let the platform try, or generate them on your own machine — and what each one costs you.

Subtitles on an MP4

Keep them in a separate .srt or draw them into the picture. What each choice means for players and for later edits.

Reels and TikTok

Neither takes a subtitle file, so the text has to be in the picture. How to generate, style and burn it in.

Word-by-word captions

Karaoke-style captions that light up one word at a time: when they help, and how to make them from your own video in the subtitle generator.

Every guide is on the blog.

Back to the editor