microsoft / microsoft/markitdown
Support .vtt / WebVTT subtitle files
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:
WEBVTTheader- 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:
-
Clean transcript mode
- strips timestamps/cue metadata
- preserves text paragraphs
-
Timestamp-preserving markdown mode
- keeps timestamps in a readable markdown form, e.g.
[00:01] Speaker: text...
- keeps timestamps in a readable markdown form, e.g.
-
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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