Free online CSV converter. Convert CSV to SRT, VTT, ASS, SSA, SUB and more online — no limits, no watermark.
1.5, 90.250) or as a full timecode (00:00:01,500); the converter detects the style per row and rewrites it into the target format's timestamp grammar — commas for SRT, periods for VTT, centiseconds for LRC.<track> element parses natively[mm:ss.xx] timestampsIn this tool, "CSV" is not a generic spreadsheet — it's a subtitle interchange table: a comma-separated file whose columns are the start time, end time, and text of each caption cue, usually with a header row naming those columns. Editing captions row-by-row in Excel, Google Sheets, or Numbers is far more comfortable than hand-editing raw timecodes inside an .srt file, which is exactly why translators, transcription teams, and QA reviewers keep working copies as CSV. The catch is that no video player reads a CSV — so once the spreadsheet is final, it has to be converted back into a real subtitle format the player understands. That round-trip is what this hub does.
People reach for a CSV → subtitle conversion for a few concrete reasons:
<video> embed (the <track> element only parses WebVTT), TTML / DFXP for a broadcast or HLS streaming pipeline, or ASS when the project needs on-screen styling and positioning. Converting from one master CSV keeps every delivery in sync.| Target format | Standard / origin | Timestamp style | Carries styling? | Best for |
|---|---|---|---|---|
| SRT (SubRip) | De-facto standard, plain text | 00:00:01,500 (comma) |
No | YouTube, Vimeo, VLC, NLEs, maximum compatibility |
| VTT (WebVTT) | W3C, drafted by WHATWG 2010 (was "WebSRT") | 00:00:01.500 (period) |
Yes (cues, positioning) | HTML5 <track>, HLS/DASH, web video |
| ASS / SSA | Advanced SubStation Alpha (SSA predecessor) | 0:00:01.50 (centiseconds) |
Yes (fonts, colors, positions) | Aegisub, fansubs, styled on-screen captions |
| TTML / DFXP | W3C, TTML1 finalized Nov 2010 (DFXP = its original profile) | XML begin/end attributes |
Yes (XML styling) | Broadcast, SMPTE-TT, EBU-TT, streaming captioning |
| SBV | Google / YouTube caption format | 0:00:01.500 |
No | YouTube Studio caption editor import/export |
| LRC | Lyrics format, introduced 1998 (Taiwan) | [mm:ss.xx] (centiseconds) |
No | Synced song lyrics in music players |
| TXT | Plain text | None (stripped) | No | A clean reading transcript, no timing |
A timed-caption table needs three things per row: a start time, an end time, and the caption text, with a header row naming the columns. An optional cue-index column is fine and is ignored if the format doesn't use one. Times can be decimal seconds (1.5) or full timecodes (00:00:01,500) — the converter detects the style and rewrites it for the target format. A spreadsheet of unrelated data with no timing columns has nothing to map onto subtitle cues, so it can't produce a valid SRT or VTT.
It has to be subtitle data. This is a timed-text converter, not a generic data tool: the rows have to represent caption cues with start/end times and text. If your CSV is a contacts list, a sales report, or any non-timed table, there's nothing to turn into a subtitle stream. If you only want to reshape arbitrary tabular data, that's a different kind of conversion entirely — this hub is specifically for captions and lyrics.
Pick SRT when the file is headed for an upload or an editor: YouTube, Vimeo, Facebook, VLC, and nearly every NLE accept SRT, making it the safest default. Pick VTT when the captions go on a web page, because the HTML5 <track> element only parses WebVTT, and VTT also supports positioning, styling, and metadata that SRT can't carry. Both come from the same lineage — WebVTT was drafted by the WHATWG in 2010 and was originally called "WebSRT" — but their timestamp punctuation differs (SRT uses a comma before milliseconds, VTT a period), which the converter handles for you.
No. A CSV carries text and timing, not fonts or colors, so a conversion to ASS, SSA, or VTT produces correctly-timed cues with that format's default style — it doesn't invent positioning or coloring you didn't specify. ASS and VTT simply can hold styling if you add it later in a dedicated editor like Aegisub. If you need styled captions, convert to ASS first, then style the cues in an editor that understands the format.
Yes — that's the natural other half of this workflow, and it's how most caption CSVs are created in the first place. Many teams export an existing subtitle file to a CSV, edit or translate the text in a spreadsheet, then convert the finished CSV back to SRT or VTT. Working the dialogue in spreadsheet rows is far easier than editing raw timecodes by hand, especially for bulk find-and-replace or side-by-side translation.
In our testing, a 1,200-row caption CSV exported to SRT preserved every cue's start and end timing to the millisecond and kept rows in source order, with empty-text rows skipped rather than written as blank cues. Because the conversion is a deterministic re-formatting of your existing timestamps — not a re-timing or re-transcription — the cue count and timing match the spreadsheet exactly; only the surrounding syntax changes to fit the target format.
Yes. The conversion runs entirely in your browser — your caption table is parsed and rewritten on your own device and never uploaded to or stored on our servers. There's no sign-up, no watermark, and your captions never leave your computer. Subtitle files are small text, so the conversion is effectively instant even for a feature-length script.