SRT Format: Timecode Syntax, Full Example & Common Errors - OpenClip
Subtitle File Basics

SRT Format: Syntax, Annotated Example & Common Errors

SRT is the world's most widely used subtitle format — but knowing the timecode syntax is the easy part. This page gives you a complete annotated .srt example you can copy, the errors that silently break SRT files (comma vs period, BOM, overlapping cues), and free tools to generate a valid SRT from any video.

Definition

SRT, which stands for SubRip Subtitle, is a plain-text file format used to store timed subtitle and caption data separately from a video file. Developed alongside the SubRip software used to extract (or 'rip') subtitles from DVDs, SRT has become the most universally supported subtitle format across video players, streaming platforms, and editing tools. An SRT file is a simple text document (saved with the .srt extension) organized into numbered caption blocks. Each block contains three elements: a sequential index number, a timecode range specifying when the subtitle should appear and disappear (formatted as HH:MM:SS,mmm --> HH:MM:SS,mmm), and one or more lines of caption text. Blocks are separated by blank lines. A COMPLETE ANNOTATED EXAMPLE Here is a complete, valid .srt file you can copy into any text editor, save as captions.srt, and load into VLC or upload to YouTube: 1 00:00:01,000 --> 00:00:04,200 Welcome back to the show. 2 00:00:04,400 --> 00:00:07,850 Today we're talking about subtitle files and why they break. 3 00:00:08,100 --> 00:00:11,500 The format is simpler than you think. Reading block 2 line by line: '2' is the sequential index (1, 2, 3... with no gaps). '00:00:04,400 --> 00:00:07,850' means the caption appears at 4.4 seconds and disappears at 7.85 seconds — hours:minutes:seconds,milliseconds, with a COMMA before the milliseconds and the arrow written exactly as space, two hyphens, greater-than, space. The next one or two lines are the caption text itself (two lines maximum is the convention for readability). A single blank line ends the block. Note that block 2 ends at 07,850 and block 3 starts at 08,100 — cues must not overlap. COMMON SRT ERRORS (AND HOW TO FIX THEM) Comma vs period in milliseconds: SRT requires a comma before milliseconds (00:00:04,400). WebVTT uses a period (00:00:04.400). This is the single most common breakage: export a VTT-style file with periods, rename it .srt, and strict parsers — including some social platforms and editing tools — will reject every cue or shift timing. If your 'SRT' has periods in the timecodes, it is not a valid SRT. BOM and encoding issues: files saved as 'UTF-8 with BOM' start with three invisible bytes that some players read as garbage attached to the first index number, causing the first caption — or the whole file — to fail parsing. Save as plain UTF-8 without BOM. Using old encodings like ANSI/Latin-1 instead of UTF-8 corrupts accented characters and non-Latin scripts into mojibake. Overlapping or backwards timecodes: each cue's end time must be after its start time, and the next cue should start at or after the previous cue's end. Overlaps make some players drop cues or stack captions on top of each other, and most subtitle editors flag them as errors. Formatting slips that break parsing: a missing blank line between blocks merges two cues into one; a malformed arrow (-> or —> instead of -->) invalidates the cue; skipped or duplicated index numbers confuse strict parsers; and a wrong extension (.txt saved by a text editor as captions.srt.txt) makes platforms refuse the upload entirely. GENERATE A VALID SRT FROM ANY VIDEO, FREE You rarely need to hand-write SRT files. OpenClip's free in-browser tools produce correctly formatted SRT output from any video with just an account: the Transcribe Video to Text tool (openclip.app/tools/transcribe-video-to-text) turns a video's audio into a transcript with word-level timestamps and exports it as a clean .srt, and the Auto Captions tool (openclip.app/tools/auto-captions) generates timed captions you can download as SRT or burn directly into the video as styled captions. Both handle the timecode syntax, encoding, and cue spacing automatically, so the errors above never happen. WHY SRT REMAINS THE STANDARD Because SRT is plain text with no proprietary encoding, it can be created and edited in any text editor and is readable by humans without special software. This simplicity is a major reason for its dominance — virtually every platform that supports external subtitles accepts SRT, including YouTube, Facebook, LinkedIn, Vimeo, VLC, and most non-linear editing software like Premiere Pro, Final Cut Pro, and DaVinci Resolve. SRT files are external to the video — they are separate files delivered alongside the video rather than baked into the frames. This means viewers or platforms can choose to display them or not, and the same video can have multiple SRT files for different languages. However, it also means SRT captions are generally displayed in the platform's default font and style with limited visual customization compared to burned-in captions. For AI-driven workflows, SRT files are a common output of speech-to-text and video transcription engines. Creators can generate an SRT file from a long-form video, upload it to YouTube for closed captions, or import it into an editing tool to burn in stylized captions for social clips.

