tldw-mcp
Fetches transcripts and metadata from YouTube videos, providing tools to retrieve captions and video information in Markdown format.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tldw-mcpget transcript of https://youtu.be/dQw4w9WgXcQ"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tldw-mcp — Too Long; Didn't Watch
An MCP server that turns any YouTube video into a clean Markdown transcript (plus metadata), ready for an AI to summarize and discuss. No more sitting through a 1-hour video to find out if it was worth it — fetch the transcript, let your AI summarize it, then chat about it.
Built with FastMCP (Python), served over Streamable HTTP, and exposed remotely through a Cloudflare Tunnel so you can use it from ChatGPT, Claude, your phone, or anywhere.
Tools
Tool | Input | Output |
|
| Markdown: frontmatter (title, channel, duration, date…) + transcript |
|
| Markdown: metadata + description (no transcript) |
lang— preferred caption language (en,fr, …). If omitted: manual subs first, then the video's original language, then English.include_timestamps— prefix each line with[mm:ss].
No video is ever downloaded — only the caption track (official subtitles preferred, auto-generated as fallback) via yt-dlp.
How it works
client (ChatGPT / Claude / phone)
│ HTTPS https://<host>/<secret-path>/mcp
▼
Cloudflare Tunnel ──► 127.0.0.1:8765 (uvicorn)
server.py (FastMCP)
└─ yt-dlp ──(proxy)──► YouTube captionsAuth = a secret URL path. The MCP endpoint is mounted at an unguessable path
(MCP_PATH); any other path returns 404. Simple, and works with clients that can't send
custom headers. The server binds only to 127.0.0.1 — it is never exposed directly.
Local run
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
MCP_PATH=/mcp PORT=8765 .venv/bin/python server.pyConfiguration (env vars)
Var | Default | Purpose |
|
| Secret URL path the MCP endpoint is mounted at |
|
| Local port (bind is always |
|
| Path to the yt-dlp binary |
| (none) | HTTP proxy for yt-dlp and caption download ( |
Datacenter IPs are blocked by YouTube ("Sign in to confirm you're not a bot"). When deploying on a VPS/cloud server, set
YTDLP_PROXYto a residential proxy or it won't work.
Deploy on a server (systemd + Cloudflare Tunnel)
Copy
server.py+requirements.txtto the server (e.g./root/youtube-mcp/), create the venv, install deps.Make sure
yt-dlpis installed (/usr/local/bin/yt-dlp).Install the systemd service (generates a random secret path, restarts on crash/reboot):
export YTDLP_PROXY='http://user:pass@host:port' # if your server IP is blocked bash deploy-setup.shInstall cloudflared and connect a tunnel whose public hostname points to
http://localhost:8765(HTTP, not HTTPS):cloudflared service install <YOUR_TUNNEL_TOKEN>Your MCP URL is
https://<your-hostname>/<secret-path>/mcp(the secret path is printed bydeploy-setup.shand stored in.mcp_path).
Connect a client
Claude Code:
claude mcp add --transport http tldw https://<host>/<secret>/mcpChatGPT (Plus/Pro): Settings → Connectors → developer mode → Add MCP server → paste the URL (auth: None).
Claude Desktop: Settings → Connectors → add a custom connector with the URL.
Test
MCP_URL="https://<host>/<secret>/mcp" bash test-public.shLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/limace11/tldw-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server