Generate SRT subtitles from a video

Timed SRT captions written from what is said in your video, by a speech model running in this tab.

Makes an SRT subtitle file, or WebVTT captions, from the speech in an MP4, MOV or WebM video (or an audio file) with Whisper, in 16 or more languages. It is free, needs no account and adds no watermark, and your files are not uploaded: only the soundtrack is read, and the speech model runs in your browser. The first run downloads the speech model (76 MB) and the engine that runs it, and after that it works offline.

Drop videos to captionor click to choose files. Batches welcome.
    Details

    Expect about two to three minutes of work for every ten minutes of sound on a laptop, longer on a phone.

    Working…

    Done

    Your files are processed on this device and never sent to a server. Reload the page to clear everything from memory.

    Most people watch social video with the sound off, and captions make a video usable for people who are deaf or hard of hearing. Typing and timing them by hand takes several times the length of the video. This page listens to the soundtrack, writes the words with their start and end times, and saves them as an SRT file, the subtitle format nearly every editor and platform accepts.

    A worked example: you have a 4-minute MOV from your phone of a product demo. Drop it here with Subtitles (.srt) already chosen. The soundtrack is pulled out in the tab, cut at pauses into pieces of up to 28 seconds, and each piece is transcribed and timed. You get a file such as demo.srt with a caption every few seconds. On YouTube, open the video in Studio, choose Subtitles, then Upload file, With timing. In Premiere Pro or DaVinci Resolve, import the SRT and drop it on a captions track above the clip. For VLC, give it the same name as the video and it loads automatically.

    Read the captions through before you publish: names, jargon and mumbled words are where speech models slip, and one wrong word in a caption is more visible than in a transcript. Any text editor can fix an SRT; each caption is a number, a time line and the words.

    How it works

    1. Drop the video; Subtitles (.srt) is already chosen.
    2. Pick the spoken language if detection gets it wrong, or choose Translate to English for English subtitles on a foreign-language video.
    3. Press Make subtitles, then upload or import the SRT next to your video.

    In your browser, not on a server

    Your browser’s own decoders read the sound, from an audio file or a video’s soundtrack, and it is resampled to 16 kHz mono in the tab. The recording is cut at pauses into pieces of up to 28 seconds, and each piece goes to OpenAI’s Whisper base model (MIT), 8-bit ONNX weights run by transformers.js (Apache-2.0) and onnxruntime-web (MIT) in a background worker. The model, 76 MB, is downloaded from this site on first use and cached. Its timed segments become paragraphs, SRT or WebVTT.

    Compared with upload-based tools: Online transcription services upload the recording to their servers, cap free minutes, and some keep your audio to train their models. Here the model runs on your device: nothing is uploaded, there is no minute limit beyond your device’s memory (phones hold less), and it works offline after the first run.

    Verify it yourself. Give the page a short while after your first run to save itself for offline use, then turn off Wi-Fi or switch to airplane mode and run the tool again. Or open your browser's developer tools (F12, or Cmd-Option-I on a Mac), pick the Network tab, and watch it while you convert. The panel above does the same count for you.

    Questions

    Does it burn the subtitles into the video?

    No. It makes a separate SRT file that players and platforms show as captions viewers can turn on or off. Keeping them separate also means you can correct a word without exporting the video again. To draw them into the picture instead, use Add subtitles to video.

    Can I get English subtitles for a video in another language?

    Yes: choose Translate to English. Whisper translates into English only, so for subtitles in other languages, transcribe in the spoken language instead.

    What about WebVTT?

    Choose Web captions (.vtt) for an HTML5 video element’s track, or for players that ask for WebVTT. The timing is the same; only the file format differs.

    Can I get plain text instead of subtitles?

    Yes. Choose Text (.txt) here, or use Video to text, which is set up for a recorded lecture or meeting and gives paragraphs rather than timed captions. The general transcribe tool offers all three formats.

    Can I burn the subtitles into the picture or add them to a video?

    Yes, with Add subtitles to video, which writes the words from the speech and draws them into every frame, or with Burn subtitles into video if you already have the SRT. Both save a new video.

    Can I generate subtitles from a video without uploading it?

    Yes. Only its soundtrack is read, in this tab, and the speech model runs on your device. Unreleased footage and private recordings stay with you.

    Which languages can it write subtitles in?

    The language menu lists English, Spanish, French, German, Italian, Portuguese, Dutch, Polish, Russian, Ukrainian, Turkish, Arabic, Hindi, Japanese, Korean and Chinese, or you can leave it on automatic detection. The speech model is small, so it is most accurate in English and makes more mistakes in other languages, especially on short or noisy clips; if the words come out wrong, choose the language yourself.

    Do I need an account, and is there a watermark?

    No account and no sign-up: open the page and drop a file. Nothing is added to your file, so there is no watermark or logo. It is free, and your files are not uploaded.

    More video and audio tools

    Other conversions

    Guides