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:

  • Index number: Sequential counter starting from 1
  • Timecode range: Start and end time in HH:MM:SS,mmm format
  • Text content: Caption text, 1-2 lines maximum
  • Blank line: Single empty line separating cues

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:

  • Start at 1 (not 0)
  • Increment by exactly one with no gaps
  • Appear on their own line before each timecode
  • Match the sequential order of cues in the file

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:

  • Always use commas to separate seconds from milliseconds (never periods or colons)
  • Include leading zeros: 00:00:05,000 not 0:0:5,0
  • Separate start and end times with --> (space, two hyphens, greater-than, space)
  • End time must be later than start time
  • Timecodes must not overlap with adjacent cues
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:

  • Keep lines under 32-42 characters for mobile readability
  • Use maximum 2 lines per cue; split longer dialogue into new cues
  • Maintain reading speed of 160-180 words per minute (WPM)
  • Keep cues on screen for 1-7 seconds (1s minimum, 7s maximum)
  • Break at natural phrase boundaries, not mid-word

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:

  • <i>italics</i> — For emphasis or off-screen dialogue
  • <b>bold</b> — For strong emphasis
  • <u>underline</u> — Rarely used; avoid unless necessary
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:

  • Emoji: 🎉, 🔥, 💯 work if saved as UTF-8
  • Accents: café, naïve, résumé render correctly
  • Non-Latin scripts: 你好, Привет, مرحبا display properly

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

  • Using periods instead of commas in timecodes → Replace with commas (HH:MM:SS,mmm). Video players reject files with periods.
  • Missing blank lines between cues → Add a single blank line after each cue's text. Players merge captions without separators.
  • Overlapping timecodes → Use SRT Editor overlap detection to identify and fix conflicts automatically.
  • Non-sequential indexes → Renumber cues sequentially starting from 1. Gaps or duplicates confuse parsers.
  • Lines longer than 42 characters → Break text across two lines or split into a new cue to maintain mobile readability.

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 →