How to Add Subtitles to a Video in Your Browser | Free, No Install, No Upload

Created onSeptember 17, 2026 at 8:41 AM
thumbnail Image

Videos on social media are often played with the sound off, so a clip without subtitles tends to be scrolled past before it says anything. Writing those subtitles by hand is another matter entirely: you listen, you type, and then you line up the start and end of every caption to the second.

Adding subtitles to a video breaks into two jobs. First you turn the speech into text and produce a subtitle file, then you put that file onto the video itself. The first is transcription and the second is the actual subtitling.

Both jobs are usually assumed to require either installing an editor or uploading the video to a cloud service, and since I wanted to avoid both, I built tools that do the whole thing inside the browser.

This article walks through both of them, from transcription to burned-in subtitles, together with the processing times I measured myself.

  • What you need: the video file, and a browser with WebGPU support
  • What you do not need: an install, an account, an upload, or a payment

The two jobs, and the tools for them 

There are three common ways to get subtitles onto a video: a cloud transcription service paired with a video editor, a command-line tool such as ffmpeg, or something that runs entirely in the browser.


Cloud + editor

ffmpeg

In the browser (this article)

Install

Editor required

Required

None

File upload

Sent to the cloud

Stays local

Stays local

Cost

Per use or monthly

Free

Free

Time or count limits

Depends on the plan

None

None

What you must learn

The editor

Commands and flags

Almost nothing

I used to run Whisper locally through Python, and the accuracy was never the problem. What wore me down was that every change of machine meant another round of GPU drivers and dependencies, so it was never something I could reach for on a whim. I looked at paid cloud services and the official OpenAI API too, but the per-use cost and the fact that the audio leaves my machine both stopped me. Wanting to avoid those two things is exactly why I still do this inside the browser.

The two tools below are both ones I build and run myself.

  • Transcription: Transcriber (transcriber.tools.ryusei.io)
  • Subtitling: "Burn subtitles into video" on Media Tools (media.tools.ryusei.io)

Everything happens inside the browser in both of them, so neither the video nor the audio is ever sent anywhere, including to my own server.

What you need 

  • The video file you want subtitles on (MP4, MOV, WebM, MKV and so on)
  • A current version of Chrome or Edge
  • 8 GB of memory or more is comfortable

The browser has to support WebGPU, and both Chrome and Edge handle it without trouble. On a Mac, open Chrome or Edge rather than the built-in Safari.

Step 1: Transcribe the video and export an SRT 

First you turn the speech into text and get a subtitle file (SRT). There is no need to extract the audio beforehand; hand it the video file and only the audio track inside is used.

  1. Open Transcriber in your browser.
  2. Pick a "Model" (covered below).
  3. Set "Language" to the language spoken in the video. Auto-detection works, but naming it explicitly is more stable when you already know.
  4. Turn "Speaker diarization" off. Left on, every line of the exported SRT is prefixed with a speaker name such as "Speaker A: ", and that prefix gets burned into the video along with the rest.
  5. Drag and drop the video file. There is no start button: transcription begins the moment the file is loaded, so make your settings first. Only the first time you use a given model is there a download to wait through.
  6. Correct the result on screen (covered below).
  7. Export it as "SRT (subtitles)" from the export row.
Transcriber with Whisper Large v3 Turbo selected as the model and speaker diarization switched off

Which model to pick 

Whisper comes in several sizes and Transcriber offers six of them. The common assumption is that a bigger model buys accuracy at the cost of speed. Measured, it turns out not to work that way.

Here are the numbers for a 4 minute 8 second, 51.9 MB video, transcribed in Chrome on a Windows machine with a GeForce RTX 2060 SUPER (8 GB). Every run used WebGPU.

Model

Size

Time

vs. real time

Small

about 600 MB

0m 35s

about 7.1x

Medium

about 900 MB

1m 22s

about 3.0x

Large v3 Turbo

about 1.2 GB

0m 37s

about 6.7x

Large v3

about 1.6 GB

0m 52s

about 4.8x

The slowest was not the largest model but the middle one. Large v3 Turbo came in more than twice as fast as Medium and nearly matched the smallest model, Small. That is because Large v3 Turbo keeps the same encoder as Large v3, the part that analyses the audio, and shrinks only the decoder that assembles the text.

At least across what I measured, there was no reason left to pick Medium. I use Large v3 Turbo, and Small is the practical choice on anything without WebGPU.

Names and other proper nouns still come out wrong even on Large v3, and changing models does not meaningfully help, so correcting the text yourself is faster than chasing accuracy.

Fixing misheard words and hallucinations 

Two kinds of errors are worth going after. The first is the misheard proper noun, which you catch by reading. The second is hallucination: a sentence that was never spoken. In my own run, stretches with only music produced "Please subscribe to the channel." and "Thank you for watching." in exactly the same places no matter which model I used. Whisper was trained on a great deal of video audio, which is why silence and music are where this shows up.

Both can be fixed on the result screen before you export anything. When the same word is wrong in several places, "Find & replace" is the quickest route: matches are highlighted, and you can work through them one at a time with "Replace this one" or clear them in a single pass with "Replace all". Names and product names, which tend to recur, are dealt with in one go.

The "Find & replace" panel open on the transcription result, with matches highlighted and a replacement ready

To edit a single line, hover over it and use the pencil icon. You can rewrite the text in place, and you can also split an overly long line in two, which is useful when a caption would otherwise run past the width of the screen. Deleting the text of a hallucinated line here removes it from the exported SRT as well, and every edit can be undone.

