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

How to connect

How to connect youtube-transcripts to Claude

The server address to paste into Claude settings:

https://youtube-transcripts--hello-ympt.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect youtube-transcripts to ChatGPT

The server address to paste into ChatGPT settings:

https://youtube-transcripts--hello-ympt.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect youtube-transcripts to Cursor

The server address to paste into Cursor settings:

https://youtube-transcripts--hello-ympt.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

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.