Related Terms

Features

Copy-Paste Ready Example

A complete annotated .srt file you can copy into a text editor, save, and load into VLC or YouTube — every line of the syntax explained, including the comma-millisecond timecodes.

Generate an SRT Free

OpenClip's free browser tools — Transcribe Video to Text and Auto Captions — turn any video into a correctly formatted .srt with word-level timing, no subscription required.

Common Error Checklist

The failures that silently break SRT files: period-instead-of-comma milliseconds, UTF-8 BOM headers, overlapping cues, malformed arrows, and missing blank lines between blocks.

Universal Platform Support

SRT is accepted by YouTube, Facebook, LinkedIn, Vimeo, VLC, and virtually every professional video editing application, making it the safest choice for cross-platform subtitle delivery.

Multi-Language Flexibility

Because SRT files are external to the video, a single video can be paired with multiple SRT files in different languages — enabling easy localization without re-encoding the video itself.

Timecode-Based Sync

Every caption block includes precise start and end timecodes down to the millisecond, ensuring subtitle text appears and disappears exactly when intended during playback.

Frequently Asked Questions

An SRT file is a plain-text document with numbered caption blocks. Each block has an index number on the first line, a timecode range on the second line (e.g., 00:00:04,200 --> 00:00:07,800 — note the comma before the milliseconds), and the caption text on the following line(s). Blocks are separated by a blank line. The complete annotated example on this page is a valid file you can copy, save as captions.srt, and use immediately.

The usual suspects, in order of likelihood: periods instead of commas before the milliseconds (that's VTT syntax, not SRT), the file saved as UTF-8 with BOM so the first cue fails to parse, a malformed arrow (it must be exactly -->), missing blank lines between caption blocks, overlapping timecodes, or the file actually being named captions.srt.txt by your text editor. Fixing the comma and re-saving as plain UTF-8 without BOM resolves most rejections.

Commas. A valid SRT timecode is 00:01:23,456 — hours, minutes, seconds, then a comma before the three millisecond digits. Periods (00:01:23.456) belong to the WebVTT format. Many players tolerate the mix-up, but strict parsers on social platforms and in editing software reject it, which is why a 'working' SRT can fail the moment you upload it somewhere new.

Use OpenClip's free in-browser tools — no subscription needed, just an account. The Transcribe Video to Text tool (openclip.app/tools/transcribe-video-to-text) transcribes any video with word-level timestamps and exports a clean .srt, and the Auto Captions tool (openclip.app/tools/auto-captions) generates timed captions you can download as SRT or burn into the video as styled captions. Both handle timecode syntax, encoding, and cue spacing automatically.

SRT and VTT are both plain-text subtitle formats with similar structures, but VTT (WebVTT) is designed for web-based video playback via the HTML5 <track> element and supports extra styling features like positioning, alignment, and CSS-based styling. The most practical difference: SRT uses commas as millisecond separators while VTT uses periods, and VTT files start with a WEBVTT header line. VTT is preferred for web video; SRT has broader support across desktop players and social platforms.

Yes. YouTube accepts SRT files as closed captions. You can upload an SRT file in YouTube Studio under the 'Subtitles' section of any video, and YouTube will display those captions to viewers who have captions enabled. YouTube also auto-generates its own captions, but uploading a corrected SRT file gives you full control over accuracy.

An SRT file is a separate text document that sits alongside a video — captions are displayed by the player or platform when the file is loaded. Burned-in captions are permanently rendered into the video frames and are always visible regardless of player. SRT files are toggleable and styleable by the platform, while burned-in captions offer full visual control but cannot be changed after export.

SRT has limited, informal support for basic HTML-style tags like <b> for bold, <i> for italic, and <u> for underline. However, support for these tags varies across players and platforms — many ignore them entirely. For reliable visual styling of captions, burned-in captions or VTT with CSS styling are better options.

Skip the Hand-Written SRT Entirely

Generate a correctly formatted SRT from any video with OpenClip's free transcription and auto-caption tools — or let OpenClip burn word-level styled captions straight into your clips.

Related Pages