Guide · subtitle basics

The SRT File Format Explained: Index, Timecode, Text

The SRT file format is the most widely supported sidecar subtitle format: an .srt file is plain text, and every subtitle in it has four parts, in order: an index number, a timecode (hours:minutes:seconds,milliseconds --> hours:minutes:seconds,milliseconds), one or two lines of text, and a blank line. Once you can read those four parts, you can open, check and fix any SRT file in a text editor. This guide goes through the rules for each part, encoding and line endings, a sample laid out the way our dubbing export writes it, the eight errors that most often break an import into CapCut, Premiere Pro or YouTube, and the free tool that fixes each one.

  • Annotated example
  • 8 common import errors
  • A fix tool for each

Updated Nov 5, 2026Fact-checked Nov 5, 2026

episode-01.en.srt

UTF-8
  1. 1

    00:00:00,400 --> 00:00:06,900

    The champagne tower is barely up when Nora opens her eyes — she's back on the day they framed her.

  2. 2

    00:00:07,100 --> 00:00:11,800

    Sign the share transfer, little sister. Everyone's waiting on you.

  3. 3

    00:00:12,000 --> 00:00:15,700

    Sign it? Maybe look at the big screen first, Vivian.

  4. 4

    00:00:15,900 --> 00:00:22,000

    The lights dim. On screen, security footage — Vivian tipping powder into Nora's glass.

  5. 5

    00:00:22,200 --> 00:00:25,000

    Turn it off! Who told you to play that?

One cue per line, timed to the audioMP3SRTZIP
On this page
Write one yourself

How to write an SRT file by hand in 6 steps

Few people hand-type subtitles for a whole series, but writing two or three cues yourself makes every rule of the SRT file format stick, and errors become easy to spot later.

  1. 01

    Step 1

    Create a plain-text file

    Use Notepad on Windows, TextEdit on a Mac switched to plain text (Format → Make Plain Text), or a code editor such as VS Code. Avoid Word: it saves a formatted document, not plain text.

    A bespectacled man types on a vintage typewriter in front of green curtains
    SRT is plain text: write it line by line in a plain-text editor, not in Word.Image: cottonbro studio / Pexels
  2. 02

    Step 2

    Line one: the index

    The first cue is 1, and each cue after it adds one. Players show cues by their timecodes, but some programs reject a file with skipped or repeated numbers.

  3. 03

    Step 3

    Line two: the timecode

    Write start --> end, for example 00:00:01,000 --> 00:00:03,500. Hours, minutes and seconds take two digits each, milliseconds take three, a comma comes before the milliseconds, and there is one space on each side of the arrow.

  4. 04

    Step 4

    Line three onward: the text

    Use one or two lines per cue: two is fine for landscape video, one is better for vertical short dramas. Never leave a blank line inside the text, because a blank line ends the cue.

  5. 05

    Step 5

    Leave a blank line, then the next cue

    Put one empty line after each cue, then the next index. A trailing blank line after the last cue is fine too.

  6. 06

    Step 6

    Save as UTF-8 with an .srt extension

    Choose UTF-8 in the save dialog and name the file "episode-01.srt". Windows hides extensions by default, so check that you didn't end up with "episode-01.srt.txt": turn on View → Show → File name extensions in File Explorer and look again.

    Tip · Drop the saved file into a player or editor to test it; that beats checking by eye.

Line by line

An SRT file format example, taken apart line by line

The quickest way to learn the SRT file format is to take a real file apart. These three cues follow the rules AI Drama Voice uses when it exports dubbing subtitles: one cue per script line, the first cue starting at 0.35 seconds, and 0.35 seconds between lines. Cue lengths here are illustrative; in a real file they come from each line's dubbed audio.

A three-cue SRT file is 11 lines. The text holds only the spoken line, with no speaker name or emotion tag.
LineIn the fileWhat it is
11Index
200:00:00,350 --> 00:00:05,980Timecode: shown from 0.35 s to 5.98 s
3The champagne tower is barely up when Nora opens her eyes — she's back on the day they framed her.Subtitle text
4(blank)End of this cue
52Next index
600:00:06,330 --> 00:00:09,410Start = previous end + 0.35 s
7Sign the share transfer, little sister. Everyone's waiting on you.Subtitle text
8(blank)End of this cue
93Index
1000:00:09,760 --> 00:00:12,540Timecode
11Sign it? Maybe look at the big screen first, Vivian.Subtitle text

Six rules for the SRT timecode format

  1. 1.Fixed width: two digits each for hours, minutes and seconds, three for milliseconds. Write 00:00:05,980, not 0:0:5,98.
  2. 2.A comma before the milliseconds. A period (00:00:05.980) is WebVTT style, and many editors will refuse it in an SRT.
  3. 3.The arrow is two hyphens and a greater-than sign (-->), with one space on each side.
  4. 4.The start must come before the end.
  5. 5.A cue should not start before the previous one ends. When cues overlap, many players stack both on screen at once.
  6. 6.Cues run in time order, and the index order matches it.

