SRT Format Rules with Examples (2025)

Master SRT cue structure—timecodes, text, spacing, and formatting—with valid/invalid examples, real-time validation using SRT Editor, and quick fixes for upload errors.

By ClickyApps Team · Updated 2025-11-10

SRT is the universal caption format for YouTube, Vimeo, and streaming platforms. Master its four-component structure—index, timecode, text, and blank lines—to prevent upload rejections, ensure cross-platform compatibility, and deliver professional captions that pass accessibility standards.

Table of Contents

Category hub: /creator/captions

Quick Start

  1. Open the SRT Editor and paste your caption file
  2. Check for red overlap indicators in timeline view
  3. Verify timecode format uses commas (HH:MM:SS,mmm)
  4. Ensure blank lines separate each cue
  5. Export clean UTF-8 SRT

Open SRT Editor →

Understanding SRT Structure

The Four Essential Components

Every SRT file is a sequence of caption cues in plain text. Each cue contains exactly four elements:

Anatomy of a Valid Cue

Here's a properly formatted SRT cue with all required components:

1
00:00:02,000 --> 00:00:04,500
Hello world!

2
00:00:04,700 --> 00:00:07,200
Welcome to the channel.
Annotated SRT cue showing index, timecode, text, and blank line separator
A valid SRT cue with all four required components.

The blank line after each cue tells video players where one caption ends and the next begins. Missing blank lines cause players to merge captions into unreadable blocks.

SRT Format Rules

Index Numbers

Indexes must:

If you delete a cue mid-file, renumber all subsequent cues. The SRT Editor handles this automatically when you remove or reorder cues.

Timecode Format

SRT timecodes use a strict format: HH:MM:SS,mmm where HH is hours, MM is minutes, SS is seconds, and mmm is milliseconds. Critical rules:

Side-by-side comparison of valid comma format vs invalid period format for SRT timecodes
Valid timecodes use commas; periods cause parsing errors.

Most upload failures trace back to using periods instead of commas. Video players expect commas and will reject files that deviate from this specification.

Text Content and Line Breaks

Caption text must be readable on mobile devices and fast-paced platforms:

For detailed guidance on reading speed and line length, see Timing Best Practices for Readability.

Blank Lines Between Cues

Every cue must end with a single blank line. This separator is not optional—it's how players distinguish one caption from the next.

SRT example showing proper blank line spacing between sequential cues
Blank lines between cues prevent text merging on playback.

Missing blank lines cause players to concatenate captions into a single block. Adding extra blank lines (double or triple spacing) is harmless but unnecessary.

Valid vs Invalid Examples

Valid SRT Example

1
00:00:00,500 --> 00:00:02,800
This is a properly formatted caption.

2
00:00:03,000 --> 00:00:05,500
Notice the blank line after each cue.

3
00:00:05,700 --> 00:00:08,200
Timecodes use commas, not periods.

Invalid Examples and Fixes

Problem: Using periods in timecodes

1
00:00:02.000 --> 00:00:04.500
This will fail to parse.

Fix: Replace periods with commas: 00:00:02,000 --> 00:00:04,500

Problem: Missing blank lines

1
00:00:02,000 --> 00:00:04,500
First caption.
2
00:00:04,700 --> 00:00:07,000
Second caption.

Fix: Add a blank line after "First caption." before the next index.

Problem: Non-sequential indexes

1
00:00:02,000 --> 00:00:04,500
First cue.

3
00:00:04,700 --> 00:00:07,000
Third cue (where's cue 2?).

Fix: Renumber indexes sequentially: 1, 2, 3, 4…

Problem: Overlapping timecodes

1
00:00:02,000 --> 00:00:05,000
First caption runs until 5 seconds.

2
00:00:04,500 --> 00:00:07,000
Second caption starts at 4.5 seconds (overlaps!).

Fix: Adjust start time of cue 2 to 00:00:05,000 or later. Use the Fix Overlapping SRT Cues guide for detailed overlap resolution.

Advanced SRT Features

HTML Formatting Tags

SRT supports basic HTML tags for text styling. Use them sparingly to maintain readability:

1
00:00:02,000 --> 00:00:04,500
<i>This dialogue is off-screen.</i>

2
00:00:04,700 --> 00:00:07,000
And <b>this</b> word is emphasized.

The SRT Editor preserves HTML tags during editing and export, while some third-party editors strip them.

Special Characters and UTF-8

SRT files must be saved with UTF-8 encoding to support emoji, accented characters, and non-Latin scripts:

Avoid Windows-1252 or ANSI encoding, which breaks emoji and international characters. Most modern editors default to UTF-8, but verify before exporting.

SRT Editor interface highlighting timecode errors with red indicators
SRT Editor detects and highlights format errors in real time.

Common Mistakes & Fixes

FAQs

Time separators: comma vs dot?
SRT uses a comma for milliseconds (HH:MM:SS,mmm). Players reject files with periods. This is the most common upload failure.
Are empty cues allowed?
No. Empty cues (index and timecode but no text) confuse screen readers and violate the SRT specification. Remove them before exporting.
How do I force italics or speaker labels?
Use simple HTML tags like <i> or <b> sparingly. The SRT Editor preserves tags during editing and export.
Can I use Unicode characters in SRT files?
Yes, but save as UTF-8 encoding. Avoid Windows-1252 or ANSI, which break emoji, accents, and non-Latin scripts.
What's the maximum line length for captions?
Keep lines under 32-42 characters for mobile readability. The SRT Editor shows live character counts to help you stay within limits.
Should I use CRLF or LF line endings?
Both work, but LF (Unix-style) is recommended for cross-platform compatibility. Most modern players handle both, but LF reduces edge-case parsing issues.
How do I fix "Subtitle parsing failed" errors?
Check for: missing blank lines, invalid timecode format (periods instead of commas), non-sequential indexes, or wrong encoding (must be UTF-8). The SRT Editor auto-detects and highlights these issues.

Use these tools

Transcript Cleaner
Remove timestamps, speakers, fillers; smart punctuation.
Open →
SRT Editor
Edit cues, fix overlaps, nudge timing, export SRT/VTT.
Open →
Hook Generator
Generate 10 punchy hooks tailored to your niche.
Open →
Aspect Ratio Converter
Render vertical, square, or widescreen exports with smart pad & crop in-browser.
Open →
Shorts Clip Finder
Paste transcript → get 5 AI-ranked clips with timestamps.
Open →
Description Template Builder
Generate polished descriptions for YouTube, TikTok, and Instagram — copy, export, or share.
Open →