How to extract subtitles for a translation workflow
- Step 1Extract the source-language SRT — Drop the delivery video onto the extractor. JAD scans the subtitle streams and exports every text track as SubRip — no options to set. A single-language file gives one
.srt; a multi-language master gives a ZIP of<name>-track-N.srt. - Step 2Identify the source-language track — SubRip has no language tag, so open each
track-N.srtand check the first cues. Rename the source-language one clearly (e.g.project.source.srt) before importing it into your CAT tool. - Step 3Import the SRT into your CAT tool — Create a subtitle project in Trados / memoQ / Crowdin / OmegaT and import the
.srt. The tool segments by cue; the timestamps and cue indices stay locked so you only translate the text. - Step 4Translate while keeping timestamps intact — Translate each segment. Do not alter the
00:00:00,000 --> 00:00:00,000timecode lines or the numeric cue indices — those are the alignment grid the burner relies on. Keep line breaks reasonable so target text fits on screen. - Step 5Export the translated SRT from the CAT tool — Export back to
.srt. Most CAT tools round-trip SubRip cleanly. Quick-check the file opens in a text editor and the timecodes are unchanged. - Step 6Re-burn or ship the translated SRT — Feed the translated
.srtto the subtitle burner to hardcode it onto the video (with a style preset), or deliver it as a sidecar file alongside the original — both work for localized distribution.
Why SRT is the right interchange format for CAT tools
Format support across common subtitle / localization tools. JAD's extractor always outputs SRT, the broadest-supported option.
| CAT / subtitle tool | Imports SRT? | Notes for the workflow |
|---|---|---|
| SDL Trados Studio | Yes | Subtitle filetype reads SRT cues as segments |
| memoQ | Yes | SRT import with timestamp lock |
| Crowdin | Yes | SRT is a first-class file type |
| OmegaT | Yes | SRT via the standard filter |
| Subtitle Edit | Yes | Best for re-timing after translation |
| Smartcat | Yes | SRT supported; preserves cue numbers |
Extract → translate → burn round-trip
The complete JAD localization loop and what each stage touches.
| Stage | Tool | Input → Output | What must stay intact |
|---|---|---|---|
| 1. Extract | Subtitle extractor (this tool) | Video → source .srt | Cue timing and indices |
| 2. Translate | Your CAT tool | Source .srt → target .srt | Timecode lines and cue numbers — translate text only |
| 3. Burn / ship | Subtitle burner | Video + target .srt → captioned video | Matching timestamps so cues sync |
Tier limits
Long-form feature deliveries are bounded by file size, not runtime.
| 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
Localization round-trips with real CAT-tool conventions.
Extract English source, translate to German, re-import
The deliverable is an MP4 with an English mov_text track. Extract it, run it through memoQ, and export German — timestamps unchanged so the cues still sync.
Extracted (project.en.srt): 1 00:00:03,000 --> 00:00:05,200 Welcome to the onboarding tour. Translated (project.de.srt) — same timecode: 1 00:00:03,000 --> 00:00:05,200 Willkommen zur Einführungstour.
Multi-language master → pick the source track
A master MKV already has EN and ES tracks. JAD returns a ZIP; you translate from the EN track and use ES as a reference for an existing partial translation.
Input: master.mkv 0:s:0 subrip (eng) ← source for translation 0:s:1 subrip (spa) ← existing reference track Output: master-subtitles.zip master-track-1.srt → rename master.en.srt (translate this) master-track-2.srt → rename master.es.srt (reference)
ASS source flattened — restyle on burn, not on extract
The source had styled ASS captions. Extraction gives plain SRT (styling lost), which is fine for translation — apply styling later in the burner.
Extracted (styling gone, text + timing kept): 12 00:01:40,000 --> 00:01:42,500 The mission begins now. Workflow: translate the plain text in your CAT tool, then in the subtitle burner pick a style preset (default/tiktok/youtube/...) to restyle the target on burn-in.
Keeping line length sane for on-screen fit
Target languages can be 20-30% longer than the source. Break translated cues so they fit two lines on screen — the CAT tool exports the breaks into the SRT.
Source: 5 00:00:20,000 --> 00:00:23,000 This feature saves you time. Target (line-broken to fit): 5 00:00:20,000 --> 00:00:23,000 Diese Funktion spart Ihnen wertvolle Zeit.
Re-extract after a re-cut to reuse translation memory
The video was re-edited. Re-extract the new source SRT; your TM fuzzy-matches the unchanged cues so only changed lines need new translation.
old project.en.srt : 480 cues new project.en.srt : 472 cues (8 cut, 3 reworded) In the CAT tool: 461 exact TM matches, 3 fuzzy, 8 dropped → translate only the 3 reworded cues.
Edge cases and what actually happens
Source track is ASS with styling the client wants kept
By designExtraction always converts to SRT, which has no styling model, so ASS fonts/positions/colours are dropped. The text and timing survive — translate those, then re-apply styling in the subtitle burner via its style preset. If the client needs an ASS deliverable, keep the original ASS as the styling reference.
Translator edited the timecode lines in the CAT tool
Sync breakIf timecode lines or cue indices change during translation, the re-burned subtitles will be out of sync. Lock timestamps in your CAT tool (most have a 'translate text only' / timestamp-protect mode). The extractor's timing is correct on output — preserve it through the round-trip.
Multi-language master, wrong track translated
Wrong sourceBecause SubRip carries no language label, JAD names tracks by stream order, not language. Open each track-N.srt and confirm the first cues before importing — translating from the wrong source language is the most common avoidable error here.
Bitmap subtitle as the only source track
No text tracksIf the source captions are image-based (PGS/VobSub/DVB), they cannot convert to SRT and you get No text subtitle tracks found in this video. Localization from bitmap subs requires an OCR step first to produce an editable SRT.
Source SRT has legacy encoding (mojibake)
Source encodingA source track authored in Windows-1252 may show garbled accents. There is no force-UTF-8 toggle in the extractor — re-save the .srt as UTF-8 before importing into your CAT tool, or your translation memory will store the broken characters.
Target text overruns the cue duration
ReadabilityLonger target languages can exceed comfortable reading speed within the original cue window. The extractor preserves source timing; adjust cue durations or split lines in a subtitle editor (e.g. Subtitle Edit) after translation if reading speed is too high.
Captions are burned into the source video
Not extractableIf the source captions are hardsubbed, there is no text stream to extract and nothing to translate from a file. You would need OCR on rendered frames to obtain a source SRT before the localization loop can begin.
More than five subtitle tracks on the master
First 5 onlyThe extractor scans up to five text streams. A heavily-localized master with six or more language tracks returns only the first five. If your source language is beyond index 4, re-mux the file to reorder streams, then extract.
Frequently asked questions
Why SRT and not ASS or TTML for translation?
SubRip is the universally-imported subtitle format across CAT tools — Trados, memoQ, Crowdin, OmegaT, and Subtitle Edit all read it natively, and it is plain text so it diffs cleanly and works with translation memory. The extractor outputs SRT for exactly this reason; richer formats fragment tool support.
Will translating in my CAT tool keep the timestamps?
Yes, if you use the CAT tool's subtitle/timestamp-lock mode. SubRip's timecode lines are the alignment grid — translate the text and leave the --> lines and cue numbers untouched so the translated SRT still syncs when burned in.
The source is styled ASS — do I lose the styling?
Yes, on extract. Conversion to SRT flattens ASS styling because SubRip has no styling model. Translate the plain text, then restyle the target during burn-in with the subtitle burner, which has built-in style presets.
How do I burn the translated SRT back into the video?
Use the subtitle burner: drop the original video plus your translated .srt, pick a style preset, and it hardcodes the captions. Solution walkthroughs include translating a subtitle overlay for Shorts and hardcoding VTT/SRT into a video.
How do I tell which extracted track is my source language?
Open each track-N.srt and read the first few cues — SubRip carries no language tag, so JAD numbers tracks by stream order. Rename the source-language file clearly (e.g. project.source.srt) before importing it, to avoid translating the wrong track.
Can I translate a multi-language master in one go?
The extractor returns all text tracks as a ZIP, but translation happens in your CAT tool, one source at a time. Pull the source-language SRT from the ZIP; any existing target-language tracks can serve as reference or pre-translated content for your TM.
Does extraction upload my client's video?
No. It runs entirely in your browser via FFmpeg.wasm, so embargoed cuts and client deliverables stay local. This matters for localization vendors handling pre-release content under NDA — nothing is sent to a server.
What if I re-cut the video after translating?
Re-extract the new source SRT and re-import it. Your translation memory fuzzy-matches the unchanged cues, so only added or reworded lines need new translation. The plain-text SRT makes this TM reuse reliable.
Why are accented characters broken in the source SRT?
The embedded track was likely authored in a legacy encoding such as Windows-1252. There is no force-UTF-8 option in the extractor — re-save the .srt as UTF-8 before importing it into your CAT tool, or the mojibake propagates into your translation memory.
My target text is too long to read in the cue window — what now?
The extractor preserves the source cue timing exactly. Longer target languages may exceed comfortable reading speed; adjust durations or split cues in a subtitle editor like Subtitle Edit after exporting the translated SRT.
Can it extract image-based source subtitles for translation?
No. PGS/VobSub/DVB are pictures and cannot convert to SRT — the extractor skips them and, if they are the only track, returns the no-text error. Run an OCR step first to obtain an editable SRT, then translate.
How large a delivery file can I extract from?
Up to 1 GB on Free, 10 GB on Pro, and 100 GB on Pro-media / Developer — with no duration limit. A feature-length ProRes master may exceed Free's cap; trim with the lossless trimmer or upgrade if needed.
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.