YouTube Transcript + YouTube Search MCP

com.getyoutubetranscript由 getyoutubetranscript.com 發布官方發布者v1.0.0更新於 Nov 2, 2026

YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取媒體與設計

概覽

AI 產生的概覽

託管式 YouTube MCP 伺服器,讓助理取得影片字幕、搜尋影片與頻道、瀏覽頻道上傳內容並讀取播放清單。

可以做什麼
  • 取得影片完整字幕,可選擇時間戳與中繼資料,並列出影片提供的字幕語言
  • 在 YouTube 上搜尋影片或頻道,並在單一頻道內搜尋
  • 取得頻道資訊與最新上傳,或分頁瀏覽頻道的上傳、Shorts、直播和播放清單
  • 依序分頁列出播放清單中的影片
  • 查詢帳戶剩餘額度
適用情境
適合讓助理摘要、引用、翻譯或整理 YouTube 影片重點,在 YouTube 上研究某個主題,追蹤創作者的新上傳,或逐一處理課程、講座與播客播放清單。
執行需求
遠端 streamable HTTP 端點,無需本機安裝。需要免費的 getyoutubetranscript.com 帳戶,並透過 Authorization Bearer 標頭提供 API 金鑰,或使用 OAuth 2.1 瀏覽器登入。呼叫會消耗額度,免費方案初始為 100。
安裝前請注意
工具呼叫會消耗額度(每次成功請求 1 點),並提供付費方案,大量使用可能產生費用。API 金鑰是敏感憑證,透過 Authorization 標頭傳送。字幕、搜尋與頻道資料由第三方服務提供,該服務與 YouTube 或 Google 無關聯。部分工具回傳的是估算值,例如不喜歡數。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 YouTube Transcript + YouTube Search MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.getyoutubetranscript%2Fyoutube-transcript-and-youtube-search/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "youtube-transcript-youtube-search": {
      "type": "http",
      "url": "https://getyoutubetranscript.com/api/mcp"
    }
  }
}

README

[GetYouTubeTranscript]

YouTube MCP Server: Transcripts, Search, Channels & Playlists

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

[Install in Cursor] [Install in VS Code]

[Website] [Docs] [MIT License]

Thirteen 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

Quick taste:

txt
Search @veritasium for videos about black holes, pull the transcript of thetwo best matches, and tell me where they disagree.

The agent chains search_channel_videos and get_youtube_transcript on its own. No code on your side.


Why this MCP

This MCPTypical single-purpose YouTube MCP
Hosting✅ Remote (no local install, no build step)❌ Local stdio process to manage
Tools✅ 7 (transcript, search, channel latest/search/videos, playlist, credits)❌ 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

Install as an Agent Plugin

This repo root is also an Agent Plugins 1.0.0 package. It bundles the MCP server with a youtube skill that tells the agent which tool to use when, what each one costs, and how to avoid wasting credits.

text
plugin.json                # plugin manifestmcp.json                   # hosted MCP server (streamable-http, OAuth, no key in the file)skills/youtube/SKILL.md    # when and how to use the 13 tools

In VS Code, run Chat: Install Plugin From Source and paste https://github.com/tubeagentkit/youtube-mcp. Other clients that support Agent Plugins can point at this repo or a local clone. For Cursor there is a separate plugin repo.

The package holds no credentials. Check the manifests against the published schemas yourself:

sh
curl -sO https://agent-plugins.org/schemas/1.0.0/plugin.schema.jsoncurl -sO https://agent-plugins.org/schemas/1.0.0/mcp.schema.jsonnpx ajv-cli@5 validate --spec=draft2020 -s plugin.schema.json -d plugin.jsonnpx ajv-cli@5 validate --spec=draft2020 -s mcp.schema.json -d mcp.json

ChatGPT and Codex

The same plugin.json carries the ChatGPT/Codex plugin directory listing under extensions.com.openai (other clients ignore it). scripts/build-openai-zip.sh checks it against OpenAI's field limits and builds the upload ZIP in dist/, with only plugin.json, mcp.json, skills/ and assets/.


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).

Tip: clients that support MCP OAuth can skip the headers block in the snippets below and sign in through the browser instead.

Tip: to stop repeating "use the transcript tool", add a standing instruction to your client's rules or custom instructions, for example: "When I share a YouTube link, fetch its transcript with the youtube-transcript MCP before answering."

Claude Code (CLI)
sh
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:

json
{  "mcpServers": {    "youtube-transcript": {      "url": "https://getyoutubetranscript.com/api/mcp",      "headers": { "Authorization": "Bearer YOUR_API_KEY" }    }  }}
VS Code
json
"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:

