ytdlp_search_videosLABSCO SUMMARY
The whole yt-dlp surface, addressed in sentences instead of flags.
The useful half is the reading side: transcripts, metadata and comment threads come back structured and truncated to stay inside a context window, so a video becomes something a model can actually analyse. Downloads are there too, and they honour the yt-dlp config file you already have.
What it is
A wrapper around the yt-dlp command-line downloader. Every tool name is prefixed with ytdlp_ so it will not collide with other servers, and every call runs locally against yt-dlp rather than a third-party API.
What you get
- Search YouTube with pagination and an upload-date filter, returned as JSON or Markdown
- List a video's subtitle languages, then download the VTT with timestamps or a cleaned plain-text transcript
- Download a video at 480p, 720p, 1080p or best, optionally trimmed to a start and end time
- Download audio only, in the best available M4A or MP3
- Full video metadata as JSON, or a short human-readable summary of the key fields
- Comments as flat JSON, threaded JSON, or a Markdown tree that keeps reply branches intact
Requirements
yt-dlp installed on the host - winget on Windows, brew on macOS, pip on Linux. The server itself runs with npx @kevinwatt/yt-dlp-mcp@latest, no account or key. Cookie-based access to private or age-restricted video additionally needs deno, because YouTube's authenticated endpoints require JavaScript challenge solving.
Setup effort
One command — npx -y @kevinwatt/yt-dlp-mcp@latest
USE CASES
Reading a talk without watching it
Pull the clean transcript in the language you want, then work from the text - no timestamps or VTT markup in the way.
Finding out what an audience actually said
Fetch the comments as a threaded Markdown tree so replies stay attached to their parent, then summarise the themes.
Surveying what exists on a topic
Search with a date filter and page through the results, reading titles, channels and durations before deciding what is worth opening.
Clipping one section out of a long recording
Download the video at a chosen resolution with a start and end time, instead of fetching the whole file and cutting it afterwards.
10 tools
Listed in project docs. Your client may show a different list.
ytdlp_list_subtitle_languagesytdlp_download_video_subtitlesytdlp_download_transcriptytdlp_download_videoytdlp_download_audioytdlp_get_video_metadataytdlp_get_video_metadata_summaryytdlp_get_video_commentsytdlp_get_video_comments_summaryBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation. All tools carry the ytdlp_ prefix, such as ytdlp_search_videos. Cookie authentication instructions conflict: one place asks for deno, another for EJS or PhantomJS.
Requires
- yt-dlp installed on your system (winget install yt-dlp on Windows, brew install yt-dlp on macOS, pip install yt-dlp on Linux)
- npx on PATH
INSTALLATION
Connect your client
Server setup
npx -y @kevinwatt/yt-dlp-mcp@latestMCP Clients
Claude Code
claude mcp add yt-dlp npx @kevinwatt/yt-dlp-mcp@latestVS Code
code --add-mcp '{"name":"yt-dlp","command":"npx","args":["-y","@kevinwatt/yt-dlp-mcp@latest"]}'Claude Desktop, Dive, Windsurf, Cline
{
"mcpServers": {
"yt-dlp": {
"command": "npx",
"args": [
"-y",
"@kevinwatt/yt-dlp-mcp@latest"
]
}
}
}Cursor
Cursor Settings → MCP → New MCP Server, then add:
{
"mcpServers": {
"yt-dlp": {
"command": "npx",
"args": [
"-y",
"@kevinwatt/yt-dlp-mcp@latest"
]
}
}
}Warp
Settings → AI → Manage MCP Servers → + Add, then use:
{
"mcpServers": {
"yt-dlp": {
"command": "npx",
"args": [
"-y",
"@kevinwatt/yt-dlp-mcp@latest"
]
}
}
}JetBrains AI Assistant
Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add, then use:
{
"mcpServers": {
"yt-dlp": {
"command": "npx",
"args": [
"-y",
"@kevinwatt/yt-dlp-mcp@latest"
]
}
}
}