Verified May 2026

How to Add Subtitles to a Video: 3 Methods, 4 Platforms, Honest Pricing

By VexaScribe Editorial · Published May 13, 2026 · Verified May 2026

There are three ways to add subtitles to a video, and the right one depends on whether you have a script, audio, or only the video itself. Method 1 — AI auto-generation: upload the video to a transcription tool, get back an SRT file with timestamps, then attach it in YouTube, Premiere, CapCut, or any modern player (best for most people, takes 2-5 minutes for a 10-minute video). Method 2 — manual SRT writing: type the subtitles yourself in a text editor or web tool (best when you have a script and need control over exact wording). Method 3 — burned-in captions: hardcode subtitles directly onto the video frames so they can't be turned off (best for Instagram, TikTok, and other platforms that don't reliably display soft captions). All three are free for short videos, and most paid tools cost $2–$10/month for unlimited use. Below: step-by-step instructions for each method, platform-specific workflows for YouTube, Premiere Pro, CapCut, iPhone, and DaVinci Resolve, the SRT-vs-VTT-vs-burned-in format decision, and the free options that actually work.

Key takeaways

  • Fastest method: AI auto-generation — 2-5 minutes for a 10-minute video, ~$0.10–$0.50 cost (or free trial).
  • Best free if you upload to YouTube anyway: YouTube auto-captions — ~85% accuracy on clean English.
  • Best paid AI option: VexaScribe Starter ($2/mo for 200 minutes) or any Whisper-based tool — 95-97% accuracy on clean audio, 99 languages.
  • Format decision: SRT for YouTube/Premiere/most editors, VTT for HTML5/web players, burned-in for Instagram/TikTok.
  • Manual SRT format: numbered cues + HH:MM:SS,mmm --> HH:MM:SS,mmm timestamp + text + blank line.
  • Common mistake: SRT timestamps use commas (,), VTT uses periods (.) — mixing them up silently breaks playback.
  • Translation step: generate the SRT in source language first, then translate to target language (don't rely on YouTube auto-translate, ~70% quality).
  • Mobile-first: CapCut on phone handles burning subtitles into vertical video better than any desktop editor.

3 Methods at a Glance

Three workflows, three trade-offs. Match your situation to the right method before opening any tool.

MethodTime (10-min video)CostBest forTools
AI auto-generation2-5 min$0–0.50Most people, any languageVexaScribe, Otter, Sonix, self-hosted Whisper
Manual SRT writing30-60 min$0Scripted content, exact controlAny text editor, Subtitle Edit, Aegisub
Burned-in captions5-15 min$0–24/moInstagram, TikTok, branded videoCapCut, Premiere Pro, Descript

Method 1: AI Auto-Generation

For 90% of videos, this is the right method. You upload the video, an AI transcribes the audio, and you download an SRT file in 2-5 minutes. Modern tools achieve 95-97% accuracy on clean English audio. The remaining 3-5% errors are mostly proper nouns and need manual review before publishing.

1

Upload your video to an AI transcription tool

Drag your video file into a tool that supports SRT export. VexaScribe's SRT generator accepts files up to 5 GB and 17+ formats (MP4, MOV, M4A, MKV, WEBM). No need to extract audio first — modern tools handle video directly.

2

Select the source language (or use auto-detect)

Choose the language spoken in the video. If you're not sure, use the auto-detect option — most tools identify the language correctly within the first 10 seconds of audio. For multilingual videos, transcribe each section separately; auto-detect will lock to the dominant language.

3

Wait for processing

AI transcription runs at roughly 4-10× real-time. A 10-minute video takes 1-3 minutes; a 1-hour video takes 6-15 minutes. Upload time often exceeds processing time for large files on slow internet. Most tools email you when the SRT is ready.

4

Download the SRT file

Once processing completes, export as SRT (universal compatibility) or VTT (HTML5 web players). Some tools also offer plain TXT for editing or word-level JSON for custom workflows. Export SRT first — you can always convert to other formats later. Quick proofread: open the SRT in a text editor and scan for obviously-wrong proper nouns.

5

Attach the SRT to your video

Each platform has its own attachment workflow — see the platform-specific workflows section below for YouTube, Premiere Pro, CapCut, iPhone, and DaVinci Resolve. For burned-in subtitles (Instagram, TikTok), import the SRT into CapCut or Premiere and export the video with captions baked into the frames.

Try it free: VexaScribe's SRT generator includes 30 free minutes (one ~30-minute video) with no credit card. Supports 99 languages via Whisper Large-v3, exports SRT/VTT/TXT/JSON, accepts files up to 5 GB.

Method 2: Manual SRT Writing

Manual SRT writing is the right method when you have a script (corporate training, scripted YouTube videos, education content) and need exact control over wording. It's slower than AI (30-60 minutes for a 10-minute video) but produces perfect text and avoids the proofreading step.

The SRT file format is plain text with a specific structure:

1
00:00:00,000 --> 00:00:03,500
Welcome to the tutorial.

2
00:00:03,500 --> 00:00:07,200
Today we'll cover three methods
of adding subtitles to a video.

3
00:00:07,200 --> 00:00:11,000
Each one fits a different situation.

Four rules to remember:

  • Sequential numbering — 1, 2, 3, no gaps
  • Timestamps use commas00:00:01,500 not 00:00:01.500 (VTT uses periods)
  • Blank line between cues — exactly one blank line, no extra whitespace
  • Save as UTF-8 — required for any non-ASCII character (é, ñ, ä, Cyrillic, CJK)

Tools that make manual SRT writing easier: Subtitle Edit (Windows, free, mature), Aegisub (cross-platform, free, more advanced), VS Code with an SRT preview extension. Any plain text editor works — just save with .srt extension and UTF-8 encoding.

Method 3: Burned-In Captions

Burned-in (hardcoded) captions are part of the video frames themselves — they can't be turned off, can't be translated later, and can't be selected by viewers. Use them when the platform you're publishing to doesn't reliably display soft captions.

When to burn in:

  • Instagram and TikTok — autoplay with sound off is the default; soft captions display unreliably
  • Vertical short-form video — feed scroll context where audio is off most of the time
  • Branded content — when caption styling (color, font, position) is part of brand identity
  • Video files distributed without web player control — embedded videos, training content, downloads

When NOT to burn in:

  • YouTube — soft captions display reliably; burning in disables accessibility features (text scaling, translation, screen readers)
  • Multilingual content — soft SRT lets viewers pick their language; burned-in locks you to one
  • Content that may be re-edited later — burned-in is permanent

Best tools for burning in: CapCut (mobile-first, free, burns by default on export), Premiere Pro (desktop, Match Source + Burn-in caption setting on export), Descript (text-based editing UI). For all three, import the SRT or generate captions inside the tool, style them, then export with the burn-in option enabled.

Platform-Specific Workflows

Five platforms, five different attachment workflows. Find your editor below and follow the exact steps.

YouTube

YouTube supports soft SRT subtitles reliably and offers free auto-captions as a fallback. The uploaded-SRT path produces better accuracy than YouTube's own auto-captioning (~95% vs ~85% on clean audio).

  1. Open YouTube Studio → select your video → Subtitles tab in the left sidebar
  2. Click Add new subtitles or CC → choose language
  3. Select Upload fileWith timing (your SRT already has timestamps)
  4. Upload the .srt file → preview → Publish
  5. Subtitles are now selectable via the CC button on your video

Auto-translate note: YouTube can auto-translate your SRT into 100+ languages, but quality is ~70%. For customer-facing multilingual content, upload separate manually-translated SRTs per language instead.

Premiere Pro

Premiere's Captions workflow handles both soft and burned-in subtitles. The Essential Graphics panel controls styling.

  1. FileImport → select your .srt
  2. Drag the SRT into the timeline above your video track — it appears as a caption track
  3. Open WindowCaptions to edit text and timing
  4. Style via WindowEssential Graphics → Captions section (font, color, background, position)
  5. For burned-in export: FileExportMatch Source → enable Burn-in caption

Premiere's caption track stays as soft subtitles by default — burning in is opt-in at export.

CapCut (Mobile + Desktop)

CapCut is the dominant mobile workflow for short-form vertical video. Free auto-captions, mobile-tuned accuracy (~85-90%), burned-in by default on export.

  1. Open your project → tap TextAuto-captions
  2. Select the language (auto-detect available)
  3. Wait 1-2 minutes for processing — captions appear on the timeline
  4. Tap any caption to edit text, change font/color/position
  5. Tap Export — subtitles are burned into the final video automatically

SRT import path: if you generated an SRT elsewhere, tap TextCaptionsImport subtitles → select the .srt file from your phone storage.

Limitation: CapCut auto-captions can't be exported as a standalone SRT file — they only live inside the CapCut project.

iPhone Photos and iMovie

iOS's native video tools handle subtitles poorly compared to CapCut. If you're committed to Apple-only workflows, the options are limited.

  1. iOS 18+ Photos app: long-press video → Live Caption (English-primary; auto-generated, can't be exported as SRT)
  2. iMovie: doesn't natively support SRT import — use the Title tool to manually add text on a timeline, then position over the video
  3. Practical workflow: generate the SRT on desktop (VexaScribe, etc.), then import the captioned video back to your phone via AirDrop
  4. Or use CapCut on iPhone instead — much better subtitle handling than iMovie

DaVinci Resolve

DaVinci Resolve's free version handles SRT import cleanly and offers the highest output quality of any free editor. Studio version adds advanced caption styling.

  1. Open the Edit page → drag your .srt file into the Media Pool
  2. Drag the SRT from Media Pool to the timeline (creates a subtitle track)
  3. Click the subtitle in the timeline → Inspector panel to edit text, font, color, position
  4. For burned-in export: Deliver page → in render settings, enable Burn in subtitles
  5. For soft subtitles in MP4 export: enable Export Subtitle → choose format (SRT or as a subtitle track)

Resolve's caption styling rivals Premiere Pro's but with a free version — strongest free editor for caption work.

SRT vs VTT vs Burned-In: Format Decision

Three subtitle formats, three trade-offs. Pick once at the start of your workflow.

FormatUse whenProsConsTimestamp format
SRTYouTube, Premiere, most editorsUniversal support; readable in any text editorNo styling, no positioning00:00:01,500 (comma)
VTTHTML5 web players, custom video sitesSupports styling, color, positioningLess editor support00:00:01.500 (period)
Burned-inInstagram, TikTok, branded videosAlways visible; full styling controlCan't be turned off; harder to translaten/a (part of video)

Practical rule: export SRT by default. Convert to VTT only if you're embedding video on a website that needs caption styling (color-coded speakers, positioning). Burn in only if your target platform — Instagram, TikTok, branded distribution — doesn't reliably show soft captions.

Free Options That Actually Work

"Free" usually means "free for a small video" or "free tier with limits." Five options that genuinely deliver — honest about each catch.

ToolLimitAccuracyCatchVerdict
YouTube auto-captionsUnlimited if video is on YouTube~85% clean EnglishOnly useful if YouTube is your platform anywayBest free option for YouTubers
VexaScribe 30-min trial30 minutes, one-time, no card95-97% (Whisper Large-v3)Free trial ends after 30 minutes totalBest free SRT file for any platform
CapCut auto-captionsFree, unlimited~85-90% mobile-tunedOnly exports to CapCut projects (no SRT file)Best free for mobile vertical video
Self-hosted WhisperUnlimited, free forever95-97% (same Whisper model)Requires Python + GPU + technical setupBest free for technical users
Google Docs Voice TypingFree, real-time only~80-85% EnglishNo timestamps; manual time-coding requiredWorkable for short videos as a last resort

Truly unlimited free use requires self-hosting Whisper or having your video live on YouTube. For a one-off standalone SRT file from any video, no account needed for the first 30 minutes — try VexaScribe's SRT generator.

Common Pitfalls

Eight mistakes that turn a 5-minute task into a 45-minute one. All preventable.

1. SRT timestamps use commas, not periods

SRT format: 00:00:01,500. VTT format: 00:00:01.500. Mixing them up silently breaks playback in most players. Easy to catch — open the SRT in a text editor and check the timestamp punctuation.

2. Forgetting UTF-8 encoding

Non-English characters (é, ñ, ä, kanji, Cyrillic) come out as gibberish if the SRT is saved as ANSI/Windows-1252. Always save UTF-8. VS Code, Sublime, Notepad++ all default to UTF-8; Windows Notepad does not.

3. Lines too long for readability

Industry standard: ≤42 characters per line, ≤2 lines per cue. Longer lines force viewers to read sideways and break engagement. Most AI tools respect this automatically; manual SRT writing is where it gets violated.

4. Display duration too short

Minimum 1.5 seconds per cue. Reading speed conventions: 17 characters per second for adults, 12 for kids. Captions that flash by faster than this are inaccessible — slow them down even if it means the caption lingers past the spoken word.

5. Burned-in subtitles can't be translated

Once subtitles are baked into the video frames, you can't swap them for a different language. For multilingual reach, generate separate SRT files per target language and keep them soft (separate file). Translate before burning.

6. YouTube auto-translate is mediocre (~70% quality)

Uploading an English SRT and letting YouTube auto-translate to Spanish/French/etc. produces customer-visible quality at roughly 70%. For anything customer-facing, translate each SRT manually or use a dedicated translation tool. DeepL beats Google Translate on European languages.

7. iOS doesn't natively import SRT files

iPhone Photos app and iMovie can't directly accept an external SRT file. Workarounds: use CapCut on the phone (does its own captioning), edit on desktop and re-import the video to phone, or use an iOS app like Subly or Captions.

8. Auto-generated subtitles miss proper nouns

Names, brands, technical jargon, and unusual phonemes have 20-30% error rates even on otherwise-accurate transcripts. Always proofread proper nouns before publishing. Keep a glossary if you re-use the same names across videos.

Frequently Asked Questions

Frequently Asked Questions

How do I add subtitles to a video for free?

Three free methods work for most people. (1) Upload your video to YouTube and use auto-captions — free, ~85% accuracy on clean English audio, but the video has to live on YouTube. (2) Use VexaScribe's free 30-minute trial — generates an SRT file from any audio or video, no credit card. (3) Install Whisper locally via Python — free forever and unlimited if you can run command-line tools (GPU recommended for speed). CapCut on mobile also offers free auto-captions but only outputs to CapCut projects, not standalone SRT files.

How do I attach an SRT file to a video?

Attachment workflow depends on the platform. On YouTube: open YouTube Studio → select your video → Subtitles tab → Add new language → Upload file (.srt). On Premiere Pro: Window menu → Captions → New caption track → File menu → Import → select the SRT. On CapCut: open the project → Text → Captions → Import subtitles. On most web players: rename the SRT to match the video filename (movie.mp4 + movie.srt) and place them in the same folder. For YouTube and Premiere, the SRT file plays as a separate selectable subtitle track. For Instagram or TikTok, you'll need to burn subtitles into the video frame using CapCut or Premiere instead.

How do I insert subtitles into a video on my phone?

Easiest mobile workflow is CapCut (iOS and Android, free). Open the project → Text → Auto-captions → choose language. CapCut generates subtitles in 1-2 minutes for a short video, then burns them directly onto the export. For iPhone-only workflows: iOS 18+ Photos app can transcribe video audio (limited languages, English best). For more control, use CapCut on phone or AirDrop an SRT from a desktop tool like VexaScribe to your phone, then import it in the editor.

What's the best free auto-subtitle tool for videos?

Depends on where the video will live. For YouTube videos: YouTube's own auto-captions are free and decent (~85% on clean English). For TikTok/Instagram vertical video: CapCut auto-captions are free, mobile-optimized, and the burned-in result is what those platforms expect. For a standalone SRT file you control: VexaScribe's free 30-minute trial covers one ~30-minute video at 99-language accuracy via Whisper Large-v3. For unlimited free use: self-hosted Whisper (free open-source, technical setup required).

What's the difference between SRT and VTT subtitle files?

Both are timed-text subtitle formats with similar structure. SRT (SubRip) is older, more universally supported (YouTube, Premiere, almost every player), uses comma decimals in timestamps (00:00:01,500), and supports basic styling only. VTT (WebVTT) is the HTML5 web standard, uses period decimals (00:00:01.500), supports styling and positioning (color, font, alignment), and is what modern web video players prefer. Practical rule: export SRT unless you're embedding video on a custom website where VTT styling matters.

Can I add subtitles to a video without re-encoding it?

Yes — use a separate SRT/VTT file (soft subtitles) rather than burned-in (hard subtitles). YouTube, Vimeo, Premiere Pro, DaVinci Resolve, and most modern video players support attaching an SRT alongside the video without touching the video file itself. The downside: Instagram, TikTok, and some mobile contexts don't reliably display soft subtitles, especially on autoplay/muted views. If your target platform doesn't support soft subtitles, you'll need to burn them in (which does require re-encoding the video).

How accurate are AI-generated subtitles in 2026?

Modern Whisper Large-v3 based tools achieve 95-97% accuracy on clean English audio (single speaker, treated room), dropping to 87-92% on multi-speaker calls with light overlap and 82-88% on heavily accented English or noisy audio. The big remaining failures: proper nouns (names, brands, technical terms) miss 20-30% of the time and need manual correction, and overlapping speech still defeats every AI tool. For broadcast or legal-grade subtitles, plan to spend 5-10 minutes per video reviewing the auto-generated SRT before publishing.

Can I translate subtitles to another language?

Yes, two ways. (1) Generate the SRT in the source language first, then translate it with a dedicated tool — DeepL handles European languages better than Google Translate, Google Translate handles long-tail languages. (2) Some transcription tools (VexaScribe, Sonix, Happy Scribe) offer built-in translation that produces a translated SRT in one workflow — VexaScribe includes 133-language translation on every paid plan at no extra cost. Avoid YouTube's auto-translate of uploaded SRTs (~70% quality) for anything customer-facing.

How long should each subtitle display?

Industry standard: 1.5-7 seconds per cue, with a hard minimum of 1.5 seconds (any shorter and viewers can't process the text). Reading speed conventions: 17 characters per second for adults, 12 for kids. Practical line length: ≤42 characters per line, ≤2 lines per cue. AI-generated SRTs usually respect these limits automatically; manual SRT writing is where most timing errors creep in. If your subtitles flash by too fast, you're producing inaccessible content — slow them down even if it means letting captions linger past the spoken word.

Why are my subtitles showing as gibberish characters?

Almost always a character encoding mismatch. SRT files must be saved as UTF-8 (sometimes UTF-8 with BOM) to display non-ASCII characters correctly — accented Latin (é, ñ, ä), Cyrillic, CJK, Arabic, etc. If you opened the SRT in Notepad and saved it as ANSI/Windows-1252, non-English characters get garbled. Fix: open the SRT in a code editor like VS Code, Sublime Text, or Notepad++ → change encoding to UTF-8 → save. Modern tools (VexaScribe, Subtitle Edit, Aegisub) default to UTF-8 and won't have this problem.

Methodology & Disclosure

Verification window. All platform workflows, pricing claims, free-tier limits, and accuracy figures were verified between May 8 and May 13, 2026. Caption formatting standards (SRT/VTT spec, character-per-second guidelines) come from W3C and the EBU.

Conflict of interest. This guide is published by VexaScribe. VexaScribe's SRT generator is linked as our own tool — disclosed openly. We cover competitor tools (CapCut, Otter, DaVinci Resolve, self-hosted Whisper) where they're honestly the better choice for a specific use case. CapCut is recommended for mobile vertical video. YouTube auto-captions are recommended for YouTube-hosted videos. Self-hosted Whisper is recommended for technical users with unlimited free needs. No affiliate relationships, no sponsored placements. See our editorial standards.