youtube-transcripts

What it does Gives any MCP-compatible agent (Claude, Cursor, VS Code, ChatGPT, Codex) clean YouTube transcripts as timestamped markdown, ready to use as…

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeRead-only

What it can do

  • Get Transcript: Get the full transcript of a single YouTube video as timestamped markdown. Read-only: fetches existing captions, modifies nothing. Requires an API key; each successful call charges 1 c
  • Polish Transcript: Get a cleaned-up transcript of a YouTube video's auto-generated captions: punctuation and capitalisation restored, filler and false starts removed, paragraphs added, misheard names
  • Get Channel Transcripts: Get transcripts for a YouTube channel's most recent videos (newest first) as timestamped markdown, one section per video. Use for research across a creator's recent output; fo

What data it sees

Do you need an account

An API key from the service settings is required

What it does

Gives any MCP-compatible agent (Claude, Cursor, VS Code, ChatGPT, Codex) clean YouTube transcripts as timestamped markdown, ready to use as context. No scraping, no proxies, no YouTube rate limits to manage: the server handles the fetch and caches every result.

Tools

Tool What it does Cost
get_transcript Full transcript of one video (ID or URL) 1 credit
get_channel_transcripts Recent videos from a channel, newest first (limit 1-50) 1 credit per video
get_playlist_transcripts Videos from a playlist, in order (limit 1-50) 1 credit per video
polish_transcript Cleaned auto-captions: punctuation restored, filler removed, faithful to what was said ~3 credits per 1,000 words (min 5)

All tools are read-only. Videos without captions fail free. Rate limit: 5 requests per 10 seconds.

Setup

Get a free API key (25 free credits, no card) at youtubetranscriptdownload.com/account, then add the server:

{
  "mcpServers": {
    "ytd": {
      "url": "https://youtubetranscriptdownload.com/api/mcp",
      "headers": { "Authorization": "Bearer ytd_sk_YOUR_KEY" }
    }
  }
}

Claude Code:

claude mcp add --transport http \
  --header "Authorization: Bearer ytd_sk_YOUR_KEY" \
  ytd https://youtubetranscriptdownload.com/api/mcp

Example output

get_transcript returns the video title, source link, timestamped text, and a credit footer:

How Transformers Work

Source: https://youtube.com/watch?v=...

[00:00:12] The transformer architecture was introduced in the 2017 paper
Attention Is All You Need by Vaswani et al.
...

---
1 credit used · 42 remaining

get_channel_transcripts and get_playlist_transcripts return one section per video, separated by dividers; videos without captions are noted and cost nothing:

Lex Fridman Podcast · 3 videos

[transcript of video 1]

---

[transcript of video 2]

---

abc123xyz: No transcript available (skipped, not charged)

---
2 credits used · 40 remaining

polish_transcript turns raw auto-captions into clean text, faithful to what was said:

Before: so um the transformer architecture was introduced uh in the
attention is all you need paper in in 2017

After:  The transformer architecture was introduced in the Attention
Is All You Need paper in 2017.

Links

Server tool list (4)

Raw names from tools/list. Only developers need these.

get_transcriptGet the full transcript of a single YouTube video as timestamped markdown. Read-only: fetches existing captions, modifies nothing. Requires an API key; each successful call charges 1 credit, including repeat calls for the same video, so reuse a transcript already in context instead of re-fetching. Videos without captions return an error and cost nothing. Rate limit: 5 requests per 10 seconds.
polish_transcriptGet a cleaned-up transcript of a YouTube video's auto-generated captions: punctuation and capitalisation restored, filler and false starts removed, paragraphs added, misheard names fixed, faithful to what was said. Use when raw captions are too messy to read or quote; for a plain transcript use get_transcript. Read-only; requires an API key. Each call charges credits by transcript length (about 3 per 1,000 words, minimum 5), including repeat calls, so keep the result in context. Human-uploaded captions (already clean) and transcripts over ~7,000 words return an error without charging. Rate limit: 5 requests per 10 seconds.
get_channel_transcriptsGet transcripts for a YouTube channel's most recent videos (newest first) as timestamped markdown, one section per video. Use for research across a creator's recent output; for one known video use get_transcript. Read-only; requires an API key. Charges 1 credit per video that returns a transcript, including repeat calls; videos without captions are skipped free. A 10-video call typically costs up to 10 credits, so start with a small limit. Rate limit: 5 requests per 10 seconds.
get_playlist_transcriptsGet transcripts for the videos in a YouTube playlist (in playlist order) as timestamped markdown, one section per video. Use for working through a course, series, or curated list; for one known video use get_transcript. Read-only; requires an API key. Charges 1 credit per video that returns a transcript, including repeat calls; videos without captions are skipped free. A 10-video call typically costs up to 10 credits, so start with a small limit. Rate limit: 5 requests per 10 seconds.