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 one of the most widely supported subtitle formats. YouTube, Vimeo, desktop players like VLC, and editors like Premiere Pro and Final Cut Pro all accept it.

Get a transcript from a YouTube, TikTok or Instagram link →

An SRT file is a plain-text subtitle file that pairs each line of text with a start and end timestamp, so the words appear at the right moment during playback.

  • Each block has four lines: number, timecode, text, blank line.
  • Timecodes use a comma before the milliseconds. WebVTT uses a period.
  • It is plain text, so any text editor opens it. Save it as UTF-8.
  • YouTube, Vimeo and almost every player take .srt as it is.

Definition

SRT stands for SubRip Subtitle file. The format comes from SubRip, a free, open-source Windows program first released in March 2000 (work on it began in 1999). SubRip pulled subtitles from DVDs and video by reading the on-screen subtitle images with optical character recognition (OCR) and turning them into 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, best saved as UTF-8 (the format sets no official encoding), 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 read by most video editing tools. SRT is the lowest common denominator of subtitle formats — most video players that support subtitles support 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.
  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 Player (Mac): Can't load a separate .srt file; it only shows subtitle tracks built into the video. Use VLC instead.
  • YouTube: In YouTube Studio, go to Subtitles, pick the video, then Add → Upload file → select the .srt.
  • Vimeo: Open the video in your library, click Languages, click the + icon, and pick the .srt file. Vimeo accepts SRT and WebVTT, and recommends WebVTT.
  • Premiere Pro / Final Cut / DaVinci Resolve: File → Import (or drag onto timeline as captions track).

For a desktop player such as VLC to load the SRT automatically, give it the same name as the video file (e.g., my-video.mp4 + my-video.srt) and put it in the same folder.

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). VLC's Tools → Track Synchronization (or the G and H keys) shifts all subtitles by a fixed amount. That fixes a constant offset but not drift. For drift, use Subtitle Edit's Synchronization → Change frame rate tool.

Special characters show as garbled boxes or question marks

The file is saved in an encoding the player did not expect. The SRT format carries no encoding declaration, so players simply assume one — and modern players assume UTF-8, while older Windows tools often wrote Windows-1252. 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 subtitle format for HTML5 video (its spec is a W3C Candidate Recommendation). Browsers use it for the HTML <track> element. WebVTT is structurally similar to SRT but adds an explicit WEBVTT file header, supports CSS styling, has cue settings for position 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 uploadsSRT or VTT (both accepted)
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 captions. Viewers can read a video's transcript on YouTube (Show transcript). Channel owners can download the caption file in YouTube Studio (Subtitles → Edit → Options → Download subtitles). 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 can export SRT as well as plain text. (For YouTube links, TranscribeVideo.ai builds the SRT from the video's own captions rather than from the audio.) On clear speech, AI transcription is now accurate enough 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-checked SRT files for a per-minute fee.
  • Existing video files. Many videos ship with embedded subtitle tracks. Tools like MKVToolNix and ffmpeg can extract text-based tracks: ffmpeg -i input.mkv -map 0:s:0 output.srt.
  • Subtitle databases. Sites like 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 supportVery wideAll 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?

  • Wide compatibility — YouTube, Vimeo, VLC, Premiere Pro and Final Cut Pro all accept SRT
  • Plain text — version-controllable, diffable, hand-editable, no special software required
  • Tiny file size — it is only text, so even a feature film's SRT is small
  • Zero learning curve — the format takes 5 minutes to understand fully
  • AI-generation friendly — most transcription services 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
  • —Sending subtitles to platforms that accept SRT (check each one's spec — Netflix, for example, asks for TTML-based files)

Frequently Asked Questions

What does SRT stand for?

SRT stands for SubRip Subtitle (also called SubRip Text). The name comes from SubRip, a free, open-source Windows program first released in 2000 that pulled subtitles from DVDs. The file format SubRip saved became a de facto standard, and .srt files are now made by many tools besides SubRip.

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 YouTube, TikTok or Instagram link into TranscribeVideo.ai, or run a video file through 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 format 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 an encoding the player did not expect. SRT carries no encoding declaration, so players assume one — and modern players assume UTF-8, which is what non-ASCII characters (accented letters, Chinese, Arabic, etc.) need in order to display 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, and even a feature film's SRT is a small text file. 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.

How do I put an SRT file into an MP4?

You have three options. To just watch it, give the .srt the same name as the video and keep both in one folder: VLC then loads the subtitles automatically. To add it as a subtitle track viewers can turn on or off, import the .srt in HandBrake's Subtitles tab and save a new MP4. To make the words a permanent part of the picture, choose Burn In in HandBrake instead. An MP4 can only have one burned-in subtitle track.

Related Tools

Related Pages