Skip to content

media-downloader

A CLI / API + MCP server + A2A agent for downloading audio and video from the internet — built on yt-dlp and the agent-utilities ecosystem.

Official documentation

This site is the canonical reference for media-downloader, maintained alongside every release.

PyPI MCP Server License GitHub

Overview

media-downloader wraps yt-dlp in a typed, deterministic tool surface and exposes the same capability three ways:

  • MediaDownloader — a Python class that downloads video or audio (MP3) from YouTube, Rumble, and every other site yt-dlp supports, with parallel batch downloads and progress callbacks.
  • An MCP server (media-downloader-mcp) — the download_media tool an agent calls, plus download_video / download_audio prompts.
  • A Pydantic-AI agent (media-downloader-agent) — a conversational A2A server with an optional web UI that drives the MCP tool surface.

Every layer inherits the agent-utilities enterprise foundation: OpenTelemetry tracing, Eunomia policy authorization, and prompt-injection defenses.

Explore the documentation

  • Installation — pip, source, extras, and the prebuilt Docker image.
  • Deployment — run the MCP server, the agent server, Docker Compose, Caddy + Technitium.
  • Usage — the MCP tools, the MediaDownloader Python API, and the CLI.
  • Overview — the ecosystem role, enterprise readiness, and architecture.
  • Concepts — the CONCEPT:MDLD-* registry.

Quick start

pip install "media-downloader[mcp]"
media-downloader-mcp             # stdio MCP server (default transport)

Or download from the command line directly:

pip install media-downloader
media-downloader --links "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --directory ./Downloads

See Installation and Deployment for the full matrix (PyPI extras, Docker image, all transports, reverse proxy, DNS).