What Is an SRT File? Format Explained + Sample + How to Create One (2026)
An SRT file (SubRip Subtitle) is a plain text file that stores subtitles for a video — sequence numbers, timecodes, and text. It's the most universally supported subtitle format, used by YouTube, Vimeo, Netflix, Premiere Pro, DaVinci Resolve, VLC, and virtually every video editor. Format spec, annotated sample, and how to create one below.
TL;DR
An SRT file (SubRip Subtitle) is a plain text file that stores subtitles for a video. Each subtitle is a block containing a sequence number, start-and-end timecodes (hours:minutes:seconds,milliseconds), and one or two lines of text. SRT is the most universally supported subtitle format — it works on YouTube, Vimeo, Netflix, Premiere Pro, DaVinci Resolve, VLC, and virtually every video editor. You can open one with Notepad or TextEdit.
SRT Format: Anatomy of a Subtitle Block
An SRT file is a sequence of subtitle blocks separated by blank lines. Every block has exactly four parts: a sequence number, a timecode range, one or two lines of text, and a trailing blank line. There is no header, no XML wrapper, and no metadata — just this simple pattern repeated for every subtitle in the video.
Here's a real, valid SRT sample you can copy into a text file and load in VLC:
1
00:00:00,000 --> 00:00:04,500
Welcome to the podcast. Today we're
talking about productivity tips.
2
00:00:04,500 --> 00:00:08,750
Thanks for having me on. I've been
working remotely for five years.
3
00:00:08,750 --> 00:00:12,000
Great to have you. What's your
number one tip?Breaking down the anatomy
HH:MM:SS,mmm --> HH:MM:SS,mmm. The comma before milliseconds is mandatory in SRT — not a period. The separator is a literal arrow --> (two hyphens, one greater-than) with a space on either side.What's allowed inside the text
The original SubRip spec is minimal — just plain text. In practice, a small set of inline HTML-like tags are widely supported:
<i>italic</i>— supported by VLC, MPV, YouTube, Premiere<b>bold</b>— widely supported<u>underline</u>— widely supported<font color="#ffcc00">— partial support; ignored by YouTube
For anything beyond basic emphasis — positioning, karaoke effects, per-word timing — you need VTT or ASS instead. See the format comparison below.
Reference: Library of Congress: SubRip Subtitle File Format (FDD000569).
SRT vs VTT vs ASS vs SUB: Which Subtitle Format to Use
Four formats dominate. Pick based on where the subtitles will play, how much styling you need, and what tools consume them downstream.
| Format | Best For | Styling | Player Support | Size |
|---|---|---|---|---|
| SRT | Max compatibility, YouTube, video editors | Minimal (basic <i>, <b> tags — spotty support) | All players, all editors | Smallest |
| VTT (WebVTT) | HTML5 web video, custom players | CSS + positioning + cue settings | Native in modern browsers | Small |
| ASS / SSA | Anime, karaoke, advanced styling | Full — color, position, fonts, effects | Media players + advanced editors | Medium |
| SUB | Legacy DVD-era workflows | None (or image-based, .idx pair) | Aging players only | Small (text) / Large (image) |
Which one to pick
Pick SRT if: you're uploading to YouTube, Vimeo, LinkedIn, TikTok, or Instagram; delivering to a video editor (Premiere Pro, DaVinci Resolve, Final Cut, CapCut); handing off to a client; or you just want the file to work everywhere. This is the default. If you don't have a specific reason to choose another format, use SRT.
Pick VTT if: you're serving video through a native HTML5 <video> element with a <track> tag, or using a web player that needs positioning, styling, or per-cue metadata. VTT is the modern web subtitle standard and lets you do things like place captions in a specific screen region or style them with CSS.
Pick ASS/SSA if: you're working on anime, karaoke, or content that needs typographic effects — colored text, per-character animation, precise font positioning. Aegisub is the standard editor. Most Western video platforms will ignore or strip the styling, so ASS is really a niche format for hardsub workflows.
Pick SUB only if: a legacy system explicitly requires it. SUB comes from the DVD era and comes in two flavors — text-based (usually paired with an .idx file) or image-based. Both are aging out. If you have a choice, don't pick SUB.
Character and Timing Limits That Actually Matter
The SRT spec itself doesn't enforce character or timing limits, but the broadcast and streaming industry has settled on a set of readability rules. Follow these or your subtitles will be rejected by professional QC, fail accessibility review, or simply be hard to read.
| Rule | Source / rationale |
|---|---|
| Max 42 characters per line | Netflix Timed Text Style Guide, BBC subtitle guidelines |
| Max 2 lines per subtitle | Broadcast + streaming standard |
| Reading speed: 15–20 characters per second | WCAG 2.1 recommendation for cognitive load |
| Minimum duration: 1 second per subtitle | Below 1s viewers can't finish reading |
| Maximum duration: 7 seconds per subtitle | Above 7s viewers lose sync with speech |
| Minimum 2-frame gap between subtitles | Prevents subtitles from bleeding together on screen |
Why the limits matter
A viewer's reading speed caps around 15–20 characters per second — the WCAG 2.1 recommendation for accessible captions. A 42-character line takes roughly 2.1–2.8 seconds to read. Push above that and viewers either miss the caption or stop watching the video to read.
The minimum duration of one second prevents flash-frame captions viewers can't parse. The maximum of seven seconds prevents a caption from lingering long after the speaker has moved on — which breaks the perceived sync between text and audio.
These rules are why every professional subtitling tool ships with automatic cue-splitting. If you want them enforced for you, our subtitle generator applies the 42-char / 15–20 cps / 1–7s limits automatically at export time.
References: Netflix Timed Text Style Guide (English Timed Text), BBC Subtitle Guidelines, WCAG 2.1 SC 1.2.2 Captions (Prerecorded).
How to Open, Edit, or Create an SRT File
SRT is a plain text format, so every workflow starts with a text editor. Beyond that, tooling scales up with your needs.
Opening an SRT file
Any text editor works. On Windows: Notepad or Notepad++. On Mac: TextEdit (Format → Make Plain Text first) or BBEdit. Cross-platform: VS Code, Sublime Text, or Atom. VLC also opens SRT files directly if you drop them into a video's folder with a matching filename — the subtitles appear on screen when the video plays.
Editing an SRT file
For small text fixes — typos, wording — use a text editor. For retiming, resyncing, or restructuring cues, use a dedicated subtitle editor. Subtitle Edit (Windows, free, actively maintained) is the industry standard for cleanup work. Aegisub (cross-platform, free) is the go-to for advanced styling and karaoke-style timing. Both give you a waveform view so you can align cues to speech visually.
Creating an SRT file manually
Fine for a short clip or a demo. Painful past a few minutes of video.
- Open a new plain text file in Notepad, TextEdit, or VS Code.
- Type
1and press Enter. - Type the timecode range, for example
00:00:00,000 --> 00:00:04,500, and press Enter. - Type the subtitle text — max 2 lines, 42 characters each.
- Press Enter twice to leave a blank line.
- Repeat for each subtitle, incrementing the sequence number.
- Save with a
.srtextension (not.txt) and UTF-8 encoding without BOM.
Generating an SRT file with AI
The realistic option for anything longer than a few minutes. An AI transcription tool listens to the audio, produces word-level timestamps, and formats the result as SRT — all in the time it would take you to type a single block by hand.
- VexaScribe — paste an audio or video file, get an SRT with word-level timing, character-limit-aware cue splits, and multi-language support. 30 minutes free on signup. See our SRT generator page.
- Whisper (local) — free, MIT-licensed, requires Python + a decent GPU or several minutes on CPU. Use with the
--output_format srtflag. - Descript, Rev — commercial alternatives with editor UIs. Descript is video-editor-first; Rev is transcription-first.
Extracting SRT from an existing video
If the video already has embedded captions or an accompanying subtitle track, you can pull them out without re-transcribing. For YouTube videos, yt-dlp --write-auto-subs --sub-format srt downloads the auto-generated captions. For MP4/MKV containers with an embedded subtitle stream, ffmpeg -i input.mkv -map 0:s:0 output.srt extracts the first subtitle track. NLEs (Premiere, DaVinci Resolve, Final Cut) can also export captions to SRT via their subtitle timeline.
Common SRT Problems and How to Fix Them
Seven problems account for almost every broken SRT file we've seen. Here's how to spot and fix each.
⚠Garbled accented characters (é, ñ, ü)
Cause: File saved as ANSI, Windows-1252, or ISO-8859-1 instead of UTF-8
Fix: Re-save as UTF-8 without BOM. In VS Code: click the encoding menu in the bottom-right → 'Save with Encoding' → 'UTF-8'. In Notepad, use the encoding dropdown in the Save As dialog.
⚠CRLF vs LF line endings
Cause: Windows line endings (CRLF) can trip strict SRT parsers
Fix: Use LF (Unix) line endings for max compatibility. VS Code shows the line-ending mode in the status bar and lets you switch with a click.
⚠Timecode uses period instead of comma
Cause: Some tools export in VTT format (00:00:04.500) mislabeled as .srt
Fix: SRT timecodes must use a COMMA before milliseconds: 00:00:04,500 — not 00:00:04.500. Period is VTT.
⚠Special characters need escaping
Cause: Angle brackets and ampersands inside subtitle text collide with tag parsing
Fix: Use UTF-8 directly. If you must escape, & < > are the widely-supported HTML entities.
⚠Player shows 'no subtitles available'
Cause: Filename mismatch or wrong MIME type when served over HTTP
Fix: Match the filename: video.mp4 pairs with video.srt (same base name). For HTTP delivery, serve with MIME type application/x-subrip.
⚠YouTube rejects the upload
Cause: Invalid timestamps (end before start), non-UTF-8, or missing sequence numbers
Fix: Validate with an online SRT checker before uploading. YouTube tolerates minor formatting drift but rejects end-before-start timestamps outright.
⚠Subtitles are out of sync with speech
Cause: Global offset (audio was re-cut) or drift (frame-rate mismatch)
Fix: For a constant offset, bulk-shift all timestamps in Subtitle Edit or Aegisub. For drift, resample against a reference frame rate.
Real Use Cases for SRT Files
YouTube upload
Upload one .srt per language in YouTube Studio → Subtitles → Add Language. Viewers can toggle between languages in the CC menu.
Podcast video export
Turn a podcast episode into a captioned video for LinkedIn, X, TikTok, Instagram Reels. Auto-play with captions on is the default on most social feeds.
Accessibility compliance
WCAG 2.1 SC 1.2.2 requires captions for prerecorded video. SRT is the format most compliance tooling accepts.
Multilingual video
One .srt per language target — video-en.srt, video-es.srt, video-fr.srt. Ship the video once, layer captions per audience.
Educational content
Lecture videos with captions improve retention and let students search transcripts. LMS platforms (Canvas, Moodle, Kaltura) all accept SRT.
Video editor import
Premiere Pro, DaVinci Resolve, and Final Cut Pro all import SRT as an editable subtitle track — including timing, so you don't have to hand-place anything.
Generate an SRT from your audio or video
Upload an audio or video file, get a valid SRT with word-level timestamps, cue splits at 42 characters, and UTF-8 encoding by default. 30 minutes free on signup — no credit card.
Try the SRT generatorFrequently Asked Questions
Can I open an SRT file with Notepad?
Yes. SRT files are plain text — Notepad (Windows), TextEdit (Mac), VS Code, or any text editor can open, view, and edit them.
What's the difference between SRT and VTT?
SRT is the older, more universally supported format. VTT (WebVTT) is designed for HTML5 web video and supports more metadata (styling, positioning, cue settings). For YouTube, either works; for a custom HTML5 player, use VTT.
Does YouTube prefer SRT or VTT?
YouTube accepts both. SRT is more common because it's supported everywhere else, so uploading SRT keeps your file portable.
Can I edit an SRT file in Word?
Technically yes, but Word may add invisible formatting or change encoding that breaks the file. Use a plain-text editor (Notepad, VS Code, Sublime).
How do I create an SRT file for free?
Manually: type it in a text editor following the format spec. Automatically: generate from audio/video with an AI tool like VexaScribe (30 min free at signup) or Whisper locally.
Why is my SRT file showing garbled characters?
Usually an encoding issue. Save the file as UTF-8 (without BOM) and non-Latin characters will display correctly. If you saved from Windows Notepad, check the encoding dropdown when saving.
Related Guides
What Is a VTT File?
Sibling explainer — WebVTT format (W3C 2013), annotated sample, VTT vs SRT decision guide, and browser support matrix.
What Is Closed Captioning?
Authority hub on captioning laws (ADA, WCAG 2.1 SC 1.2.2/1.2.4, DOJ Title II 2024), platform requirements, and file formats compared.
SRT Generator
Create SRT files from audio or video with word-level timestamps.
Subtitle Generator
Generate subtitles in SRT, VTT, and TXT formats with automatic cue splitting.
How to Generate Subtitles from Video
Step-by-step workflow for captioning a video from scratch.
What Is a Transcript?
Sibling authority page — transcript formats, use cases, and how they differ from subtitles.
Video to Text
Extract a text transcript from any video file — MP4, MOV, MKV, WEBM.
MP4 to Text
Convert MP4 audio tracks to text with speaker labels and timestamps.
Podcast Transcription
Turn podcast episodes into searchable transcripts and captioned social clips.