yt-dlp-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YTDLP_MCP_TEMP_ROOT | No | Managed temp directory (default: OS temp + yt-dlp-mcp) | |
| YTDLP_MCP_TIMEOUT_MS | No | Per-command timeout in milliseconds | 900000 |
| YTDLP_MCP_YTDLP_PATH | No | Override yt-dlp binary path (auto-detected by default) | |
| YTDLP_MCP_FFMPEG_PATH | No | Override ffmpeg binary path (auto-detected by default) | |
| YTDLP_MCP_OUTPUT_ROOT | No | Managed output directory | ~/Downloads/yt-dlp-mcp |
| YTDLP_MCP_COOKIES_FILE | No | Server-approved cookies file | |
| YTDLP_MCP_FFPROBE_PATH | No | Override ffprobe binary path (auto-detected by default) | |
| YTDLP_MCP_ENABLE_EXPERT | No | Enable ytdlp_execute_expert tool | false |
| YTDLP_MCP_MAX_OUTPUT_BYTES | No | Max retained stdout/stderr in bytes | 4194304 |
| YTDLP_MCP_ALLOW_CONFIG_FILES | No | Allow cookie/netrc/config file inputs | false |
| YTDLP_MCP_COOKIES_FROM_BROWSER | No | Server-approved browser cookie source | |
| YTDLP_MCP_ALLOW_ARBITRARY_OUTPUT_PATHS | No | Allow paths outside managed roots | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ytdlp_check_environmentA | Check whether this MCP server can run yt-dlp workflows on the host. Use before the first download or when PATH, ffmpeg, ffprobe, cookies, plugins, or policy settings may be misconfigured. |
| ytdlp_list_extractorsA | List all site extractors supported by the installed yt-dlp binary. Use when the user asks whether a website or URL family is supported. |
| ytdlp_list_impersonation_targetsA | List browser impersonation targets supported by the installed yt-dlp binary. Use when a download needs browser-like request headers or extractor troubleshooting. |
| ytdlp_search_videosA | Search YouTube through yt-dlp without downloading media and return compact video results. Use when the user asks to find videos before choosing one to inspect or download. |
| ytdlp_get_metadataB | Extract structured metadata for a media URL without downloading files using yt-dlp --dump-json. Use to inspect title, duration, uploader, formats, subtitles, thumbnails, and selected best format. |
| ytdlp_list_formatsA | List available audio/video formats for a media URL without downloading files. Use when the user asks what quality, codec, resolution, bitrate, or format IDs are available. |
| ytdlp_list_subtitlesA | List available manual subtitles and automatic captions for a media URL without downloading files. Use when the user asks which subtitle languages or formats exist. |
| ytdlp_list_thumbnailsB | List available thumbnails for a media URL without downloading files. Use when the user asks for cover images, thumbnail URLs, resolutions, or poster options. |
| ytdlp_probe_urlA | Probe whether yt-dlp supports a media URL and identify the extractor without downloading files. Use for quick support checks before planning or downloading. |
| ytdlp_plan_downloadA | Dry-run a video, audio, subtitle, thumbnail, or playlist download without writing files. Use to answer what would happen, which format best quality resolves to, required dependencies, output paths, risks, and exact yt-dlp argv. |
| ytdlp_plan_postprocessA | Dry-run post-processing without writing files. Use to explain ffmpeg requirements, output policy, risks, and side effects for remux, recode, audio extraction, embedded assets, chapters, or SponsorBlock. |
| ytdlp_validate_optionsA | Validate typed yt-dlp option input and expose the source-derived option catalog. Use to answer whether a flag or option is supported without executing yt-dlp. |
| ytdlp_download_videoA | Download a web video URL to the managed output root, including YouTube and youtu.be links. Use when: The user asks to download, save, fetch, or get a local video file from a media URL; asks for best quality/highest quality; asks for a specific format/resolution; asks to trim sections; or asks for overwrite behavior. Don't use when: The user only wants audio, subtitles, thumbnails, metadata, or a dry-run plan. Note: This is the intended MCP path for permitted user-provided media download requests such as "download in best quality". Default video format selection plans as bestvideo*+bestaudio/best unless the user asks otherwise. This creates local files under the configured output root. |
| ytdlp_download_audioA | Download or extract audio from a web media URL to the managed output root. Use when: The user asks for audio-only output, MP3, M4A, Opus, WAV, best audio, podcast/music extraction, or keeping audio without video. Don't use when: The user needs a video file with visuals, subtitles only, thumbnails only, metadata, or a dry-run plan. Note: This creates local audio files under the configured output root. |
| ytdlp_download_subtitlesA | Download subtitles or captions for a media URL without downloading the video. Use when the user asks for subtitle languages, auto captions, subtitle formats, subtitle files, transcripts with timestamps, or subtitle conversion. |
| ytdlp_download_thumbnailB | Download thumbnail image files for a media URL without downloading the video. Use when the user asks for a cover image, thumbnail, poster frame, or all thumbnails. |
| ytdlp_download_playlistA | Download playlist, channel, or multi-video URL entries to the managed output root. Use when the user asks to download a playlist/channel, select playlist ranges, skip existing archive entries, cap max downloads, randomize order, or stop on existing files. |
| ytdlp_inspect_archiveB | Read a yt-dlp download archive file under the configured filesystem policy and return its saved archive entries. Use when the user asks what is already in an archive. |
| ytdlp_check_archiveA | Check whether an exact yt-dlp archive entry string exists in an archive file under the configured filesystem policy. This does not resolve a video URL into its archive ID. |
| ytdlp_update_archiveA | Return a safe archive-update plan and recommendation without writing the archive. Prefer using downloadArchive on download tools so yt-dlp writes canonical extractor IDs. |
| ytdlp_remuxA | Download a media URL and remux the resulting video container with ffmpeg, defaulting to MP4 without re-encoding. Use when the user asks to convert containers such as MKV/WebM to MP4. |
| ytdlp_recodeA | Download a media URL and re-encode the resulting video with ffmpeg, defaulting to MP4. Use when the user asks for a target video format and accepts re-encoding. |
| ytdlp_extract_audioB | Download a media URL and extract an audio file with ffmpeg/ffprobe. Use when the user asks for MP3, M4A, Opus, WAV, best audio, or audio-only output. |
| ytdlp_embed_assetsA | Download a media URL and embed subtitles, thumbnail, metadata, chapters, or infojson into the output file. Use when the user asks for a self-contained media file with embedded assets. |
| ytdlp_split_chaptersA | Download a media URL and split the result into one file per chapter. Use when the user asks to create separate chapter files or segment a chaptered video. |
| ytdlp_remove_chaptersA | Download a media URL and remove chapters matching configured regex filters, defaulting to sponsor-like chapters. Use for chapter removal workflows that need ffmpeg cuts. |
| ytdlp_apply_sponsorblockA | Download a media URL and apply SponsorBlock mark or remove options. Use when the user asks to mark, remove, or chapter SponsorBlock categories during download. |
| ytdlp_execute_expertA | Execute reviewed raw yt-dlp argv only when typed tools cannot express the request. Disabled unless YTDLP_MCP_ENABLE_EXPERT=true; dry-run is default and unsafe/path-gated flags are blocked by policy. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| archive_playlist_safely | Guide an agent through planning and downloading only new playlist entries. |
| choose_smallest_acceptable_format | Guide format selection toward smallest acceptable media. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| ytdlp_capabilities | Tool capability map |
| ytdlp_option_catalog_groups | Source-derived yt-dlp option catalog groups |
| ytdlp_safety_policy | Filesystem and expert-mode safety policy |
| ytdlp_troubleshooting | Safe troubleshooting checklist for common yt-dlp MCP failures. |
| ytdlp_environment_summary | Current detected environment summary |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/antonio-orionus/yt-dlp-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server