Skip to content
CutConvert

"No timed rows were found" when converting a CSV to SRT

What CutConvert CSV to SRT converter says
“No timed rows were found. The CSV needs a header with start-time and text columns.”

What is actually wrong

The converter finds the start, end and text columns by header name, and when there is no header it tries to infer them from the first rows. It gave up because no column looked like a time, or no column looked like text. Usually the times are in a format it does not recognise, the header is on the second row, or the sheet was exported with a different delimiter.

Fix it here: CSV to SRT

Drop the file. It is detected and converted in your browser; nothing is uploaded. Free to start, no signup.

Convert a file now

Conversions …

Drop EDL, SRT, VTT, .prtranscript, or transcript files

Any caption, transcript or timeline file: CutConvert picks the converter and shows what survives · up to 100 KB per file

The fix, step by step

  1. Name the columns

    Use a header row with start, end and text (or in, out, caption). Speaker is optional. Names are matched loosely, so "Start Time" and "In" both work.

  2. Use a time the converter reads

    HH:MM:SS,mmm, HH:MM:SS.mmm, MM:SS, plain seconds (12.5), or SMPTE timecode (00:01:02:12) with a frame rate chosen on the page.

  3. Export as UTF-8 CSV and convert

    Google Sheets: File > Download > CSV. Excel: Save As > CSV UTF-8. Drop it here and check the preview before downloading.

How the columns are found

With a header row, the converter matches column names loosely: start, start time, in, tc in and begin all become the start column; end, out, tc out, stop become the end; text, caption, subtitle, line, dialogue become the text; speaker, name and character become the speaker.

Without a header, it looks at the first few rows: a column whose values parse as times becomes the start, a second such column becomes the end, and the widest text column becomes the caption. When it uses inference it says which columns it chose, so you can check. It fails, with the message above, only when neither approach finds a time and a text column.

Time formats that work

  • Subtitle time: 00:01:02,500 or 00:01:02.500
  • Short form: 1:02.5 or 01:02
  • Seconds: 62.5
  • SMPTE timecode: 00:01:02:12, with the frame rate set on the page so the frames become milliseconds correctly, including 29.97 drop-frame.

If the end column is missing, each cue ends where the next begins, or after a reading-speed duration for the last one.

Why a sheet fails

  • Header on row two. A title row above the headers makes the converter treat the title as the header. Delete it.
  • Times as spreadsheet durations. Excel sometimes exports a duration cell as a decimal fraction of a day (0.000723). Format the column as text before exporting.
  • Semicolon delimiter. Excel in many locales writes ; between columns. The converter detects the delimiter, but a mixed file with commas inside quoted text and semicolons between columns can confuse it; export from Google Sheets to be safe.
  • Merged cells and multi-line text. Line breaks inside a quoted cell are fine and become line breaks in the cue. Merged cells export as empty rows.
  • Not actually a CSV. An .xlsx renamed to .csv is a zip and fails immediately. Export properly.

The round trip

SRT to CSV on this site writes exactly the layout CSV to SRT reads, so the common workflow, export to a sheet, fix the text, convert back, is lossless in both directions. The conversion runs in your browser; the sheet is never uploaded.

FAQ

Does the CSV need a header row?
It is the most reliable way. Without one, the converter infers columns from the data and tells you which ones it picked.
Can I use timecode with frames?
Yes. Pick the frame rate on the page and SMPTE timecode is converted to milliseconds, including drop-frame at 29.97.
Are speaker names included?
If there is a speaker column, each cue gets a "Name:" prefix. Leave the column out for plain subtitles.

↑ Back to top