Skip to main content
Free · No signup required

What Is an SRT File?

An SRT file is a plain-text subtitle file that pairs lines of text with start and end timestamps so they appear at the right moment in a video. SRT is the most widely supported subtitle format in the world — used by YouTube, Vimeo, Netflix, every major video player, and almost every video editor.

Get a transcript from any video URL →

Definition

SRT stands for SubRip Subtitle file. The format originated in 2001 as the output of an open-source program called SubRip, a Windows tool that extracted subtitles from DVDs by reading the on-screen images and converting them to text. The file format SubRip used to save its output became the de facto standard for plain-text subtitles, and the .srt extension stuck. Today, an SRT file is a simple text document with the .srt extension, encoded as UTF-8, containing four-line blocks: a sequence number, a timecode range, one or more lines of subtitle text, and a blank line separating each block. Because the format is plain text, an SRT file can be opened in any text editor (Notepad, TextEdit, VS Code), edited by hand, version-controlled in Git, and parsed by every video editing tool ever made. SRT is the lowest common denominator of subtitle formats — if a video player supports subtitles at all, it almost certainly supports SRT.

What an SRT file looks like (with example)

The SRT format is so simple you can write one by hand. Here is a complete, valid SRT file with three subtitle blocks:

1
00:00:00,000 --> 00:00:03,500
Welcome to the tutorial.

2
00:00:03,600 --> 00:00:07,200
Today we're going to talk about
how SRT files work.

3
00:00:07,300 --> 00:00:11,000
Let's start with the basic structure.

Each block follows the same rules:

  1. Line 1 — Sequence number. Starts at 1 and increments by 1 for each subtitle. Some players ignore the number; others require strict ordering.
  2. Line 2 — Timecode. The format is HH:MM:SS,mmm --> HH:MM:SS,mmm. Note the comma (not period) separating seconds from milliseconds — this is a hard rule of the SRT format. Hours, minutes, seconds are always two digits; milliseconds are always three.
  3. Lines 3+ — Subtitle text. One or more lines of text shown together. Most players support up to 2 lines per block; some support more.
  4. Blank line. Separates one block from the next. The file should end with a blank line.

That's the entire format. There are no headers, no metadata, no styling tags in standard SRT. Some video players accept basic HTML-like tags inside the text (<b>, <i>, <u>, <font color="...">) but these are extensions, not part of the original spec.

How to open an SRT file

An SRT file is plain text — you can open it with any tool that opens text files. But for actually using the subtitles with a video, the workflow depends on what you're trying to do.

Open as text (read or edit)

  • Windows: Right-click the .srt file → Open with → Notepad. Or use VS Code, Notepad++, or any text editor.
  • macOS: Right-click the .srt file → Open With → TextEdit. Or use VS Code, Sublime Text, BBEdit.
  • Linux: cat filename.srt in terminal, or open in gedit, nano, vim, VS Code.

If TextEdit on Mac shows garbled characters, the file may not be UTF-8. Open it with a more capable editor like VS Code, which auto-detects encoding.

Open with a video (play with subtitles)

  • VLC Media Player (free, all platforms): Open the video in VLC, then drag the .srt file onto the playing video. Or use Subtitle → Add Subtitle File.
  • QuickTime (Mac): Doesn't support SRT natively. Use VLC instead, or convert SRT to TTML/SCC.
  • YouTube: When uploading, go to Subtitles section, click Add → Upload file → Select .srt.
  • Vimeo: Go to your video → Settings → Distribution → Subtitles → Add file.
  • Premiere Pro / Final Cut / DaVinci Resolve: File → Import (or drag onto timeline as captions track).

For the SRT file to display properly with a video, it must be named the same as the video file (e.g., my-video.mp4 + my-video.srt) and placed in the same folder. Most players will auto-detect.

How to create an SRT file

You have three realistic options for creating an SRT file, in order of complexity:

1. Generate it automatically from a video (fastest)

If your video has speech, AI transcription tools can produce an SRT file directly. TranscribeVideo.ai takes a YouTube, TikTok, or Instagram URL and returns a transcript with timestamps; export the result as an SRT file. For local video files, tools like Whisper, Descript, Rev, or Otter can transcribe and export SRT in one step. This is by far the fastest method and the only realistic option for videos longer than a few minutes.

2. Write it by hand in a text editor

For a short clip (under 60 seconds) or for testing, hand-writing an SRT is fine. Open Notepad or TextEdit, follow the four-line block format above, and save the file with the .srt extension. Critical details:

  • Save as UTF-8, not ANSI/Windows-1252. Non-English characters will break otherwise.
  • Use commas, not periods, before milliseconds in timecodes.
  • Include the blank line between blocks — many players will fail silently if it's missing.
  • End the file with a final blank line.