The name comes from SubRip, a program that read subtitles off DVD video frames and wrote them out as this text format. There has never been an official specification, so tolerance varies: media players often accept a one-digit hour or a period before the milliseconds, while editors and video platforms are more likely to reject the file. Follow these six rules and every program will read it.

A camera operator works a rigged camera with a monitor in the dark in front of a blue glow
SRT comes from SubRip, which read subtitles off DVD frames: the subtitles live in their own file, apart from the picture.Image: Caleb Oquendo / Pexels

Subtitle text: how many lines, and can it be styled?

Keep a cue to two lines at most, and to one for vertical short dramas; for line widths and splitting long cues, see the subtitle line length checker. Many players honour the HTML-style tags <i>, <b>, <u> and <font color="#ffff00">, and some accept {\an8} borrowed from ASS to move a line to the top of the frame, but none of this works everywhere: YouTube's help page says it ignores styling in SRT. If you need set fonts, colours and positions, use ASS instead.

Encoding and line endings: the two things people forget

Nothing in an SRT file says which encoding it uses, so the program reading it has to guess. UTF-8 is the safe choice, especially for Chinese, Thai or any non-Latin script; a file saved in GBK or Big5 can turn to gibberish on another machine or in another program. A UTF-8 file may begin with a BOM (byte order mark), which helps older Windows software recognise UTF-8, though a few old programs read the BOM as part of the first index and drop the first cue. Line endings come as Windows CRLF or Mac and Linux LF; mainstream software reads both, and only a few old Windows programs insist on CRLF.

What an AI Drama Voice SRT looks like

UTF-8 with a BOM, CRLF line endings, one cue per script line, a single line of text per cue and no styling tags. Files are named like "title.en.srt", with the language code before the extension. CapCut and Premiere Pro read them as they are.

Dubbing progress panel: finished, 16 of 16 lines, English and Spanish language tabs, three lines with play buttons, and buttons for Download MP3, Download SRT and All languages (ZIP)
When dubbing finishes, Download SRT gives the subtitles for the current language, timed to where each line sits in the MP3.Product screenshot
Opening one

How to open an SRT file: read it, play it, edit with it

What opens an SRT file depends on what you want from it. It is plain text, so any text editor shows it; to see it with the video, use a media player or a video editor.

YouTube requirements as listed on its help page, checked 2026-11.
ToOpen it withNote
Read or edit the textNotepad, TextEdit in plain-text mode, VS CodeDon't edit and re-save in Word; it breaks the format
Watch it with the videoVLC, PotPlayer or another media playerName it like the video and keep both in one folder, and it usually loads automatically; or drag it onto the player window
Edit a vertical or landscape cutCapCut, Jianying, Premiere ProImport steps for CapCut and Jianying: the CapCut sync guide
Publish on a video platformThe platform's caption uploadYouTube accepts SRT in basic form and plain UTF-8 (see YouTube Help)

If double-clicking an .srt does nothing, or opens some unexpected program, the system simply has no default app for .srt. Right-click, choose Open with, and pick a text editor or your player. If the text editor shows gibberish, the file isn't UTF-8; convert it with the garbled subtitle fixer first.

TXT to SRT tool: script lines with speaker names and speaking-rate settings on the left, and on the right a preview of the subtitle cues, each with its index, an orange start --> end timecode and the line
The preview in our TXT to SRT tool shows exactly what an SRT file holds, cue by cue: index, timecode, text.Product screenshot
Formats compared

SRT vs VTT, plus ASS

SRT and VTT differ mainly in how time is written and whether position can be set; ASS is a different kind of format, built for styling and effects. For converting between them and what each conversion loses, see the subtitle format converter.

FeatureSRTVTT (WebVTT)ASS
Timecode00:01:02,50000:01:02.5000:01:02.50
File headerNoneFirst line must be WEBVTT[Script Info] and other sections
Cue numbersOn every cueOptionalNone; each cue is a Dialogue line
Fonts and coloursBarelyLimitedYes
Position on screenNoSet with cue settingsYes
Typical useEditors, players, platform uploadsHTML5 web playersFansubs, styled subtitles
Upload to YouTubeYesYesNo

Checked Nov 2026 · The YouTube row follows the formats listed on its help page: SRT and WebVTT are listed, ASS is not.

Sources:YouTube Help: Supported subtitle and closed caption filesW3C: WebVTT specification

Troubleshooting

8 common SRT import errors and how to fix them

When an SRT won't import into CapCut or Premiere Pro, or a platform rejects it, the cause is almost always one of these eight, usually a file that breaks one rule of the SRT file format. Find your symptom in the first column, then use the free tool next to it.

