Free Tool

VTT to Markdown Converter

Drop a .vtt — get Markdown with each speaker's name in bold.

Converted in your browser, never uploaded
Input
Output

Converts a WebVTT transcript into Markdown: one paragraph per speaker turn, the speaker name in bold in front, and consecutive lines by the same person joined. Timestamps are optional bold [mm:ss] marks, from none to one per cue. The result pastes into Notion, Obsidian or GitHub as a readable document. Nothing is uploaded.

Key facts · updated

  • One paragraph per speaker turn: consecutive cues by the same person are joined into one.
  • Timestamps are optional bold [mm:ss] marks: none, one per cue, or one every 15, 30 or 60 seconds.
  • Speaker names from <v> voice tags — how Microsoft Teams writes them — become bold names at the start of each turn.

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 (.md), default settings: speaker names on, no timestamps

**Priya Shah:** Okay, two things today: the launch date and the pricing page. Marketing needs two weeks' notice for the announcement.

**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 other app that writes WebVTT, or paste its contents. The format is detected from the WEBVTT header.

Step 2

The caption markup goes

The WEBVTT header, cue identifiers, NOTE and STYLE blocks and the timing lines are removed. What is left is who said what, in order.

Step 3

Choose names, merging and timestamps

"Speaker names" puts each name in bold in front of the turn, "Merge lines by speaker" joins a person's consecutive cues into one paragraph, and "Timestamps" adds bold [mm:ss] marks — per cue or every 15, 30 or 60 seconds.

Step 4

Copy or download the .md

Copy pastes straight into Notion, Obsidian or a GitHub issue; Download saves a .md file. No account, nothing sent anywhere.

Why Use This Converter

  • Speaker names in bold, one paragraph per turn
  • Timestamps as bold [mm:ss] marks, or none at all
  • Pastes into Notion, Obsidian, GitHub and any Markdown editor
  • Reads Teams voice tags, cue identifiers and NOTE blocks
  • 100% client-side — the transcript is never uploaded
  • No sign-up, no limits, no watermark

Frequently Asked Questions

Yes, when the file has them in voice tags — <v Priya Shah> is how Microsoft Teams writes a speaker, and it becomes **Priya Shah:** at the start of the turn. A Zoom .vtt writes the name into the line itself ("Priya Shah: Okay…"), so here it stays as plain text. The Zoom Transcript to Text page reads that prefix as the speaker and can write Markdown too.

Yes. "Timestamps" adds a bold [mm:ss] mark per cue or one every 15, 30 or 60 seconds; the default is none. One mark a minute is usually enough to find a moment in the recording without breaking every paragraph.

Yes. The output uses only bold text and blank lines between paragraphs, which every Markdown editor renders the same way. Paste it into a Notion page and the names turn bold; in Obsidian it is a normal note.

"Merge lines by speaker" is on by default: a caption file cuts one person's turn into a cue every few seconds, and the merge puts the turn back together. Switch it off to get one paragraph per cue.

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.