Hard Subtitle Extractor

Everything runs on this device: the video is never uploaded, never written to browser storage, and released when processing ends.

About this tool

Hard subtitles are burned into the pixels of the video: players cannot turn them off and there is no subtitle track to extract. This tool scans the subtitle area of the picture frame by frame, entirely in your browser, and turns each line into text with its real on-screen timing. You frame the subtitle area first (bottom of the picture by default, draggable and resizable), then classic image processing locates where lines appear and disappear, and the OCR model only runs once per spoken line instead of once per frame — which is why it is far faster than naive frame-by-frame OCR. Results appear as an editable list: search it, fix text in place, delete lines, merge two fragments of the same sentence, and click a timestamp to jump back and check the picture. Select several videos at once and they are processed in a queue, each producing its own subtitle file. Switch between a fast Tiny model and a slower high-accuracy one, choose the scan density, or use the eyedropper to pick the subtitle colour when a bright background defeats plain brightness thresholding. Export SRT / VTT / TXT / JSON, or zip the results of several videos. Everything runs on your device: the video is only referenced in memory for decoding, never written to browser storage, and never uploaded.

How to use
  1. Drop a video in, or click to choose one (several at once works; MP4 container with H.264 / H.265).
  2. Adjust the dashed OCR area on the preview so it frames the subtitles (it already sits at the bottom by default).
  3. Tune if needed: use the eyedropper to switch to colour mode when a bright background interferes, switch to the fast scan for long videos, or pick the high-accuracy model if text comes out wrong.
  4. Click “Extract subtitles” and wait for the frame scan and recognition to finish.
  5. Review and edit the lines in the list — click a timestamp to jump back and compare with the picture.
  6. Export SRT / VTT / TXT / JSON, or download everything as a single ZIP when several videos are done.
What is the difference between hard and soft subtitles?

Soft subtitles live in a separate track: a player can turn them off and you can extract them directly. Hard subtitles are burned into the picture, cannot be turned off, and can only be recovered with image recognition — that is what this tool does. If your file has a soft subtitle track, a normal subtitle extractor is enough and no OCR is needed.

Is my video uploaded, or stored in the browser?

Neither. The video is only referenced in memory while it is being decoded, is never written to IndexedDB, OPFS or any other browser storage, and is released as soon as processing finishes. No request ever sends your video or subtitle text anywhere. Until you click export, the results exist only in the memory of this page.

Which formats are supported?

MP4 container with H.264 or H.265 (.mp4 / .m4v) for now. MKV, AVI and WebM are not supported yet and will show a message. A recent Chrome or Edge gives the most reliable experience.

The text comes out wrong — what can I do?

First check that the OCR area only frames the subtitles. Then try colour mode with the eyedropper on the subtitle colour, which copes much better with bright or busy backgrounds. If it is still off, switch to the high-accuracy model — the first run downloads about 20 MB and it is slower. Text can also be corrected directly in the list, and fragments of one sentence can be merged.

Why does one video take tens of seconds or longer?

To get accurate in/out timings the tool scans the subtitle area at the real frame rate. Browsers cannot decode only part of a picture, so decoding itself is the main cost: the longer and sharper the video, the slower it gets. Switch the scan density to fast if you need a quick draft.

Can it handle variety-show captions or lyrics flying all over the screen?

No. Those change position and style constantly and would need full-frame text detection with multi-object tracking, which is not reliable enough in a browser. This tool targets subtitles in a fairly stable position — bottom subtitles above all.

How accurate is the timing?

Timings come from the presentation timestamps of the video frames themselves, not from estimated sampling points. The accurate mode decides per frame, so boundaries are within about 0.2 s; the fast mode analyses every other frame, around 0.5 s.