YouTube Reader
Turn any YouTube video into text: transcript, title, channel, timestamps.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http youtube-reader 'https://web-production-0cbb7.up.railway.app/mcp'
{
"mcpServers": {
"youtube-reader": {
"type": "http",
"url": "https://web-production-0cbb7.up.railway.app/mcp"
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
YouTube Reader
Turn any YouTube video into text. For AI agents that can't watch video.
Give it a video link. Get back the title, channel, and the full spoken transcript with timestamps. One call, clean JSON. No API key needed.
Quick example
You send:
POST /read
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }
You get:
{
"video_id": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channel": "Rick Astley",
"channel_url": "https://www.youtube.com/@RickAstleyYT",
"thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
"transcript_available": true,
"language": "English",
"segment_count": 61,
"duration_seconds": 213,
"full_text": "We're no strangers to love...",
"segments": [
{ "start": 18.5, "text": "We're no strangers to love" },
{ "start": 22.1, "text": "You know the rules and so do I" }
]
}
Run it
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python server.py # http://127.0.0.1:8081
POST /readwith{"url": "<youtube link>"}→ full report (JSON)GET /health→{"ok": true}
Accepts watch?v=, youtu.be/, /shorts/, /embed/, /live/ links and bare video IDs.
Use as an MCP server (Claude Desktop, Cursor, Windsurf...)
.venv/bin/pip install fastmcp
.venv/bin/python mcp_server.py
One tool: youtube_reader(url) — same report as the HTTP API.
How transcripts are fetched (in order)
youtube-transcript-api— direct, free- Invidious instances — fallback, free
Known limitation: YouTube rate-limits automated requests from datacenter IPs, so transcript fetches can intermittently fail from cloud servers. Metadata (title/channel via official oEmbed) is unaffected. Professional fix: add a residential proxy (~$3 per 1,000 transcripts) as step 3.
Deploy (Railway, free tier)
- Push this folder to GitHub
- https://railway.app → New Project → Deploy from repo
- It reads
requirements.txt+Procfileautomatically. Done. - Your API is live at the Railway URL:
POST https://<your-app>.up.railway.app/read
Pricing
- Metadata (title/channel): free
- Transcript via MCP (
youtube_readertool): $0.02 per call, paid in USDC on Base via x402 — no signup, no API key. See PAYMENTS.md. - Plain HTTP API (
POST /read): free while in beta - Heavy users: $19/month tier planned (Stripe, phase 2)
Monetization (MCPize)
Per-call pricing is configured in mcpize.yaml and the MCPize dashboard (Payments tab). Full setup guide, wallet instructions, testnet flow, and caveats: PAYMENTS.md.
Frequently asked questions
What is YouTube Reader?
Turn any YouTube video into text: transcript, title, channel, timestamps.
How do I install YouTube Reader?
It runs as a remote server. In Claude Code: claude mcp add --transport http youtube-reader 'https://web-production-0cbb7.up.railway.app/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does YouTube Reader need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is YouTube Reader open source?
Its code is public on GitHub, but the repository does not declare a standard license.
Who maintains YouTube Reader?
It is published by Anmol1310. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.