home / mcp / youtube media downloader mcp server
Provides access to the Youtube Media Downloader API via an MCP server with stdio transport.
Configuration
View docs{
"mcpServers": {
"bach-ai-tools-bachai-youtube-media-downloader": {
"command": "python",
"args": [
"server.py"
],
"env": {
"API_KEY": "YOUR_API_KEY"
}
}
}
}Youtube Media Downloader MCP Server exposes the Youtube Media Downloader API through an MCP server using stdio transport. It lets you access video details, playlists, channels, searches, and subtitles via a configurable MCP client, with secure API key handling and structured endpoints.
You will connect to this MCP server from your MCP client using the stdio transport. You provide your API key via environment variables and start the server with a ready-made command sequence from your preferred runner (uvx, Python, or a direct CLI invocation). Your MCP client will then call the endpoints described by the server to fetch YouTube data like video details, playlists, channel info, and more.
Prerequisites: you need Python, or you can run the server with the uvx runtime. You also need pip to install the Python package.
# Install the Python package from PyPI
pip install bach-youtube_media_downloader
# Or install from source in development mode
pip install -e .Set the API key as an environment variable before starting any MCP connection. This key authenticates requests to the Youtube Media Downloader API.
export API_KEY="your_api_key_here"The following commands start the MCP server using stdio transport. Use the full command that fits your preferred runner.
# Start with uvx (recommended)
uvx --from bach-youtube_media_downloader bach_youtube_media_downloader
# Start with uvx for latest version
uvx --from bach-youtube_media_downloader@latest bach_youtube_media_downloader
# Start directly with Python in development mode
python server.py
# Run after installing as a CLI command
bach_youtube_media_downloaderConfigure your MCP client targets in your Cursor MCP config or Claude Desktop config to expose this server to your applications.
{
"mcpServers": {
"ytm_downloader_uvx": {
"command": "uvx",
"args": ["--from", "bach-youtube_media_downloader", "bach_youtube_media_downloader"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}Fetches full details of a YouTube video, including video/audio URLs, thumbnails, subtitles, related videos, and playlists via GET /v2/video/details.
Lists available videos in a YouTube playlist with pagination. Endpoints: GET /v2/playlist/videos.
Fetches details of a YouTube playlist via GET /v2/playlist/details.
Lists items with the ability to pass a long nextToken in the request body via POST /v2/misc/list-items.
Lists YouTube videos related to a hashtag with pagination via GET /v2/hashtag/videos.
Lists playlists/releases/podcasts of a channel via GET /v2/channel/playlists.
Lists channel videos, shorts, or live streams via GET /v2/channel/videos.
Searches YouTube channels via GET /v2/search/channels with pagination.
Searches YouTube videos with filters via GET /v2/search/videos with pagination.
Lists comments on a YouTube video via GET /v2/video/comments with pagination.
Lists related videos and playlists via GET /v2/video/related with pagination.
Searches YouTube playlists via GET /v2/search/playlists with pagination.
Lists autocomplete suggestions via GET /v2/search/suggestions.
Lists comments of a YouTube community post via GET /v2/post/comments with pagination.
Fetches details of a YouTube community post via GET /v2/post/details.
Searches for videos and playlists in a YouTube Channel via GET /v2/channel/search with pagination.
Lists channel posts such as polls, videos, or images via GET /v2/channel/posts with pagination.
Fetches details of a YouTube channel via GET /v2/channel/details.
Translates, converts and downloads a subtitle via GET /v2/video/subtitles.