3. Use a subtitle editor (Aegisub, Subtitle Edit, Kapwing)

For longer projects where you want precise timing control, a subtitle editor is faster than hand-writing. Aegisub (free, open-source, all platforms) and Subtitle Edit (free, Windows) are the most popular. They give you a waveform view, click-to-set-timestamp, and spell-check. For browser-based work, Kapwing's free SRT editor is good for short videos.

Common SRT file errors and how to fix them

SRT looks simple but a handful of issues account for almost every "subtitles don't work" problem.

Subtitles appear out of sync

The video frame rate doesn't match what the SRT was authored against. If subtitles are slightly behind the audio and drift further over time, the video is probably 23.976 fps and the SRT was timed for 25 fps (or vice versa). Use VLC's Subtitles → Sync menu to nudge timing in real time, or run the file through a tool like Subtitle Edit which can re-time based on detected video fps.

Special characters show as garbled boxes or question marks

The file is saved in the wrong encoding. SRT must be UTF-8. Open in VS Code, check the bottom-right corner for the encoding, and re-save as UTF-8 if needed. On Windows Notepad, use Save As → Encoding → UTF-8.

Subtitles don't appear at all

Common causes: (a) the .srt file isn't named the same as the video, (b) the file uses periods instead of commas in timecodes, (c) the file is missing blank lines between blocks, (d) the player doesn't support SRT (rare in 2026 but possible for embedded hardware).

Two lines of text become one long line

Some players ignore line breaks within a block. Use a player that supports multi-line subtitles (VLC, MPV) or merge to one line and trust the player's auto-wrap.

Inline tags (italics, bold) don't render

Standard SRT doesn't support styling. The HTML-like tags some players accept (<i>, <b>) are non-standard extensions. If you need styling, use a richer subtitle format like ASS/SSA or WebVTT.

SRT vs VTT vs ASS — when to use each

SRT is the most-supported subtitle format but not the most capable. The two other formats you'll encounter:

WebVTT (.vtt)

The W3C-standardised subtitle format for HTML5 video. Required for the HTML <track> element. WebVTT is structurally similar to SRT but adds an explicit WEBVTT file header, supports CSS styling via cue settings, allows positioning and alignment, and uses periods (not commas) before milliseconds. If you're embedding subtitles in a web page, you need WebVTT, not SRT. If you have an SRT file and need WebVTT, conversion is mostly text replacement (commas to periods, add the WEBVTT header).

SubStation Alpha / Advanced SubStation Alpha (.ssa, .ass)

The format used by anime fansubs and any subtitling that requires precise styling — different fonts, colours, positions, animations. ASS files are far more capable than SRT but only supported by a subset of players (VLC, MPV, mpv-based players). Overkill for most use cases; SRT remains the right choice unless you need styling.

When to pick which

Use caseBest format
YouTube, Vimeo, Netflix uploadsSRT
HTML5 video on a webpageVTT
Premiere Pro / Final Cut / DaVinci ResolveSRT
Styled fansubs, anime, complex positioningASS
Closed captions for broadcast TVSCC, MCC
iTunes / Apple TV submissioniTT

Where SRT files come from in real workflows

If you're working with subtitles, you'll get SRT files from one of these sources:

  • YouTube auto-captions. Open any YouTube video, click the three-dot menu under the player, choose Show transcript, then export. YouTube's caption export is technically not pure SRT but converts cleanly. Or use a YouTube transcript tool to get an SRT directly from a URL.
  • AI transcription services. Tools like Whisper (open-source), Rev, Sonix, Otter, and TranscribeVideo.ai all output SRT alongside plain text. AI transcription is now accurate enough (95%+ for clear speech) that hand-correcting an AI-generated SRT is faster than transcribing from scratch.
  • Professional subtitling services. 3PlayMedia, Rev, GoTranscript, and other paid services deliver human-corrected SRT files for $1-5 per minute.
  • Existing video files. Many videos ship with embedded subtitle tracks. Tools like MKVToolNix and ffmpeg can extract them: ffmpeg -i input.mkv -map 0:s:0 output.srt.
  • Subtitle databases. Sites like Subscene and OpenSubtitles host community-uploaded SRT files for popular movies and TV shows (legal grey area; check rights for your use case).

Feature Comparison