If you do leave speaker diarization on, you can click a speaker label to name it, merge two speakers that were split by mistake, or reassign an individual line. For subtitles you can leave it off, but for meeting minutes and interviews this is the part you want.

Step 2: Put the SRT onto the video 

With the subtitle file in hand, the next job is putting it onto the video, and for that I use "Burn subtitles into video" on Media Tools.

  1. Open the tool page.
  2. Load the video file.
  3. Choose the SRT you saved in step 1 under "Subtitle file (SRT / WebVTT)".
  4. Pick "Burn into the picture" or "Add as a subtitle track" under "How to embed" (covered below).
  5. Adjust position, text size, color and legibility as needed.
  6. Run it, and the subtitled video is written out.
The settings panel of the subtitle burn-in tool, showing how to embed, position, text size, color, legibility, quality and format

WebVTT is accepted alongside SRT, and the character encoding is detected automatically, covering UTF-8 as well as Shift_JIS, which is still common in Japanese subtitle files.

Burned in, or a subtitle track? 

There are two ways to attach the subtitles: drawing the text into the picture itself, known as burning in or a hardsub, or shipping the subtitles alongside the video as a separate track, known as a softsub.


Burned in

Subtitle track

Can be toggled off

No

Yes

On social media

Shows

Does not show

iPhone default player

Shows

Does not show

Output format

Same as the input

MKV only

Re-encoding

Required

Not needed

Here is what the same 4 minute 8 second, 51.9 MB video produced with each of them.

Method

Time

Output size

Burned in

125.4 s

115.2 MB

Subtitle track

0.35 s

51.9 MB

The subtitle track copies the video and audio through untouched and simply packs the subtitles alongside them, which is why it finishes instantly. It can only be written as MKV, though, and the subtitles appear neither when posted to social media nor when played on an iPhone.

For anything going onto social media, burning in is the only real option. A subtitle track suits video you watch on your own PC or in a player like VLC, where being able to switch the subtitles off has value.

Position, size, color and legibility 

The defaults read well on most footage, but here is what to change when they do not.

Setting

Default

When to change it

Position

Bottom

Move it to "Top" when the footage already has text along the bottom

Text size

4.5% of video height

Raise it to 5-6% when the video will be watched on a phone

Text color

White (#ffffff)

Yellow reads better over consistently bright footage

Legibility

Black outline

Use "Translucent bar" when the background swings between light and dark

I leave "Black outline" as it is, because an outline around the glyphs keeps them readable whether the background behind them is bright or dark.

When something goes wrong 

Four things trip people up along the way. I know about them either first-hand or from the errors that show up in my processing statistics.

The text is garbled 

UTF-8 and Shift_JIS are detected automatically, but nothing else is, so a file in an encoding such as EUC-JP has to be re-saved as UTF-8 in a text editor before it will load correctly.

The subtitles are out of sync 

The tool uses the timestamps in the SRT exactly as written, so trimming the head off the video after transcribing shifts every caption early by that amount. Trim before you add subtitles, or rewrite the timestamps in the SRT.

The file gets bigger 

Burning in draws the text into the picture and then re-encodes, so the result can be larger than the original; in my measurement a 51.9 MB video came out at 115.2 MB. The output bitrate is derived from the "Quality" setting rather than from the source video, which is why a well-compressed original shows the biggest jump. Drop "Quality" one step, or run the result through a video compression tool afterwards.

Processing stalls 

Large videos can run the browser out of memory, so close the other tabs and try again, or split the video before processing it.

Frequently asked questions 

Is all of this really free?

It is. Neither tool has a usage cap, a time limit, or a paid tier.

Do I need an account?

No account is needed. Both tools work by opening the page and loading a file, so you never even enter an email address.

Is my video or audio uploaded anywhere?

It is not. Transcription, subtitle rendering and re-encoding all happen inside the browser, so the only network traffic is the one-time download of the AI model used for transcription.

Is there a limit on video length?

Nothing in the design imposes one. Longer videos take more time and memory, though, so the practical limit comes down to your PC.

Can I do this on a phone?

Transcription runs on a phone with one of the smaller models, but burning in subtitles is heavy enough that a PC is the better choice.

Can I use this on commercial video?

You can. I place no restrictions on what you do with the files you export.

Summary 

Adding subtitles to a video splits into transcription and subtitling, and both can be done entirely inside the browser, which means no install, no upload and no payment.

  • Load the video into Transcriber and transcribe it with Large v3 Turbo
  • Fix the misheard words and hallucinations in the exported SRT
  • Load the SRT into Media Tools and burn the subtitles into the video
  • Burn in for social media, or use a subtitle track when you want them to be switchable
Free Unlimited AI Transcription | No Sign-Up, No Upload - Transcriber

Transcribe audio and video files in your browser. No account, no upload, and your audio never leaves your device. Completely free with no time or usage limits.

favicontranscriber.tools.ryusei.io
Burn SRT Subtitles Into Video — Hardsub in Your Browser, No Upload | Media Tools

Burn SRT or WebVTT subtitles into your video so they show even where subtitle files are not supported. Position, size, color and outline are configurable. Processed in the browser; your video is never sent anywhere.

faviconmedia.tools.ryusei.io
How to Transcribe X Space Recordings | Free, No Sign-Up, No Upload | Ryusei.IO

How to turn a recorded X (formerly Twitter) Space into text for free. From downloading the recording to separating speakers and exporting subtitle files, everything runs in the browser with no account and no install.

faviconryusei.io

Latest Tips