get_transcript
Return the transcript for a single YouTube video URL or ID.
video_urlrequiredinclude_timestamps
io.github.fbetteoPublished by GitHub account fbetteov1.0.0Updated Oct 25, 2026
Transcripts from YouTube videos, whole channels and playlists for AI agents, with bulk ZIP export.
A hosted MCP server that fetches YouTube transcripts for single videos, channels and playlists, with bulk ZIP export.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.fbetteo%2Fyoutube-transcripts/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"youtube-transcripts": {
"type": "http",
"url": "https://api.youtubetranscripts.fbetteo.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}Turn any YouTube video, playlist, or channel into agent-ready transcript context.
This package provides:
ytx, a CLI for transcripts, channel jobs, playlist jobs, polling, and ZIP downloads/mcp endpoint and Developer APIRun without installing:
Or install globally:
The CLI reads auth in this order:
YOUTUBE_TRANSCRIPT_API_KEYytx auth set-keySet an API key:
Or use environment variables:
PowerShell:
Get account credits:
Fetch one transcript:
Download channel transcripts:
Download playlist transcripts:
Poll a job:
Download a completed job:
Start the local stdio MCP server:
This command waits for JSON-RPC messages on stdin. Agent clients should launch it with:
Available MCP tools:
get_transcriptget_channel_infolist_channel_videosstart_channel_jobstart_playlist_jobget_job_statusget_download_urlManual smoke test:
If your API server is deployed with hosted MCP enabled:
List tools:
Call a tool:
The repo includes an installable skill template at:
For distribution, publish that file as the root skill.md in a separate public skill repo.
Most users do not need to set an API URL. The package defaults to the hosted production API.
Only set a custom base URL for local development, staging, self-hosted deployments, or debugging:
Or save it in local CLI config:
If fetch failed appears and the API logs show nothing, the CLI is not reaching the API host. Check:
The CLI base URL priority is:
YOUTUBE_TRANSCRIPT_API_BASE_URLAPI_BASE_URLOn Windows PowerShell, quote channel handles:
PowerShell aliases curl to Invoke-WebRequest; use curl.exe or Invoke-RestMethod.
Source: README.MD at commit 4be56f6
Return the transcript for a single YouTube video URL or ID.
video_urlrequiredinclude_timestampsReturn metadata for a YouTube channel before starting a job.
channelrequiredList a YouTube channel's videos with duration metadata, in the order channel jobs use (long-form, then Shorts, then livestreams; newest first). limit=N previews what start_channel_job with max_videos=N downloads; has_more tells if the channel has more.
limitchannelrequiredStart an async job that downloads channel transcripts.
channelrequiredmax_videosconcatenate_allinclude_timestampsStart an async job that downloads playlist transcripts.
playlistrequiredmax_videosconcatenate_allinclude_timestampsPoll an async transcript job and get a download URL when ready.
job_idrequiredReturn the ZIP download URL for a completed job.
job_idrequiredCancel an async transcript job and refund unprocessed videos.
job_idrequired90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare a license in the repository or the registry entry.
npx youtube-transcript-agent --helpnpm install -g youtube-transcript-agentytx --helpnpx youtube-transcript-agent auth set-key <api_key>export YOUTUBE_TRANSCRIPT_API_KEY=<api_key>$env:YOUTUBE_TRANSCRIPT_API_KEY="<api_key>"npx youtube-transcript-agent creditsnpx youtube-transcript-agent transcript FOp280ZAxhg --timestampsnpx youtube-transcript-agent channel download "@mkbhd" --max 25 --wait --output channel.zipnpx youtube-transcript-agent playlist download <playlist_url_or_id> --max 25 --wait --output playlist.zipnpx youtube-transcript-agent jobs status <job_id>npx youtube-transcript-agent jobs download <job_id> --output transcripts.zipnpx youtube-transcript-agent mcpCommand: npxArgs: youtube-transcript-agent mcpEnv: YOUTUBE_TRANSCRIPT_API_KEY=<api_key>echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | npx youtube-transcript-agent mcpEndpoint: https://api.youtubetranscripts.fbetteo.com/mcpAuth: Authorization: Bearer <api_key>curl -X POST "https://api.youtubetranscripts.fbetteo.com/mcp" \ -H "Content-Type: application/json" \ --data-raw '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'curl -X POST "https://api.youtubetranscripts.fbetteo.com/mcp" \ -H "Authorization: Bearer <api_key>" \ -H "Content-Type: application/json" \ --data-raw '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_transcript","arguments":{"video_url":"FOp280ZAxhg"}}}'agent-skill/skill.mdexport YOUTUBE_TRANSCRIPT_API_BASE_URL=http://127.0.0.1:8000npx youtube-transcript-agent auth set-key <api_key> --base-url http://127.0.0.1:8000echo "$YOUTUBE_TRANSCRIPT_API_BASE_URL"echo "$API_BASE_URL"cat ~/.youtube-transcript-agent/config.json 2>/dev/nullnode cli/dist/cli.js channel download "@mkbhd" --max 2 --wait