Skip to content

tubeagentkit/youtube-transcript

v1.0.0MIT

YouTube transcripts, video and channel search, channel browsing, and playlist extraction for AI agents, via the hosted getyoutubetranscript.com MCP server. API-key auth, free tier, no card required.

YouTube Transcript + Search MCP 🎬

License Website

A remote MCP server for YouTube β€” transcripts, video/channel search, channel browsing, in-channel search, and playlist extraction. API-key or OAuth 2.1 sign-in. Free tier, no card required.

Six tools, one hosted endpoint, no local install β€” for Claude, ChatGPT, Cursor, VS Code, Windsurf, and 15+ other MCP-compatible clients.

https://getyoutubetranscript.com/api/mcp

Why this MCP

This MCPTypical single-purpose YouTube MCP
Hostingβœ… Remote (no local install, no build step)❌ Local stdio process to manage
Toolsβœ… 6 (transcript, search, channel latest/search/videos, playlist)❌ Usually 1 (transcript only)
YouTube search (video and channel)βœ… Yes❌ No
Full channel upload history, paginatedβœ… Yes❌ No
In-channel searchβœ… Yes❌ No
Authβœ… API key and OAuth 2.1 (DCR + CIMD)❌ Usually neither
Agent-friendly errorsβœ… Stable error codes, human-readable messages❌ Bare HTTP codes

Quick Install

Requirements: a free getyoutubetranscript.com account (sign up β€” 100 credits, no card) and an API key from your dashboard β€” or just connect via OAuth and skip the key entirely (see Authentication below).

Claude Code (CLI)

claude mcp add --transport http youtube-transcript https://getyoutubetranscript.com/api/mcp --header "Authorization: Bearer YOUR_API_KEY"

Claude Desktop / Claude Web (OAuth)

  1. Settings β†’ Connectors β†’ Add custom connector
  2. Name: YouTube Transcript Β· URL: https://getyoutubetranscript.com/api/mcp
  3. Click Add, then Connect and sign in via browser β€” no API key needed.

Cursor

Settings β†’ Features β†’ MCP β†’ Add New MCP Server β€” Type: SSE/HTTP, URL: https://getyoutubetranscript.com/api/mcp.

