SRT to CSV
Or paste subtitle text
What this conversion changes
Nothing is lost in this direction — every feature of the source format has somewhere to go in the target format.
This list comes from the capability matrix for these two formats, not from the particular file you loaded. A specific file may lose more if it uses features the format allows but the matrix does not model.
This page writes your subtitles as a spreadsheet: three columns, headed start, end and text, with one cue per row. The timestamps are written with a dot rather than a comma — 00:00:01.000 — because the comma is the field separator and a raw SRT timestamp would split the row into three columns and shift everything after it.
Text that contains a comma or a line break is quoted, which is what the CSV standard asks for, so a cue with two lines stays one row with the break inside the quoted field. Both the start and the end of every cue are written, which is what makes a table worth exporting: you can sort by time, find cues that overlap, fill down a column, or hand the sheet to someone who is happier in a spreadsheet than in a subtitle editor.
Editing works in both directions — the CSV to SRT page reads a table back, taking the columns by their heading — so a spreadsheet can be part of your workflow rather than a dead end. As always, the file is converted in your browser.
Examples
A typical SRT file, converted to CSV
Input
1
00:00:01,000 --> 00:00:03,500
Hello there.
2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.
3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.
Output
start,end,text
00:00:01.000,00:00:03.500,Hello there.
00:00:03.500,00:00:06.000,"<i>Whispering</i> now.
And a second line."
00:00:06.000,00:00:09.250,<b>Bold</b> statement.
Nothing is dropped here: compare the two sides line for line.
The same conversion on an awkward input
Input
1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.
2
00:00:03,500 --> 00:00:06,000
3
00:00:08,000 --> 00:00:09,000
Last one.
Output
start,end,text
00:00:01.000,00:00:03.500,<b>Bold</b> and <i>italic</i>.
00:00:03.500,00:00:06.000,
00:00:08.000,00:00:09.000,Last one.
This is the kind of damage real files have — mixed line endings, stray whitespace, fields left empty. Compare it with the tidy example above to see what the parser forgives.
Frequently asked questions
What are the columns?
start, end and text, in that order, with a heading row. The headings are what a table reader uses to tell which column is which, so renaming them changes nothing about the conversion.
Why do the timestamps use a dot instead of a comma?
Because a comma is the separator between fields. A timestamp written the SRT way would be read as two fields, so every row would be one column wider than the heading and the table would be wrong. A dot keeps the value unambiguous without quoting.
How are multi-line cues written?
As one row with the line break inside a quoted field, which is the standard way to put a line break in a CSV cell. Your spreadsheet will show it as a two-line cell rather than as two rows.
Do I lose the timeline by converting to CSV?
No — both the start and the end are in the table, so the conversion is reversible. That is the difference between this page and the plain text one, which is for when you want only the words.
Can I edit the table and convert it back?
Yes. The CSV to SRT page reads a table by its headings, so you can sort the rows, retime a cue, fix a typo or add a row, and convert the result back into a subtitle file.