Free Tool

VTT to CSV Converter

Drop a .vtt — get a CSV with Start, End, Speaker and Text columns.

Converted in your browser, never uploaded
Input
Output

Converts a WebVTT transcript into a CSV file with four columns: Start, End, Speaker and Text, one row per speaker turn or per cue. The file is UTF-8 with a byte order mark, so Excel on Windows opens accented names correctly. Open it in Excel or Google Sheets to filter by speaker or count who talked. Nothing is uploaded.

Key facts · updated

  • Four columns: Start, End, Speaker and Text, with times as hh:mm:ss.
  • Saved as UTF-8 with a byte order mark, so Excel on Windows shows accented speaker names correctly.
  • One row per speaker turn by default; switch off merging for one row per cue.

Example: Input and Output

Input (.vtt) — a Teams transcript, speakers in voice tags

WEBVTT

3f1c9a62-7d4e-4b8a-9c51-2e6f0d8b1a47/12-0
00:00:03.120 --> 00:00:06.480
<v Priya Shah>Okay, two things today: the launch date and the pricing page.</v>

3f1c9a62-7d4e-4b8a-9c51-2e6f0d8b1a47/12-1
00:00:06.480 --> 00:00:09.950
<v Priya Shah>Marketing needs two weeks' notice for the announcement.</v>

8b2e4d10-5a3f-4c6e-b7d9-1f0a2c3e4d5b/18-0
00:00:10.400 --> 00:00:14.860
<v Tom Becker>Then the 14th works, if QA signs off on Friday.</v>

Output (.csv), default settings: speaker names on, lines merged by speaker

Start,End,Speaker,Text
00:00:03,00:00:09,Priya Shah,"Okay, two things today: the launch date and the pricing page. Marketing needs two weeks' notice for the announcement."
00:00:10,00:00:14,Tom Becker,"Then the 14th works, if QA signs off on Friday."

How to Convert Subtitle Files

Four steps to convert any subtitle or transcript format — no software, no upload, no account.

Step 1

Paste or drop the .vtt

Drop the transcript file from Teams, Zoom or any app that writes WebVTT, or paste its contents. The format is detected from the WEBVTT header.

Step 2

Each turn becomes a row

The start and end time go into their own columns as hh:mm:ss, the speaker from the voice tag into the third, and the words into the fourth. A cell with a comma or a quote is quoted, so the columns never shift.

Step 3

Choose rows per turn or per cue

"Merge lines by speaker" joins a person's consecutive cues into one row that spans them. Switch it off for one row per cue; switch off "Speaker names" to leave that column empty.

Step 4

Download and open in Excel

Download saves a .csv that Excel, Google Sheets and Numbers open directly. No account, nothing sent anywhere.

Why Use This Converter

  • Start, End, Speaker and Text in their own columns
  • Opens in Excel with accented names intact — UTF-8 with a byte order mark
  • One row per speaker turn, or one per cue
  • Commas and quotes in speech are escaped, so columns never shift
  • 100% client-side — the transcript is never uploaded
  • No sign-up, no limits, no watermark

Frequently Asked Questions

Four: Start, End, Speaker and Text. Times are written as hh:mm:ss, which Excel and Google Sheets read as a time, so you can sort or subtract them. The first row is the header.

Zoom writes the name into the line itself ("Priya Shah: Okay…") instead of a voice tag, so on this page it stays in the Text column — the converter does not guess speakers from a colon, because that would read "Note:" as a person. The Zoom Transcript to Text page reads that prefix as the speaker; pick CSV there and the column is filled.

The file is saved as UTF-8 with a byte order mark at the start. Without it, Excel on Windows assumes an older encoding and turns "José" into "José". Google Sheets and Numbers read it either way.

Yes. Switch off "Merge lines by speaker" and every cue of the .vtt becomes its own row with its own start and end time. With merging on, a run of cues by one person becomes one row from the first start to the last end.

No. The conversion runs in your browser; the file is never sent or stored. Only if you click "Get the summary & action items" is the text sent, to write the notes. MeetWave doesn't store the text you paste. It is sent to our AI processing provider only to write your notes, isn't used to train models, and isn't kept by MeetWave after the answer arrives.