Or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "youtube-transcript": {
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

VS Code

"mcp.servers": {
  "youtube-transcript": {
    "type": "http",
    "url": "https://getyoutubetranscript.com/api/mcp",
    "headers": { "Authorization": "Bearer YOUR_API_KEY" }
  }
}

ChatGPT

Enable Developer Mode, then Settings β†’ Connected Apps β†’ Add β†’ URL https://getyoutubetranscript.com/api/mcp. Leave Client ID/Secret blank for Dynamic Client Registration, or use OAuth sign-in directly.

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "youtube-transcript": {
      "serverUrl": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Cline

{
  "mcpServers": {
    "youtube-transcript": {
      "url": "https://getyoutubetranscript.com/api/mcp",
      "type": "streamableHttp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Zed

{
  "context_servers": {
    "youtube-transcript": {
      "source": "remote",
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Roo Code

{
  "mcpServers": {
    "youtube-transcript": {
      "type": "streamable-http",
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Amp

amp mcp add youtube-transcript https://getyoutubetranscript.com/api/mcp --header "Authorization: Bearer YOUR_API_KEY"

Augment Code

"augment.advanced": {
  "mcpServers": [
    {
      "name": "youtube-transcript",
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  ]
}

Kilo Code

In .kilocode/mcp.json:

{
  "mcpServers": {
    "youtube-transcript": {
      "type": "streamable-http",
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

JetBrains AI Assistant

Settings β†’ Tools β†’ AI Assistant β†’ MCP:

{
  "mcpServers": {
    "youtube-transcript": {
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

30-second example

Summarize this video for me: https://youtu.be/dQw4w9WgXcQ

The agent calls get_youtube_transcript and summarizes the result. If you connected via OAuth, there's no key to configure at all β€” just approve the connection once.


Authentication

API Key

Universal, works with every MCP client. Get one free (100 credits, no card) at the dashboard, then send it as a Bearer token:

"headers": { "Authorization": "Bearer sk_live_your_key_here" }

OAuth 2.1

No manual key management β€” sign in via browser, the server handles the rest.

  • Dynamic Client Registration (DCR): supported for clients that self-register at connect time (Claude Desktop/Web, ChatGPT, and most others).
  • Client ID Metadata Documents (CIMD): supported per the current MCP spec (2026-07-28) for clients that host their own metadata document β€” the more modern alternative to DCR, no shared secret required.
  • First connection opens a consent screen showing exactly what access is being granted; approve once and you're connected.

Both methods issue a token scoped and audience-bound to this specific MCP server β€” it can't be replayed against any other API.


Available Tools

All six tools are exposed automatically once you connect. 1 credit = 1 successful request. Failed or rate-limited calls never consume credits.

1. get_youtube_transcript

Fetch the full transcript for a YouTube video, plus its title/author/thumbnail metadata.

ParameterTypeRequiredDescription
video_urlstringrequiredYouTube URL (full or short) or an 11-character video ID
languagestringoptionalLanguage code, e.g. en, es. Defaults to en
send_metadatabooleanoptionalInclude title/author/thumbnail. Defaults to true

Cost: 1 credit. Note: this returns the full transcript as one text block β€” there's no per-segment timestamp breakdown.

2. search_youtube

Search YouTube for videos or channels, paginated.

ParameterTypeRequiredDescription
querystringrequired unless continuation setSearch query
search_type"video" | "channel"optionalDefaults to "video"
continuationstringoptionalOpaque token from a previous response β€” fetches the next page

Cost: 1 credit/page.

3. get_channel_latest_videos Β· FREE

Get a channel's metadata plus its most recent uploads.

ParameterTypeRequiredDescription
channelstringrequired@handle, channel URL, or UC… channel ID

Cost: Free.

4. search_channel_videos

Search within one specific channel's videos.

ParameterTypeRequiredDescription
channelstringrequired unless continuation set@handle, channel URL, or UC… ID
querystringrequired unless continuation setQuery to search within the channel
continuationstringoptionalOpaque token β€” fetches the next page

Cost: 1 credit/page.

5. list_channel_videos

List every video a channel has ever uploaded (the full /videos tab, not just recent ones).

ParameterTypeRequiredDescription
channelstringrequired unless continuation set@handle, channel URL, or UC… ID
continuationstringoptionalOpaque token β€” fetches the next page

Cost: 1 credit/page.

6. list_playlist_videos

Get every video in a YouTube playlist.

ParameterTypeRequiredDescription
playliststringrequired unless continuation setPlaylist URL or ID
continuationstringoptionalOpaque token β€” fetches the next page

Cost: 1 credit/page.


Use Cases & Prompts

Use CaseExample Prompt
πŸ“ Summarize a video"Summarize the key points from this video: [URL]"
πŸ” Research a topic"Search YouTube for the 5 most-watched videos on neural radiance fields; summarize each."
🧠 Study notes"Create study notes from this MIT lecture series playlist: [PLAYLIST URL]"
πŸ“‘ Monitor a creator"Each morning, list new uploads from @hubermanlab and tell me which to watch."
πŸ›οΈ Build a content database"Pull every video from @veritasium and store title + transcript."
🎯 Channel research"Search inside @MKBHD for any video about [topic] and summarize the takeaways."
✍️ Repurpose content"Turn this video into a 1,500-word blog post: [URL]"

Pricing & Rate Limits

PlanPriceCreditsRate Limit
Free$0100 credits on signup60 req/min
Monthly$5/month1,000 credits/month200 req/min
Annual$4.50/mo ($54/yr)1,000 credits/month300 req/min
  • 1 credit = 1 successful request. Failed/rate-limited requests don't consume credits.
  • get_channel_latest_videos is always free.
  • Manage billing β†’

Troubleshooting

Authentication errors (401)

  • If using an API key: confirm it starts with sk_live_ and has no extra whitespace
  • If using OAuth: try disconnecting and reconnecting the connector
  • Confirm the key/connection is still active in your dashboard

No credits (402)

Check your balance and top up or upgrade at the dashboard.

Video not available (404)

  • The video may not have captions enabled
  • It may be private, age-restricted, or region-locked
  • Confirm it plays in a real browser first

Rate limiting (429)

Back off and retry after a short delay β€” don't hammer it in a tight loop.

OAuth connection issues

  • Clear cookies for getyoutubetranscript.com and retry
  • Ensure popup/redirect blockers aren't interfering with the consent screen
  • If your client supports both DCR and CIMD, try the other registration method

Also available as a REST API

Building an app instead of an agent? The same backend is a plain JSON REST API β€” see the Agent Skill repo for the full endpoint reference, or the dashboard to get a key directly.

Base URL: https://getyoutubetranscript.com/api/v1


Connect

Disclosure

getyoutubetranscript.com is an independent product and is not affiliated with or endorsed by YouTube or Google.

License

MIT β€” see LICENSE.