← Back to Skills Marketplace
esanle

Bootleg-Link MCP

by esanle · GitHub ↗ · v0.7.0 · MIT-0
linuxdarwin ⚠ suspicious
80
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install bootleg-link-mcp
Description
MCP server for downloading YouTube audio as MP3 with embedded cover art, task queue, progress tracking, and SQLite persistence
README (SKILL.md)

Bootleg-Link MCP v0.7.0

Python MCP server for downloading YouTube audio as MP3 with automatic cover art embedding. Features a task queue, concurrent download manager, SQLite-based persistence, and paged playlist support.

Architecture

Single-file Python MCP server (src/server.py) communicating over stdin/stdout via JSON-RPC 2.0.

  • Task Queue: In-memory queue with SQLite persistence for resume across restarts
  • Download Engine: yt-dlp Python API with bestaudio/best format
  • Cover Art: Downloads thumbnail via writethumbnail, embeds into MP3 ID3 APIC frame using mutagen, then cleans up webp/webm files
  • Concurrency: ThreadPoolExecutor with configurable worker count
  • Paged Playlist: Flat playlist extraction (100 per page) for large channel downloads

MCP Tools

Tool Description
submit_download_task Submit a YouTube URL/channel for audio download
query_progress Query task progress and status
list_tasks List all tasks with optional status filter
cancel_task Cancel a pending or running task
clear_completed Clear completed/failed/cancelled tasks
get_queue_status Get queue metrics (active, queued, total)

submit_download_task

{
  "url": "https://www.youtube.com/@ChannelName/videos",
  "quality": "320",
  "outputDir": "/path/to/output"
}

Returns: { "success": true, "taskId": "task_xxx", "status": "pending" }

query_progress

{
  "taskId": "task_xxx"
}

Returns: { "status": "downloading", "progress": 45, "songsCompleted": 5, "songsTotal": 100 }

Dependencies

  • yt-dlp — YouTube audio extraction
  • mutagen — MP3 ID3 tag manipulation and cover art embedding
  • Python 3.10+ (stdlib only: sqlite3, json, threading, concurrent.futures)

Installation

pip install yt-dlp mutagen

Configuration

Config file: ~/.bootleg-link-mcp/config.json

{
  "paths": {
    "outputDir": "~/Downloads/bootleg-link",
    "dbPath": "~/.bootleg-link-mcp/bootleg-link.db"
  },
  "proxy": {
    "http": "http://proxy:port",
    "https": "http://proxy:port"
  },
  "download": {
    "maxConcurrent": 4,
    "quality": "320"
  }
}

Or via OpenClaw MCP config with environment variables (deprecated, use config.json):

{
  "command": "/path/to/python3",
  "args": ["src/server.py"],
  "env": {
    "BOOTLEG_OUTPUT_DIR": "/mnt/e/downloads",
    "BOOTLEG_HTTP_PROXY": "http://proxy:1081",
    "BOOTLEG_HTTPS_PROXY": "http://proxy:1081"
  }
}

Development

# Run tests (67 test cases)
/opt/pyenv/versions/3.11.8/bin/python3 test_mcp.py

# Run server directly
/opt/pyenv/versions/3.11.8/bin/python3 src/server.py
Usage Guidance
Install only if you are comfortable with a long-running downloader that writes files and resumes queued downloads. Before use, remove or replace the 100.64.0.3 proxy configuration, choose a dedicated output folder, and consider pinning dependencies.
Capability Assessment
Purpose & Capability
The skill’s core behavior—downloading audio via yt-dlp, embedding cover art, tracking progress, and writing MP3s—is consistent with its stated purpose, but it can perform large network downloads and write many files.
Instruction Scope
The MCP tools expose user/agent-submitted URLs and output directories; this is expected for a downloader, but users should keep control over what URLs and directories are used.
Install Mechanism
There is no install spec, and the docs rely on manual pip installation of unpinned dependencies; this is common for a Python tool but should be reviewed before use.
Credentials
CLAUDE.md contains an OpenClaw gateway configuration with a concrete private CGNAT/Tailscale-range HTTP proxy endpoint, which is not clearly explained as user-specific or declared in metadata.
Persistence & Privilege
The server is designed as a long-lived MCP daemon with SQLite persistence and automatic task resume; this is disclosed and purpose-aligned, but users should know downloads may continue after restart.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install bootleg-link-mcp
  3. After installation, invoke the skill by name or use /bootleg-link-mcp
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.7.0
Python release: yt-dlp engine, SQLite persistence, paged playlists, mutagen cover embedding, auto-cleanup, concurrent downloads
Metadata
Slug bootleg-link-mcp
Version 0.7.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Bootleg-Link MCP?

MCP server for downloading YouTube audio as MP3 with embedded cover art, task queue, progress tracking, and SQLite persistence. It is an AI Agent Skill for Claude Code / OpenClaw, with 80 downloads so far.

How do I install Bootleg-Link MCP?

Run "/install bootleg-link-mcp" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Bootleg-Link MCP free?

Yes, Bootleg-Link MCP is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Bootleg-Link MCP support?

Bootleg-Link MCP is cross-platform and runs anywhere OpenClaw / Claude Code is available (linux, darwin).

Who created Bootleg-Link MCP?

It is built and maintained by esanle (@esanle); the current version is v0.7.0.

💬 Comments