json
{  "mcpServers": {    "youtube-transcript": {      "serverUrl": "https://getyoutubetranscript.com/api/mcp",      "headers": { "Authorization": "Bearer YOUR_API_KEY" }    }  }}
Cline
json
{  "mcpServers": {    "youtube-transcript": {      "url": "https://getyoutubetranscript.com/api/mcp",      "type": "streamableHttp",      "headers": { "Authorization": "Bearer YOUR_API_KEY" }    }  }}
Zed
json
{  "context_servers": {    "youtube-transcript": {      "source": "remote",      "url": "https://getyoutubetranscript.com/api/mcp",      "headers": { "Authorization": "Bearer YOUR_API_KEY" }    }  }}
Roo Code
json
{  "mcpServers": {    "youtube-transcript": {      "type": "streamable-http",      "url": "https://getyoutubetranscript.com/api/mcp",      "headers": { "Authorization": "Bearer YOUR_API_KEY" }    }  }}
Amp
sh
amp mcp add youtube-transcript https://getyoutubetranscript.com/api/mcp --header "Authorization: Bearer YOUR_API_KEY"
Augment Code
json
"augment.advanced": {  "mcpServers": [    {      "name": "youtube-transcript",      "url": "https://getyoutubetranscript.com/api/mcp",      "headers": { "Authorization": "Bearer YOUR_API_KEY" }    }  ]}
Kilo Code

In .kilocode/mcp.json:

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:

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

30-second example

txt
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.


Run locally (stdio)

Prefer a local process? server/ is an open-source stdio MCP server with the same 13 tools, built on the official MCP TypeScript SDK. It calls the public REST API with your API key.

sh
git clone https://github.com/tubeagentkit/youtube-mcpnpm install --prefix youtube-mcp/server

Then point your client at it, e.g. Claude Desktop / Cursor:

json
{  "mcpServers": {    "youtube-transcript": {      "command": "node",      "args": ["/absolute/path/to/youtube-mcp/server/index.js"],      "env": { "GYT_API_KEY": "sk_live_your_key_here" }    }  }}

Live integration test (uses only free tools): GYT_API_KEY=sk_live_... npm test --prefix server


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:

json
"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 thirteen 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
timestampsbooleanoptionalOne line per caption, each starting with its [m:ss] start time ([h:mm:ss] past an hour). Defaults to false (one block of text)

Cost: 1 credit, with or without timestamps.

2. get_transcript_languages

List the caption languages a video offers, creator-uploaded or auto-generated, and which one a default request returns.

ParameterTypeRequiredDescription
video_urlstringrequiredYouTube URL (full or short) or an 11-character video ID

An empty list means the video has captions turned off. Not needed for an ordinary transcript request: get_youtube_transcript already reports the language it returned.

Cost: 1 credit.

3. 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.

4. get_channel_latest_videos

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

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

Cost: 1 credit.

5. 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.

6. list_channel_videos

List a channel's uploads beyond its latest videos: older episodes, its most popular videos, its Shorts, or its past live streams.

ParameterTypeRequiredDescription
channelstringrequired unless continuation set@handle, channel URL, or UC… ID
tabstringoptionalvideos (default), shorts, or streams (the Live tab). First page only
sortstringoptionallatest (default), popular, or oldest. First page only
continuationstringoptionalOpaque token — fetches the next page

Cost: 1 credit/page.

7. list_channel_playlists

List the playlists a channel has published. Pass a playlist's id to list_playlist_videos to see its videos.

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

Cost: 1 credit/page.

8. list_channel_posts

List a channel's community posts: text, links, likes, comments and any attached image.

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

Cost: 1 credit/page.

9. get_related_videos

The videos YouTube suggests next to a video, each with title, video ID, link, channel, views, age and length.

ParameterTypeRequiredDescription
video_urlstringrequiredYouTube URL (full or short) or an 11-character video ID

Cost: 1 credit.

10. get_channel_banner

A channel's uncropped banner, every crop size YouTube serves, and its avatar. has_banner is false when the channel has none.

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

Cost: 1 credit.

11. get_video_dislikes

A video's likes, dislikes, star rating and view count. YouTube no longer publishes dislikes, so these are estimates.

ParameterTypeRequiredDescription
video_urlstringrequiredYouTube URL (full or short) or an 11-character video ID

Cost: 1 credit.

12. 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.

13. get_credits · FREE

Check the remaining credit balance for your key/account. No parameters.

Cost: Free.


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
Starter$19/month7,500 credits/month300 req/min
Pro$49/month25,000 credits/month400 req/min
Scale$99/month60,000 credits/month600 req/min
  • 1 credit = 1 successful request. Failed/rate-limited requests don't consume credits.
  • get_credits is the only free tool.
  • 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

Verification

