microsoft / microsoft/markitdown

Support .vtt / WebVTT subtitle files

Open
#1,682 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
186k
Forks
13.7k
Avg merge
1d 4h
Merged PRs (30d)
49

Description

Summary

Please add first-class support for .vtt / WebVTT subtitle files.

Why this would help

MarkItDown is already useful as a bridge from many document/media formats into Markdown for LLM workflows. WebVTT is a common interchange format for:

  • meeting transcripts
  • video subtitles/captions
  • downloaded YouTube or conference transcripts
  • course/video note pipelines

Right now, .vtt does not appear to be explicitly supported. It may sometimes fall through as generic text depending on MIME/charset detection, but that is fragile and does not produce a clean Markdown result.

Expected behavior

Given a .vtt file, MarkItDown should parse it intentionally and produce readable Markdown instead of raw subtitle syntax.

For example, it should handle:

  • WEBVTT header
  • cue timestamps (00:00:01.000 --> 00:00:03.000)
  • cue identifiers
  • multiline subtitle blocks
  • optional speaker prefixes / metadata when present

Possible output shapes

Any of these would be better than raw passthrough:

  1. Clean transcript mode

    • strips timestamps/cue metadata
    • preserves text paragraphs
  2. Timestamp-preserving markdown mode

    • keeps timestamps in a readable markdown form, e.g.
      • [00:01] Speaker: text...
  3. Metadata-aware transcript

    • preserves speaker labels when present
    • drops formatting noise

Why this seems aligned with MarkItDown

MarkItDown already supports text-oriented and transcription-oriented inputs (including audio transcription and YouTube transcript workflows). WebVTT feels like a natural input format for the same family of use cases.

Minimal ask

Even a first step would be great:

  • explicitly recognize .vtt / text/vtt
  • convert it through a dedicated parser or lightweight cleaner
  • output readable Markdown/text content rather than raw subtitle markup

Thanks — this would make MarkItDown much more useful in note-taking / transcript-to-markdown pipelines.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files or tests are identified in the issue. Start by locating MarkItDown’s converter registration and existing text or transcription converters, then trace how extensions and MIME types are detected. Done means .vtt and text/vtt are recognized and representative WebVTT inputs produce readable Markdown with an agreed treatment of timestamps, metadata, and speaker labels.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.