FeatureSRTVTT (WebVTT)ASS
Plain text editableYesYesYes
Header requiredNoYes (WEBVTT)Yes
Styling supportLimited (ad-hoc)Yes (CSS)Full (fonts, colors, position)
HTML5 <track> compatibleNo (convert first)YesNo
Positioning controlNoYesYes
Player supportUniversalAll modernVLC, MPV, niche
Best forYouTube/Vimeo, video editorsWeb embedsAnime, styled subs

How It Works

  1. 1.Get the source — YouTube, TikTok, or Instagram URL → use TranscribeVideo.ai. Local video file → Whisper, Rev, Otter. Existing SRT in a video container → ffmpeg extract.
  2. 2.Open the .srt file in any text editor (VS Code, Notepad, TextEdit) to verify the format — sequential numbers, timecodes with commas, blank lines between blocks, UTF-8 encoding.
  3. 3.Edit if needed — fix typos, adjust timing, split long blocks. For more than minor edits, use Aegisub or Subtitle Edit (both free).
  4. 4.Use the SRT — upload to YouTube/Vimeo, drag onto a video in VLC, or import into Premiere Pro / Final Cut / DaVinci Resolve as a captions track.
  5. 5.Convert if needed — for HTML5 web embeds, convert SRT to VTT (mostly: add WEBVTT header, change commas to periods in timecodes).

Why Use This Tool?

  • Universal compatibility — every major video platform and editor supports SRT
  • Plain text — version-controllable, diffable, hand-editable, no special software required
  • Tiny file size — a 2-hour movie's SRT is typically under 100 KB
  • Zero learning curve — the format takes 5 minutes to understand fully
  • AI-generation friendly — every transcription service can output SRT
  • Convertible — easy to transform to/from VTT, plain text, JSON, CSV

Use Cases

  • Adding closed captions to a YouTube or Vimeo upload
  • Importing subtitles into Premiere Pro, Final Cut, or DaVinci Resolve
  • Translating a video — generate the source-language SRT, then translate the text only
  • Searching across long videos by full-text searching the SRT file
  • Repurposing a video into a blog post by extracting the SRT and re-prosing it
  • Submitting subtitles to streaming platforms (Netflix, Hulu, Amazon all accept SRT input)

Frequently Asked Questions

What does SRT stand for?

SRT stands for SubRip Subtitle. The format gets its name from SubRip, an open-source program created in 2001 that extracted subtitles from DVDs. The file format used by SubRip became the standard, and the .srt extension is now used by every plain-text subtitle file.

Can I open an SRT file without special software?

Yes. An SRT file is plain text with the .srt extension. Open it with Notepad on Windows, TextEdit on Mac, or any text editor. To play an SRT file alongside a video, use VLC Media Player (free, all platforms) — drag the SRT onto the playing video.

How do I create an SRT file?

The fastest way is automatic transcription: paste a video URL into TranscribeVideo.ai, Whisper, or Rev and export the result as SRT. For short clips, hand-write the file in a text editor following the four-line block format (number, timecode, text, blank line). For long edits, use a subtitle editor like Aegisub (free, open-source).

What's the difference between SRT and VTT?

VTT (WebVTT) is the W3C standard for HTML5 video subtitles. Compared to SRT, VTT requires an explicit WEBVTT header at the top, uses periods instead of commas before milliseconds in timecodes, and supports CSS styling. SRT is more universally supported across platforms; VTT is required for HTML5 <track> elements on websites.

Why is my SRT file showing weird characters?

The file is saved in the wrong encoding. SRT must be UTF-8 to display non-ASCII characters (accented letters, Chinese, Arabic, etc.) correctly. Open the file in VS Code or another encoding-aware editor and re-save it as UTF-8. On Windows Notepad, use Save As → Encoding → UTF-8.

Can SRT files have formatting like bold or italic?

Standard SRT does not include styling. Some video players accept HTML-like tags (<i>, <b>, <u>, <font color>) inside subtitle text, but support is inconsistent. For reliable styling, use a richer subtitle format like ASS or VTT. For most use cases, SRT without styling is the right choice.

What's the maximum length for an SRT file?

There is no hard maximum — the format scales to feature-length films. SRT files for 2-hour movies are typically 50-150 KB. Very long videos (multi-hour lectures, conferences) work fine; the only practical limit is your video player's memory when loading the file.

How do I convert SRT to plain text?

Strip the sequence numbers, timecodes, and blank lines. The remaining text is the transcript. Tools like online SRT-to-TXT converters do this automatically; for a one-off, you can use a regex find-and-replace in any text editor: replace lines matching ^\d+$ and ^\d{2}:\d{2}:\d{2}.+$ with empty.

Related Tools

Related Pages