Transcribe a video and burn in subtitles, without uploading anything

Subtitle maker transcribes your footage in the browser, lets you fix the wording and the timings by hand, styles the captions the way you want them, and exports either a subtitle file or an MP4 with the captions burned into the picture. Speech recognition runs on your own machine using Whisper — the video is never uploaded, and there is no account, no watermark and no paid tier.

How it works

  1. Import a video. MP4, MOV, WebM, MKV and most other common containers are accepted.
  2. Transcribe it locally. Pick a language and a quality tier — Fast, Balanced or Best, which are Whisper tiny, base and small. The model downloads once and stays cached in the browser, so the second video costs nothing.
  3. Fix the lines. Edit any segment's text. Drag either edge of a word in the timeline to retime it; arrow keys nudge a focused edge by 10 ms and Shift+arrow by 50 ms. A, S and D jump to the previous, current and next segment, and space plays or pauses.
  4. Style the captions. Start from a preset, or set the family, weight, size, line height, letter spacing, maximum width, fill, outline and drop shadow yourself. Drag the caption anywhere on the frame.
  5. Export. Download an SRT, VTT or plain text file, or burn the captions into a new MP4.

Caption modes

Sentence shows a whole line at a time, the way a normal subtitle track does. Word shows one word at a time, which is the look short-form video uses. Progressive lays out the whole line and reveals each word as it is spoken, over one or two lines, so the text never reflows mid-sentence.

Any mode can accent the word currently being spoken, and the animation — a fill, a highlight pill, a pop, a bounce, a slide or a fade — is set separately from the mode.

Export formats

SRT and VTT are sidecar subtitle files: one cue per segment, timed from the words underneath it. SRT is what most players and video platforms accept; VTT is the format HTML5 video uses natively. Plain text is the transcript with the timings stripped, one line per segment.

MP4 burns the captions into the picture, so they survive anywhere a video plays and cannot be switched off. Burning in re-encodes the video and needs WebCodecs; the three sidecar formats do not, so they still work on browsers that cannot encode.

Your video never leaves your device

Transcription, editing and encoding all happen in the tab. The only thing fetched from the network is the speech model itself, and once it is cached the tool works offline. You can confirm it by loading the page, disconnecting, and transcribing anyway.

Questions

How accurate is the transcription?

It depends on the tier and on the audio. Best (Whisper small) is noticeably better on accented speech and background noise than Fast (Whisper tiny), and costs a larger download and a longer run. Whichever you pick, the transcript is editable — the tool assumes you will fix names and jargon by hand.

Why is the first run slow?

The model has to download before anything can be transcribed, and it is between about 40 MB and 1 GB depending on the tier and whether your browser has WebGPU. It is cached afterwards, so only the first video on a given browser pays for it.

Can I use my own subtitle file?

Not yet — the transcript comes from the audio. Export is one-way for now.

Does burning in reduce quality?

Burning in re-encodes the video, so there is some generational loss. The quality setting controls how much; Standard is fine for social platforms, which re-encode again anyway. If you want no loss at all, export an SRT instead and let the player draw the captions.