Skip to main content
Glama
sydasif

MCP Video Downloader

by sydasif
README.md
# MCP Video Downloader

An MCP (Model Context Protocol) server for downloading videos and audio from various platforms using yt-dlp.

## Features

- Video and audio downloads with configurable quality
- Progress tracking via SQLite database
- Worker-based architecture with child process isolation
- Security-first design with URL validation and SSRF protection
- Batch download support
- Cancellation and retry mechanisms
- Automatic cleanup of old files
- Health checks
- Docker support
- MCP server with stdio and HTTP transport options

## Architecture

The system consists of:

- **MCP Server**: Exposes tools for inspecting URLs, starting downloads, checking status, etc.
- **Worker**: Processes download jobs in isolated child processes
- **Database**: SQLite database for storing job state and progress
- **Services**: Business logic for metadata extraction, downloads, cleanup, etc.

## Development

This project follows the Python standards defined in `~/.claude/docs/index.md`.

### Setup

```bash
# Clone the repository
git clone <repository-url>
cd mcp-video-downloader

# Install dependencies
uv sync

# Run tests
uv run pytest
```

### Running

```bash
# Run the MCP server (stdio transport)
uv run python -m mcp_video_downloader.mcp.server

# Run the worker
uv run python -m mcp_video_downloader.worker
```

## License

MIT