How to add a translated subtitle overlay to youtube shorts
- Step 1Prepare your translated caption file — Translate your transcript and save it as a
.srtor.vtt. Keep the original cue timings so the translated lines stay in sync with the speech. The tool does not translate — it burns the file you bring. - Step 2Load the Shorts clip — Drop the video onto the burner. Accepted containers: MP4, MOV, MKV, WebM, AVI, M4V, TS. A 9:16 vertical export is ideal for Shorts; any aspect ratio is accepted.
- Step 3Pick the translated SRT/VTT — In the Subtitle file panel, click Pick and choose your translated file.
.vttis read as WebVTT; other extensions as SRT. The file stays local in the in-browser FFmpeg filesystem. - Step 4Choose a preset that renders your language — Set Style preset. For non-Latin scripts, prefer default (FFmpeg's fontconfig fallback) since the styled presets pin specific fonts (Arial / Impact / Roboto) that may lack your glyphs. For Latin-script translations, youtube or bold read clearly.
- Step 5Run the burn — Click Run Burn Subs. FFmpeg renders the translated cues into each frame, re-encodes video with libx264 (
-preset medium -crf 20), and copies the audio. Watch the render dashboard for progress. - Step 6Verify glyphs, then upload — Download the MP4 and check that every character renders (no tofu boxes) before uploading to YouTube Shorts. If a script doesn't render under a styled preset, switch to default and re-burn.
Preset fonts vs language coverage
Each preset pins a font; glyphs outside that font render as boxes. For non-Latin scripts the default preset (no pinned font) is the safest because it uses FFmpeg's fontconfig fallback.
| Preset | Pinned font | Latin / accented | Wider scripts (CJK, Cyrillic, Arabic) |
|---|---|---|---|
| default | None (fontconfig fallback) | Yes | Best chance — relies on system/bundled fallback |
| youtube | Roboto | Yes (broad Latin + Cyrillic + Greek) | Partial — Roboto covers Cyrillic/Greek, not CJK |
| tiktok | Arial | Yes | Limited |
| subtle | Arial | Yes | Limited |
| bold | Impact | Yes (Latin) | Poor — Impact is Latin-only |
Encode and limits for translated overlays
Same engine as every burn: subtitles filter + one libx264 pass, audio copied.
| Property | Value |
|---|---|
| Input video | MP4, MOV, MKV, WebM, AVI, M4V, TS |
| Caption input | Translated .srt or .vtt |
| Output | MP4 · H.264 (libx264, CRF 20) |
| Audio | Original track copied (-c:a copy) |
| Translation | Not performed — bring a translated file |
| Free / Pro / Pro + Media | 1 GB / 10 GB / 100 GB per file; no duration cap |
Cookbook
Recipes for localising a Short with a translated caption overlay. The two controls are the file picker and the preset dropdown; glyph coverage is the thing to get right.
Spanish overlay on an English Short
Latin-script translation: keep the English audio, burn the Spanish SRT with the youtube preset for a readable caption strip.
Options:
Subtitle file = short_es.srt
Style preset = YOUTUBE
FFmpeg force_style (youtube):
FontName=Roboto,FontSize=22,PrimaryColour=&H00FFFFFF,
BackColour=&H80000000,BorderStyle=4,Alignment=2,MarginV=40
Result: Spanish captions on a black strip,
English audio copied untouched.Japanese overlay — use the default preset
Styled presets pin Latin-oriented fonts. For CJK, default uses FFmpeg's fallback, giving the best chance of rendering the glyphs.
Options: Subtitle file = short_ja.srt Style preset = DEFAULT (no pinned font) FFmpeg (effective): -vf subtitles=sub.srt Check output: confirm kana/kanji render, not boxes. If boxes appear, the fallback font lacks coverage.
Keep timings, change only the language
Translate line-for-line and preserve the original cue timestamps so the overlay tracks the speech without re-syncing.
Original (en): 00:00:02,000 --> 00:00:04,000 Let's get started. Translated (de) — same timings: 00:00:02,000 --> 00:00:04,000 Fangen wir an. Burn the translated file; sync is inherited from timings.
Glyphs render as boxes
Symptom: characters show as empty rectangles. Cause: the preset's pinned font lacks those glyphs. Fix in-tool by switching to default.
Problem: BOLD preset (Impact) on Cyrillic -> boxes. Fix: Style preset = DEFAULT, re-run. Default uses fontconfig fallback with broader coverage. This tool does not let you load a custom font file.
Reframe to vertical before the translated burn
If the source is landscape, crop to 9:16 first so captions sit in the Shorts safe zone, then burn the translated overlay.
Pipeline: 1. /video-tools/auto-reframe (16:9 -> 9:16) 2. (optional) /video-tools/youtube-shorts-formatter 3. Subtitle Burner: translated SRT, preset YOUTUBE Order keeps the caption margin correct for vertical.
Edge cases and what actually happens
Expecting the tool to translate the captions
Not supportedThis burner does not translate or transcribe. It burns whatever text is in the SRT/VTT you provide. Translate the captions first (human or your translation tool of choice), then bring the translated file here.
Target-language glyphs missing from the preset font
Tofu boxesStyled presets pin Arial/Impact/Roboto; characters those fonts lack render as boxes. Switch to the default preset for FFmpeg's fontconfig fallback. There is no option to upload a custom font in this tool.
Right-to-left languages (Arabic, Hebrew)
Renderer-dependentRTL shaping and bidi support depend on the subtitles filter's libass build and the available fonts. Coverage can be incomplete; always preview a RTL burn carefully before publishing, and prefer the default preset.
Translated lines are longer than the original
Wraps / may crowdTranslations often expand (e.g. EN→DE). Longer lines wrap and can crowd the small vertical frame. Tightening the translation wording in the SRT is the lever, since the tool's font size is fixed by the chosen preset.
Original audio should stay under the overlay
Preserved-c:a copy keeps the original-language soundtrack exactly as-is beneath the translated captions. The burn never alters audio.
No subtitle file selected
Error · blockedRunning with an empty subtitle slot throws Pick an .srt or .vtt file. A translated caption file is required.
Short exceeds the Free 1 GB cap
1 GB capFree tier allows 1 GB per file; Pro 10 GB; Pro + Media 100 GB (streamed). No minutes limit applies — only file size and batch count.
Cue timings drift from the speech
By design — burned as-isThe overlay renders at the SRT timestamps; the tool doesn't re-sync. Keep the original cue timings when translating so the localised lines stay aligned.
Frequently asked questions
Does this tool translate my subtitles?
No. It burns a translated caption file you provide — there is no translation or transcription step. Produce your translated SRT/VTT first, then bring it here to overlay it permanently onto the Short.
Why burn a translated overlay instead of using YouTube auto-translate?
Auto-translate is double machine-guess (speech-to-text, then translation) and a toggle most viewers never enable. A burned, human-checked translation is accurate, always visible, and survives downloads and reposts.
Will the original audio be kept?
Yes. Audio is stream-copied with -c:a copy, so the original-language soundtrack plays unchanged under the translated captions. Only the video is re-encoded to paint the overlay in.
Which preset should I use for non-Latin languages?
Use default. The styled presets pin Arial, Impact, or Roboto, which may lack glyphs for CJK, Arabic, or some scripts. The default preset relies on FFmpeg's fontconfig fallback, giving the widest coverage. Always preview the result.
Can I load my own font for the captions?
No — this tool offers five fixed presets and no custom-font upload. If your script doesn't render under a styled preset, switch to default and verify the glyphs in the output.
What if the captions render as boxes?
That means the chosen preset's font lacks those characters. Switch to the default preset and re-burn; its fontconfig fallback covers more scripts. Confirm every character renders before uploading.
Will burned captions show on Shorts even if viewers don't enable captions?
Yes. Burned text is part of the frame, so it shows to everyone unconditionally — unlike auto-translated captions, which require the viewer to turn them on.
Does it accept VTT translations?
Yes. Files ending in .vtt are read as WebVTT and everything else as SRT. Keep the right extension on your translated file.
How do I keep the translation in sync?
Translate line-for-line and keep the original cue timestamps. The burner renders at exactly those timestamps and doesn't re-sync, so preserved timings keep the overlay aligned to the speech.
What's the output format?
Always an MP4 with H.264 video (CRF 20) and copied audio — the format YouTube Shorts expects, so no further conversion is needed.
How do I crop a landscape clip to vertical first?
Use auto-reframe to crop 16:9 to 9:16, or youtube-shorts-formatter to hit the full Shorts spec, then burn the translated overlay here so it lands in the vertical safe zone.
How do I get a base SRT to translate from a video?
Pull the existing track out with subtitle-extractor, translate that SRT, then return here to burn the translated version. For a different output container afterwards, use video-transcoder.
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.