Eight common SRT file format errors and the tool for each. Every tool runs in your browser; files are never uploaded.
SymptomCauseFix
Chinese or accented text shows as gibberish or question marksThe file isn't UTF-8 (often GBK, Big5 or Windows-1252)Garbled subtitle fixer: convert to UTF-8, then import
Every subtitle is a few seconds early or lateSeconds were added to or cut from the start of the videoSRT time shift: move everything at once
Right at the start, drifting further laterFrame-rate mismatch (such as 23.976 vs 25), or timing that was estimatedSRT time shift: stretch between two sync points
"Invalid format" and not a single cue loadsA period before the milliseconds, missing digits, or a malformed arrowFix it by the six rules above, or run it through SRT time shift with a 0 ms offset to get normalised timecodes
Everything breaks from one cue onwardA blank line inside a cue's text, or a missing blank line between cuesFind that cue in a text editor and remove or add the blank line
The editor can't even see the fileIt is really called "episode-01.srt.txt"Show file name extensions and delete the trailing .txt
Lines too long, wrapping to three rows on a phoneToo much text in one cueSubtitle line length checker: split long cues in one click
The platform won't take .srt, or you need stylingIt wants VTT, or the job needs ASSSubtitle format converter: convert to the target format

Three more jobs come up often: for dual-language subtitles, merge two SRT files into one with the bilingual subtitle merger; for a plain transcript, strip the numbers and timecodes with SRT to TXT; and if you only have a script and no SRT at all, TXT to SRT builds a first timing draft.

Dubbing subtitles: avoid timing problems at the source

An SRT timed from word counts will always drift from the real voice. Dub the script in the AI Drama Voice workshop and each exported cue starts and ends exactly where that line sits in the MP3; start the MP3 and the SRT at the same point in your editor and the subtitles are in sync.

Good habits

6 habits for working with SRT files

The SRT file format itself is simple; trouble usually comes from repeated edits and re-saves. These six habits avoid most of it.

  1. Keep the original before you change anything

    Whether you are changing encoding, timing or format, copy the original first. You can always go back, whereas a garbled file re-saved in the wrong encoding often can't be rescued.

  2. Edit subtitles in a plain-text editor only

    Notepad and VS Code leave your format alone. Word and similar processors add formatting and curly quotes, and the saved file often won't load.

  3. Check the start, middle and end

    Load the file in a player or editor and look at the first cue, one in the middle and the last. If all three are right, the whole file almost always is.

  4. One spoken line per cue

    Don't put two characters' lines in one cue. With one line per cue, as in dubbing subtitles, it's easy to change or replace a single line later.

  5. Put the language code in the file name

    In multilingual projects, name files like "episode-01.en.srt" and "episode-01.th.srt" so nobody imports the wrong language.

  6. Leave bulk timing changes to a tool

    Moving several hundred cues by 2 seconds by hand always misses some. Do it in one pass with SRT time shift, then spot-check a few.

FAQ

Frequently asked questions

  • An SRT file is a sidecar subtitle file in plain text with the .srt extension. In the SRT file format each subtitle is an index, a start --> end timecode, the text and a blank line. It comes from the SubRip program, and nearly every player, video editor and video platform supports it.

  • To read the text, any text editor: Notepad, TextEdit in plain-text mode or VS Code. To watch it with a video, a player such as VLC or PotPlayer, which usually loads it automatically when it has the video's name and sits in the same folder. To edit, import it into CapCut or Premiere Pro.

  • As hours:minutes:seconds,milliseconds --> hours:minutes:seconds,milliseconds, for example 00:01:02,500 --> 00:01:05,200. Two digits for hours, minutes and seconds, three for milliseconds, a comma before the milliseconds, one space each side of the arrow, and a start earlier than the end.

  • A VTT file must start with WEBVTT, uses a period before the milliseconds, may omit cue numbers and can position text with cue settings. SRT uses a comma, numbers every cue and carries almost no styling. HTML5 web players use VTT; video editors generally take SRT. The subtitle format converter turns one into the other.

  • Usually because the encoding isn't UTF-8 (gibberish), the timecodes are irregular (a period before the milliseconds, wrong digit counts), a cue's text contains a blank line, or the file is really .srt.txt. The error table on this page lists eight symptoms with the tool that fixes each.

  • Barely. Many players honour <i>, <b> and <font color>, but editors and platforms may not, and YouTube's help page says it ignores styling in SRT. For set fonts, colours and positions, use ASS, or style the subtitle track in your video editor.

  • Midnight Radio
  • Ice Queen
  • The CEO
  • Sweetheart
  • Young Hero
  • Elegant Lady

Skip the hand-typed timecodes Timecodes from the voice itself.

Paste an episode and AI casts and voices every line; each language exports an MP3 and an SRT timed line by line. Cast analysis is free.

Billed by characters generated · Failed runs refunded automatically · Alipay, WeChat Pay and cards