Verified July 2026
How to Create an SRT File — 3 Methods with Working Examples
An SRT file is plain text with a specific structure: sequence number, timecode, caption text, blank line. Three ways to make one: type it manually in a text editor (free, slow), use a free desktop tool like Subtitle Edit or Aegisub (free, medium), or generate it with AI from your audio/video (fastest).
Key takeaways
- ●SRT format = sequence + timecode + text + blank line. Repeat for each cue. Save as .srt with UTF-8 encoding.
- ●Timecode uses comma, not period. HH:MM:SS,mmm — the comma before milliseconds is the SRT rule. Period is WebVTT format. Getting this wrong breaks the file in most players.
- ●Three creation paths with real tradeoffs. Manual (2-4 hrs per video hour, free, deep control) → Desktop tool (30-60 min, free, professional) → AI generation (5-15 min, needs review, fastest).
- ●UTF-8 encoding is non-negotiable. Notepad's default (Windows-1252) breaks accented characters. Always Save As → Encoding: UTF-8.
- ●Line length: 32-42 characters, max 2 lines per cue. Netflix says 42, BBC 37-39. Reading speed: 17 CPS for adults.
- ●SRT works everywhere; WebVTT is for HTML5 web only. Use SRT for YouTube, Premiere, DaVinci, CapCut. Convert to VTT only for HTML5
<video>tag usage.
SRT file anatomy — the format in one paragraph
An SRT (SubRip) file is plain text. Each caption cue has four parts: (1) a sequence number starting at 1, (2) a timecode line in the format HH:MM:SS,mmm --> HH:MM:SS,mmm, (3) the caption text (one or two lines), and (4) a blank line. Repeat for each cue. Save the whole thing with a .srt extension and UTF-8 encoding.
Working example (3 cues)
1 00:00:00,000 --> 00:00:03,500 Welcome to the tutorial. 2 00:00:03,500 --> 00:00:07,200 Today we're building an SRT file from scratch in Notepad. 3 00:00:07,200 --> 00:00:11,000 It's easier than you think — but the timecode format has quirks.
Copy this into Notepad, save as example.srt with UTF-8 encoding, and it's a valid SRT file you can drag into VLC, YouTube Studio, or Premiere.
That's the entire spec. There's no header, no metadata, no styling markup. SubRip was designed in the late 1990s as a lightweight extract format for DVD ripping, and the simplicity is what made it universal.
Method 1 — Create an SRT manually in a text editor
Works for tiny files, teaches you the format, and requires nothing but Notepad, TextEdit, or VS Code.
Step-by-step (Notepad on Windows)
- Open Notepad (Start → Notepad, or Win+R → notepad).
- Type sequence number 1 on the first line, press Enter.
- Type the timecode line:
00:00:00,000 --> 00:00:03,500— comma before milliseconds, arrow is-->(two dashes and a right-angle bracket, no space between them), then Enter. - Type the caption text (max 2 lines, 32-42 characters per line), then Enter.
- Add a blank line (press Enter once more) — this separates cues.
- Repeat for each cue: increment the sequence number (2, 3, 4...) and provide the next timecode and text.
- Save the file: File → Save As. Change "Save as type" to All Files. Type the filename with .srt extension (e.g.,
my-video.srt). Set Encoding to UTF-8. Click Save.
Windows / Mac gotchas. Notepad on older Windows saves as ANSI (Windows-1252) by default — accented characters like é and ñ turn into garbage. Always pick UTF-8 in the encoding dropdown. TextEdit on Mac saves as .rtf by default — use Format → Make Plain Text first, then save as .srt with the extension typed explicitly (uncheck "Hide extension").
How long does this take? Manually creating an SRT for a 60-minute video is 2-4 hours of work: you need to listen to the audio, mark timestamps, type the text, and verify each cue. For anything longer than 5 minutes, Method 2 or Method 3 is dramatically faster.
Method 2 — Use a free desktop tool (Subtitle Edit or Aegisub)
The middle path most guides skip. Two free open-source tools give you proper SRT editing with sync verification, syntax help, and reading-speed enforcement — without the AI cost.
Subtitle Edit
Windows-first (also runs on Linux via Mono/Wine). Free, MIT licensed. nikse.dk/subtitleedit
Best for
Broadcast-grade timing, syntax checking, format conversion (SRT ↔ VTT ↔ ASS ↔ SBV), integrated waveform view.
Workflow
Open Subtitle Edit → File → Import → Select your audio/video → work through cues on the waveform → File → Save as SubRip (.srt).
Aegisub
Cross-platform (Windows/Mac/Linux). Free, BSD licensed. Originally built for anime fan-subtitle communities. aegisub.org
Best for
Precise timing (karaoke, anime), advanced styling (ASS format), macOS users (Subtitle Edit's Mac support is second-class).
Workflow
Open Aegisub → Video → Open Video → Audio → Open Audio from Video → time cues on the audio waveform → File → Export Subtitles as SRT.
Both tools calculate characters-per-second (CPS) per cue and flag violations of the 17 CPS reading-speed limit. Both write UTF-8 by default. For a 60-minute video, expect 30-60 minutes of work — dramatically faster than manual Notepad, without the accuracy variance of AI generation.
Method 3 — AI generation from audio or video
The fastest path. Upload your audio or video to a modern AI transcription tool — VexaScribe, Descript, Rev AI, or comparable — and download a ready-to-use SRT file in minutes. Whisper Large-v3 (the model VexaScribe runs) produces timestamps automatically in the same pass as the transcription.
Workflow (VexaScribe)
- Upload your audio or video — MP3, WAV, M4A, MP4, MOV, MKV up to 5 GB. Or paste a YouTube URL directly.
- Whisper Large-v3 transcribes the audio at 4-10× real-time — a 60-minute video finishes in 5-15 minutes. Speaker diarization runs in the same pass.
- Review the transcript in the built-in editor. Fix proper nouns and technical terms. Rename speakers (Speaker 1 → Sarah) and the change applies everywhere.
- Export as SRT — one click. UTF-8, properly formatted, timecodes valid. Also available: VTT, TXT, DOCX, JSON.
When AI wins
- You have the audio/video and don't have a transcript yet
- The content is 10+ minutes (AI cost/time savings compound with length)
- You need to caption in a language you don't speak — Whisper supports 99 languages
- Fast turnaround matters (podcast episode, meeting recap, marketing video)
When AI struggles
- Heavy technical or medical vocabulary
- Multiple overlapping speakers with shared mic
- Loud music or background noise
- Broadcast-grade compliance where 99%+ accuracy is required
VexaScribe offers 30 minutes free at signup — no credit card, full SRT export. Enough for one short video or a couple of clips to evaluate quality before committing. See SRT generator for the tool page, and how accurate is Whisper for the underlying accuracy math.
Method comparison — pick the right one
| Method | Time / video hour | Cost | Best when |
|---|---|---|---|
| Manual (text editor) | 2-4 hours per video hour | Free | You have <5 minutes of content, want to learn the format, or need surgical control over one specific cue |
| Desktop tool (Subtitle Edit, Aegisub) | 30-60 minutes per video hour | Free | You want free + professional, need precise timing control (broadcast, karaoke), or you're translating existing captions |
| AI generation (VexaScribe, Descript, Rev AI) | 5-15 minutes per video hour | Free tier + $2-20/mo for volume | You have the audio/video and want an SRT quickly — most creator, corporate, and podcast workflows |
Timecode format — the details that trip people up
Most broken SRT files fail on the timecode format. Four rules that matter:
Comma, not period
SRT uses a comma before milliseconds: 00:01:23,500. WebVTT uses a period: 00:01:23.500. Mixing them up breaks the file in most players — VLC and YouTube will either silently fail or display nothing.
The arrow: exactly -->
Two dashes and a right-angle bracket, no space between them. Common mistakes: single dash (->), three dashes (--->), Unicode arrow characters (→). All of these break parsing. Spaces before and after the arrow are fine and standard.
Milliseconds are always 3 digits
00:01:23,5 is invalid. 00:01:23,500 is correct. Zero-pad the milliseconds: 500 not 5, 050 not 50, 005 not 5. Hours, minutes, and seconds are always 2 digits: 01 not 1.
No overlapping cues
If Cue 1 ends at 00:01:27,000, Cue 2 must start at or after 00:01:27,000. Overlapping cues are technically valid SRT syntax but most players display only one cue at a time — the overlap produces visible glitches or silently drops one of them. Subtitle Edit and Aegisub flag overlaps automatically.
Attach your SRT to YouTube, Premiere, DaVinci, CapCut
Once you have a valid SRT file, attaching it depends on the platform. The five most common workflows:
YouTube Studio
Steps: Content → click your video → Subtitles → Add language → click the language you want → Add → Upload file → Choose "With timing" → select your .srt → Publish
Notes: YouTube indexes uploaded SRT text for search — better SEO than auto-captions. UTF-8 is required.
Premiere Pro
Steps: File → Import → select .srt → drag from Project panel onto a Caption track above your video. Window → Text → Captions tab to edit inline.
Notes: Adobe converts to their internal caption format on import. Export as embedded closed captions or as a sidecar SRT.
DaVinci Resolve
Steps: File → Import → Subtitle → select .srt → drag to the Edit page timeline as a Subtitle track.
Notes: Free tier supports SRT import. Delivery page can burn in or export as separate track.
CapCut (desktop + mobile)
Steps: Import your video → Captions → Import subtitles → select .srt file. On mobile: Captions → Import → pick .srt from Files.
Notes: CapCut also has built-in auto-captions if you want to generate rather than import.
HTML5 web video
Steps: Use <track kind="captions" src="captions.vtt" srclang="en" label="English"> inside your <video> element. Convert SRT to VTT with a free converter or Subtitle Edit.
Notes: HTML5 <track> officially supports WebVTT, not SRT. Same content, different timecode separator (period vs comma).
For platform-by-platform depth including iPhone Photos, Instagram Reels burn-in, and TikTok, see how to add subtitles to a video.
Common SRT errors and fixes
Seven mistakes that break SRT files, in rough order of frequency:
1.Period instead of comma in timecode
Example
00:01:23.500 --> 00:01:27.000 (WRONG — this is WebVTT format)
Fix: Use a comma: 00:01:23,500 --> 00:01:27,000. Period is the WebVTT separator; SRT uses comma.
2.Missing blank line between cues
Example
Cue 1 text\n2\n00:01:27,000 --> 00:01:30,000\nCue 2 text (WRONG — no blank line before "2")
Fix: Add a blank line between every cue. The blank line is what tells the parser where one cue ends and the next begins.
3.File saved as .txt instead of .srt
Example
captions.txt (WRONG — Windows/Mac added the extension automatically)
Fix: In Notepad: File → Save As → "Save as type" = All Files, then type captions.srt explicitly. In TextEdit: uncheck "Hide extension" and type .srt.
4.Wrong encoding — accented characters break
Example
"Caf\uFFFD" appears instead of "Café" in the player
Fix: Save as UTF-8. Notepad: File → Save As → Encoding: UTF-8. TextEdit: Format → Make Plain Text first, then save. VS Code: bottom-right encoding indicator → Save with Encoding → UTF-8.
5.Overlapping timecodes
Example
Cue 1 ends 00:01:27,000; Cue 2 starts 00:01:26,500 (WRONG — 500ms overlap)
Fix: Cue 2 must start at or after Cue 1's end time. Many players display only one cue at a time; overlaps produce visible glitches.
6.Cue duration too short to read
Example
Cue text 42 characters, duration 800ms — reading speed 52.5 chars/second, way over Netflix's 17 CPS
Fix: Give each cue at least 1 second (Netflix minimum). Aim for 17 chars/second or fewer for accessibility.
7.More than 2 lines per cue
Example
3-line cue with 42 characters each — blocks too much of the video frame
Fix: Max 2 lines per cue at 32-42 characters per line (Netflix 42, BBC 37-39). Split into two cues if needed.
Frequently asked questions
What's the fastest way to create an SRT file?
AI generation. Upload your audio or video to an AI transcription tool (VexaScribe, Descript, Rev AI) — the tool transcribes the audio with Whisper Large-v3 or a comparable model and exports a ready-to-use SRT file in minutes. A 60-minute video produces a valid SRT file in 5-15 minutes at 90-95% accuracy on clean audio. Compare that to manual creation in a text editor (2-4 hours for the same video) or manual timing in a desktop tool like Subtitle Edit (30-60 minutes for the same video).
Can I create an SRT file for free?
Yes, three paths. (1) Manual — write the SRT in Notepad, TextEdit, or VS Code for free. Time-intensive but zero cost. (2) Free desktop tools — Subtitle Edit (Windows, free, open source) and Aegisub (Windows/Mac/Linux, free, open source) provide proper SRT editing with sync verification and syntax checking. (3) Free AI tier — VexaScribe offers 30 minutes of AI transcription free at signup with no credit card, enough to generate a proper SRT from a short video. Kapwing and Happy Scribe also have free tiers with different limits.
What does the timecode format in an SRT file look like?
HH:MM:SS,mmm — hours, minutes, seconds, and milliseconds separated by a comma (not a period). Example: 00:01:23,500 means 1 minute, 23.5 seconds into the video. Two timecodes are joined by a specific arrow: 00:01:23,500 --> 00:01:27,000. The arrow has two dashes and a right-angle bracket, no spaces around the dashes. Using a period instead of a comma (00:01:23.500) is the WebVTT format, not SRT — a common mistake that breaks the file in most players.
What encoding should I save my SRT file in?
UTF-8. This is the most common source of broken SRT files: Notepad on Windows defaults to Windows-1252 (ANSI), which fails on accented characters, non-Latin scripts, or emoji. YouTube, Premiere, and DaVinci all expect UTF-8. In Notepad, use File → Save As → Encoding: UTF-8. In TextEdit on Mac, use Format → Make Plain Text before saving. VS Code uses UTF-8 by default. Subtitle Edit and Aegisub write UTF-8 by default.
Do I need a special extension when saving?
Yes — the file must end in .srt. In Notepad, use File → Save As, set "Save as type" to All Files (not Text Documents), and type the filename with the .srt extension explicitly: my-video.srt. If you save as "my-video" with type Text Documents, Windows adds .txt and creates my-video.txt, which won't work as an SRT file. TextEdit on Mac has the same trap — use "Hide extension" checkbox and type .srt manually.
How long should each caption line be?
Industry standard: 32-42 characters per line, maximum 2 lines per subtitle block. Netflix specifies 42 characters per line for English; BBC specifies 37-39. The 2-line maximum is universal — 3+ lines block too much visual content. Reading speed should target 17 characters per second (Netflix adult) or 20 CPS (Netflix children). Subtitle Edit and Aegisub calculate CPS per block automatically and flag violations. Most AI generation tools do not enforce these limits — a manual pass or post-processing step is often needed for professional output.
What's the difference between SRT and WebVTT?
SRT (SubRip) uses HH:MM:SS,mmm timecode format (comma milliseconds separator) and doesn't support styling. WebVTT uses HH:MM:SS.mmm format (period separator) and supports CSS-like styling, positioning, and cue metadata. SRT was designed in the late 1990s for the SubRip DVD-ripping tool; WebVTT was standardized by W3C in 2010 for HTML5 video. In practice: use SRT for YouTube, video editors (Premiere, DaVinci, CapCut), Blu-ray, and general video work. Use WebVTT specifically for HTML5 web video via the <track> element.
Can I convert a transcript I already have into an SRT file?
Yes, but you need timestamps. A plain-text transcript without timestamps can't become a valid SRT file without re-syncing against the audio. Options: (1) Manually align in Subtitle Edit — import audio, listen, insert timing markers, save as SRT. (2) Use forced alignment tools — WhisperX or aeneas can align an existing transcript to audio and produce timestamps. (3) Re-transcribe with an AI tool that outputs SRT directly (fastest — the AI generates timestamps in the same pass as transcription). VexaScribe, Descript, and Rev AI all produce SRT natively from audio/video upload.
Related guides
SRT generator
Skip the manual steps — upload audio/video and get an AI-generated SRT file in minutes with Whisper Large-v3
Video to SRT
Turn any MP4, MOV, or MKV video directly into a ready-to-use SRT subtitle file
How to add subtitles to a video
Step-by-step per platform — YouTube, Premiere, DaVinci, CapCut, iPhone
Captions vs subtitles
The technical and legal difference between captions and subtitles — file formats, regulations, and when to use each
What is closed captioning?
Definition, how CC differs from subtitles and SDH, how modern captions are made, and when you legally need them
What is audio transcription?
The upstream process that produces the text that goes into your SRT file
Skip the manual steps — generate SRT with AI
Upload your audio or video and get a ready-to-use SRT file in minutes. Whisper Large-v3 accuracy, 99 languages, UTF-8 encoded, timecodes valid. 30 minutes free at signup — no credit card.