Esc
↑ ↓ to moveEnter to openEsc to close

Automatic subtitles, no watermark

Subtitle generator, automatic subtitles you can fix

Make subtitles for a video automatically: a speech AI writes the words with their timings from a sound-only copy of the video, the tool splits them into lines that are easy to read, an AI cleans up punctuation and filler words, and you fix any word before you save. 3 minutes a day is free, 10 minutes when you sign in; the video never leaves your device.

Your video stays on your device. Typing, pasting or opening captions, every style and saving the new video happen in your browser. Auto captions send a sound-only copy, then its words for a clean-up, and only when you press Make captions.

How to make subtitles for a video automatically

  1. Choose the video

    Tap Choose a video and pick an MP4, MOV, WebM or MKV file, or drop it on the box.

  2. Make the subtitles

    Leave the language on Detect automatically or choose it, then press Make captions. The subtitles come back timed to the speech.

  3. Fix and style

    Fix any word, check the lines marked Check this line, and pick a style if you want them on the video.

  4. Save

    Save an SRT or VTT file to upload with your video, or save a new MP4 with the subtitles burned in.

Already have a subtitle file, or want only the text? Add subtitles to a video or Video to text.

What is sent, and what stays on your device

Your video is opened on your device and stays there. When you press Make captions, your browser makes a sound-only copy (one channel, compressed, without the file name or any tags) and sends it through uncrop.si to an outside speech AI service, which sends back the words and when each one is spoken. The words that come back (never the sound) then go through uncrop.si to an outside AI service for a clean-up of punctuation and filler words. The picture is never sent. We keep neither the sound nor the words; the speech service keeps nothing after it replies, and the clean-up service keeps requests only for a limited time for safety checks.

Subtitles that are easy to read

Speech AI hears words, not subtitles, so the tool builds the subtitles itself: at most two lines of 42 characters each, at least a second on screen, a new subtitle at the end of a sentence or at a pause, and it avoids ending a line on a word like "the" or "of". Those are the rules most subtitle style guides use, such as Netflix's for English (Netflix).

The timing comes from your video's sound: each subtitle starts as the voice starts (within a fifth of a second for nearly every line in our English tests), and leaves the screen soon after the speech ends, a little later when the next subtitle allows, so there is time to read it.

SRT or VTT, or burned into the video

FileWhat it holdsUse it for
SRT (.srt)Numbered captions, each with a start and end timeYouTube, Facebook, video editors and most players. YouTube takes .srt and .vtt caption files (YouTube Help)
VTT (.vtt)The web's caption format: the same captions with WebVTT timingsWeb players and the HTML video element (W3C)
TXT (.txt)The words as plain text, with or without timesNotes, articles, show notes, quotes and search

A file keeps the subtitles separate, so viewers can turn them on and off. Burning them in draws them onto every frame of a new MP4, on your device, so they show everywhere, including apps that do not take subtitle files.

Languages and translation

The speech AI understands many languages and detects which one is spoken. We tested it in English, Spanish, Portuguese, French, German, Arabic, Hindi and Japanese. Choosing the language before you start helps with short clips and with punctuation.

To subtitle in another language, make the subtitles, then press Translate and pick one of 37 languages. The translation keeps every subtitle's timing. It is one of your free AI runs: 5 a day, 15 when you sign in.

Free every day

Each day you get 3 minutes of automatic subtitles free, or 10 minutes when you sign in with Google, counted by the second, while the day's free pool for everyone lasts. Typing subtitles yourself, opening an SRT or VTT file, every style and saving the video have no limit and add no watermark.

Questions

Is this subtitle generator free?

Yes: 3 minutes of automatic subtitles a day, 10 minutes when you sign in, while the day's free pool for everyone lasts. Editing, styling and saving have no limit and no watermark.

Is my video uploaded?

No. The video stays on your device. When you press Make captions, a sound-only copy is sent to a speech AI service, then its words to an AI service for a clean-up. We keep neither, and the speech service keeps nothing after it replies.

Can I edit the subtitles?

Yes. Every line can be changed, split, merged or moved, and lines the speech AI was unsure about are marked so you can check them first.

Which subtitle files can I save?

SRT and VTT, which YouTube and most players take, and TXT for the text alone.

Can I translate the subtitles?

Yes, into 37 languages, keeping every subtitle's timing. Each translation counts as one free AI run (5 a day, 15 signed in).

Does it add a watermark?

No. Neither the subtitle files nor a video with burned-in subtitles carry a watermark.

Does it work in any language?

It understands many languages and detects which one is spoken. We tested English, Spanish, Portuguese, French, German, Arabic, Hindi and Japanese.

Sources: YouTube Help, Supported subtitle and closed caption files, W3C, WebVTT: The Web Video Text Tracks Format, Netflix Partner Help, English (USA) Timed Text Style Guide, caniuse, WebCodecs API

Open-source code and fonts this tool runs on your device: Mediabunny (MPL-2.0), unmodified, reads and writes the video and audio files; Noto fonts (OFL-1.1), Noto Sans Devanagari, Arabic, Thai and CJK and Noto Emoji, downloaded from uncrop.si only when your captions use a writing system your device has no font for; LAME (LGPL, source at SourceForge), the MP3 encoder (version 3.100) that makes the sound-only copy for auto captions in Safari and in browsers that cannot make an Opus one, built without its decoder for the browser by @mediabunny/mp3-encoder (MPL-2.0) and loaded only then.

See all tools