This repo contains the MIT-licensed source of the local stdio MCP server in server/ (tool definitions, input validation, API calls, error mapping), plus the manifests for the hosted endpoint. The hosted endpoint and the REST API behind both are run by getyoutubetranscript.com and are not open source. To check either one yourself:

  • Run the local server's live test — GYT_API_KEY=sk_live_... npm test --prefix server starts server/index.js over stdio, lists all 13 tools, and calls the free ones.
  • Run verify.js against the hosted endpoint — zero dependencies, zero auth required:
    sh
    node verify.js
    It performs the real MCP handshake (initialize then tools/list) against the live endpoint and prints the server's actual response, including all 13 real tool schemas. Tool discovery is public; only tool calls require an API key or OAuth token (see Authentication).
  • Independently verified by four third-party MCP directories, each of which connected to the live endpoint and confirmed the tools themselves (not just took our word for it):
    • Official MCP Registry — com.getyoutubetranscript/youtube-transcript-and-youtube-search, published via domain-ownership-verified HTTP mcp-publisher
    • Smithery — its own scanner connected and discovered all 6 tools
    • Glama
    • LobeHub
  • Live since 2026-09-12 — the OAuth 2.1 (DCR + CIMD) flow has also been exercised end-to-end by a real third-party client (Smithery) connecting via CIMD, which surfaced and got a real interop fix along the way (see commit history).

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.

Related projects

Other ways to use the GetYouTubeTranscript API:

Comparing options, including other tools: awesome-youtube-transcripts lists libraries, hosted APIs, MCP servers and speech-to-text tools for YouTube transcripts.

License

MIT — see LICENSE.

來源:README.md,提交 f5feaf6

工具

8

get_youtube_transcript

Get YouTube Transcript

Use this when the user shares a YouTube video link or ID, or asks to summarize, explain, quote, translate, take notes on, or chat about a specific YouTube video, lecture, podcast, or talk. Returns the full spoken text (captions) as one block, plus the title and channel. Set timestamps to true when the user wants timestamps, wants to find or quote where something is said, or wants a timeline or chapter breakdown: each caption line then starts with its [m:ss] time. Accepts watch, youtu.be, Shorts, and live URLs. Do not use for non-YouTube videos or for files the user uploads. If a video has no captions, this returns an error: tell the user instead of guessing what the video says.

輸入參數languagetranslatevideo_url必填timestampssend_metadata

get_transcript_languages

Get Transcript Languages

Use this when the user asks which caption or subtitle languages a YouTube video has, or before requesting a transcript in a non-English language when you don't know whether the video offers it. Returns each language with its code (pass it as `language` to get_youtube_transcript), whether it is creator-uploaded or auto-generated, and the default language. An empty list means the video has captions turned off. Costs 1 credit. Not needed for an ordinary transcript request: get_youtube_transcript already reports which language it returned.

輸入參數video_url必填

search_youtube

Search YouTube

Use this when the user wants to find YouTube videos or channels on a topic, for example 'find lectures on linear algebra' or 'popular videos about the Apollo missions', before reading or comparing them. Returns each result's title, video ID, link, channel, views, length, and upload date. Pass `continuation` from a previous response for the next page. Does not return what a video says: call get_youtube_transcript with a result's video ID for that.

輸入參數querysearch_typecontinuation

get_channel_latest_videos

Get Channel Latest Videos

Use this when the user asks what a YouTube channel has posted recently, or wants a channel's details (name, handle, description, subscribers) with its 15 newest uploads. Accepts an @handle, channel URL, or UC... ID. For a channel's full upload history use list_channel_videos; to find a topic inside one channel use search_channel_videos.

輸入參數channel必填

search_channel_videos

Search Channel Videos

Use this when the user wants videos from one specific YouTube channel about a topic, for example 'what has @hubermanlab said about sleep' or 'find the MIT OpenCourseWare videos on recursion'. Searches only inside that channel. Pass `continuation` from a previous response for the next page.

輸入參數querychannelcontinuation

list_channel_videos

List Channel Videos

Use this when the user wants to browse a YouTube channel's uploads beyond its latest videos, for example to see a creator's older episodes or find a video they remember from that channel. Returns the channel's uploads (its Videos tab) one page at a time. Pass `continuation` from a previous response for the next page.

輸入參數channelcontinuation

list_playlist_videos

List Playlist Videos

Use this when the user shares a YouTube playlist, or wants to work through a course, lecture series, or podcast playlist video by video (for example to build study notes for each lecture). Returns the videos in playlist order, one page at a time. Pass `continuation` from a previous response for the next page.

輸入參數playlistcontinuation

get_credits

Get Credits

Use this when the user asks how many credits their getyoutubetranscript.com account has left, or after another tool reports the account has no credits remaining. Returns plan and top-up credit balances. Calling it does not use credits.

無需輸入參數。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分