How to save embedded subtitles from a downloaded video
- Step 1Drop the downloaded video onto the extractor — Drag the file you saved —
.mkv,.mp4,.webm,.mov,.ts— onto the tool. One file at a time. FFmpeg.wasm reads it locally; nothing is uploaded. - Step 2No options to configure — The panel reads No options — JAD reads the embedded tracks and exports them. JAD scans subtitle streams
0:s:0–0:s:4automatically; there is no track picker. - Step 3JAD converts each text track to SRT — Each text track is converted to SubRip with
-c:s srt, preserving cue timing. ASS styling, if present, is flattened. Bitmap and burned-in subtitles are not recovered. - Step 4Save the .srt (or ZIP) to disk — A single text track saves as
<name>.srt. Multiple tracks save as<name>-subtitles.zipcontaining one.srtper track. Extract the ZIP for each language file. - Step 5Pair the SRT with the video for offline playback — Most desktop players (VLC, MPV) auto-load a sidecar SRT with the same base name. Rename
track-1.srtto match the video file (e.g.talk.srtnext totalk.mp4) and the player picks it up. - Step 6Re-time or re-encode if needed — If the saved captions drift against your copy, nudge them in a subtitle editor. To embed them permanently, use the subtitle burner. The extractor never alters your downloaded file.
Will my downloaded file have extractable subtitles?
Whether subtitles survive depends on how the download stored them.
| How the download carries subs | Extractable here? | What to do |
|---|---|---|
Embedded soft text track (mov_text/subrip/ass/webvtt) | Yes → .srt | Drop it in — JAD converts every text track |
| Multiple embedded language tracks | Yes → ZIP | Get one .srt per track, numbered by order |
| Burned-in (hardsub) captions | No | Pixels, not a stream — needs OCR on frames |
| Image-based (PGS/VobSub) track | No | Bitmap — OCR to text first |
Separate sidecar .srt/.vtt already downloaded | N/A | Already a text file — no extraction needed |
| No subtitle stream in the download | No | Captions were never embedded — nothing to save |
Output shape
Up to five text streams are scanned; output depends on how many produced subtitles.
| Text tracks found | Output | Names |
|---|---|---|
| 1 | Single .srt | <name>.srt |
| 2–5 | ZIP | <name>-track-1.srt … <name>-track-N.srt |
| 0 text | Error | No text subtitle tracks found in this video. |
| 6+ | First 5 only | Streams beyond index 4 not scanned |
Tier limits
Long offline files are bounded by size, not minutes.
| Tier | Max file size | Files at once |
|---|---|---|
| Free | 1 GB | 1 |
| Pro | 10 GB | 5 |
| Pro-media | 100 GB | 50 |
| Developer | 100 GB | Unlimited |
Cookbook
Real offline-recovery scenarios from downloaded files.
Downloaded course MKV with two language tracks
An offline course module came as an MKV with English and Spanish subtitle tracks. Save both as SRTs to study offline and re-time as needed.
Input: module-04.mkv 0:s:0 subrip (eng) 0:s:1 subrip (spa) Output: module-04-subtitles.zip module-04-track-1.srt → rename module-04.srt (sits next to the video) module-04-track-2.srt → module-04.es.srt
Saved conference talk MP4 → single SRT for offline search
A talk you downloaded carries one mov_text caption track. Saving it as SRT lets you search the transcript and jump to timestamps offline.
Input: keynote-2026.mp4 0:s:0 mov_text (eng) Output: keynote-2026.srt → open in any editor, Ctrl+F "roadmap" to find the timestamp.
Download with burned-in subs → nothing to save
A clip where the captions are baked into the picture. There is no subtitle stream, so the extractor returns the no-text error.
Input: social-clip.mp4 (captions visible, baked in)
0:v:0 h264 ← captions are part of these frames
(no 0:s stream)
Result: No text subtitle tracks found in this video.
Note: the captions are part of the picture; only OCR on frames
could recover them as text.Pairing the saved SRT with the video in VLC
Players auto-load a sidecar SRT when its base name matches the video. Rename the extracted track so the player picks it up automatically.
Files in the same folder: talk.mp4 talk.srt ← renamed from talk-track-1.srt VLC / MPV auto-load talk.srt when you open talk.mp4. For a second language: talk.es.srt (selectable in the player).
Fixing a 0.5s drift on the saved captions
The saved SRT lagged the video slightly. The extractor preserves source timing exactly; shift the whole file in a subtitle editor.
Saved cue (lags ~0.5s vs your copy): 14 00:05:10,500 --> 00:05:13,000 Let's look at the architecture. After a -0.5s global shift in Subtitle Edit: 14 00:05:10,000 --> 00:05:12,500 Let's look at the architecture.
Edge cases and what actually happens
The download has burned-in subtitles
Not extractableIf the captions are visible but can't be turned off in a player, they were burned into the picture before you downloaded the file. There is no subtitle stream to demux, so the extractor returns the no-text error. Only OCR on rendered frames could recover them as text.
The downloaded file has no subtitle stream
No text tracksMany downloads carry no embedded subtitles at all — the captions may have been a separate sidecar file or never included. The first 0:s:0 map fails and you get No text subtitle tracks found in this video. There is nothing to save.
Subtitles are image-based (PGS/VobSub)
SkippedA download muxed with bitmap subtitles can't convert to SRT text — -c:s srt fails for those tracks and they're skipped. If they're the only subtitle tracks, you get the no-text error. OCR them with a desktop subtitle tool first.
Saved captions drift against your copy
Re-time neededIf the download was a slightly different cut or framerate than the captions were authored against, the saved SRT may drift. The extractor preserves the embedded timing exactly; apply a global shift or framerate conversion in a subtitle editor like Subtitle Edit.
Garbled accents in the saved SRT
Source encodingAn embedded track authored in Windows-1252 / Latin-1 can show mojibake. JAD writes the SRT as FFmpeg decodes it and has no force-UTF-8 toggle. Re-save the .srt as UTF-8 in a text editor to fix the accents.
More than five subtitle tracks
First 5 onlyThe extractor scans up to five subtitle streams. A heavily-subtitled download with six or more language tracks returns only the first five. Remux to reorder the wanted track into the first five, then re-extract.
Player still won't show the sidecar SRT
NamingPlayers auto-load a sidecar only when its base name matches the video (e.g. talk.srt next to talk.mp4). The extractor names multi-track output track-N.srt; rename it to match the video file, or load it manually in the player.
Download exceeds your tier cap
413 Too largeFree caps at 1 GB per file. A long high-bitrate download can exceed that even though the subtitle text is tiny — the whole file must be read into the browser. Upgrade to Pro (10 GB) or higher, or trim with the lossless trimmer first.
Frequently asked questions
Can I save subtitles from a video I downloaded for offline use?
Yes — if the download has embedded soft text subtitle tracks (common in MKV downloads with multiple languages). JAD demuxes them in your browser and saves each as .srt. Subtitles burned into the picture or stored as bitmap images cannot be saved as text.
Does saving subtitles re-download or re-upload the video?
No. The extractor reads the file you already have, entirely in your browser via FFmpeg.wasm. Nothing is downloaded again and nothing is uploaded — the SRT is generated locally on your machine.
How do I get a multi-language download's subtitles?
Drop the file in; JAD returns a ZIP with one .srt per text track, numbered by stream order. Open each to identify the language and rename them (e.g. talk.en.srt, talk.es.srt) for offline player use.
How do I make my offline player show the saved subtitles?
Rename the SRT so its base name matches the video file (e.g. talk.srt beside talk.mp4); players like VLC and MPV auto-load matching sidecars. For a second language, add a language code (talk.es.srt) and select it in the player.
The captions are visible in the download but I can't save them — why?
They're burned into the picture (hardsubbed), so they're pixels rather than a subtitle stream — there's nothing to demux. Only OCR on rendered frames could turn them back into text, which is outside this tool.
Why did it say 'no text subtitle tracks'?
The download either has no subtitle stream at all, or only image-based (PGS/VobSub) tracks that can't convert to SRT. If the subtitles were a separate sidecar file when you downloaded, they're already a text file and don't need extracting.
What format are the saved subtitles?
SubRip (.srt) — always. Whatever the embedded codec was (mov_text, ASS, WebVTT, SubRip), JAD runs -c:s srt, so you get standard SubRip that any editor and player understands.
The saved subtitles are slightly out of sync — can I fix that?
Yes, but not in this tool. The extractor preserves the embedded timing exactly; if your copy is a different cut or framerate, apply a global time-shift or framerate conversion in a subtitle editor like Subtitle Edit.
How large a download can I process?
Free handles up to 1 GB per file, Pro 10 GB, Pro-media and Developer 100 GB — with no duration cap. The whole file is read into the browser, so a long high-bitrate download can exceed Free's limit even though the captions are tiny.
Why are some accented characters broken?
The embedded track was likely authored in a legacy encoding (Windows-1252). JAD writes the SRT as FFmpeg decodes it and offers no encoding override — open the file and re-save it as UTF-8 to fix the accents.
Will it re-encode my downloaded video?
No. Extraction is a read-only demux of the subtitle text — the video and audio in your download are never touched, and only a new .srt (or ZIP) is produced.
What else can I save from the same download?
Use the audio-track extractor to save the soundtrack, the chapter extractor for chapter markers, and the metadata scrubber to strip metadata before re-sharing.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.