Install
openclaw skills install bootleg-link-mcpMCP server for downloading YouTube audio as MP3 with embedded cover art, task queue, progress tracking, and SQLite persistence
openclaw skills install bootleg-link-mcpPython 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.
Single-file Python MCP server (src/server.py) communicating over stdin/stdout via JSON-RPC 2.0.
bestaudio/best formatwritethumbnail, embeds into MP3 ID3 APIC frame using mutagen, then cleans up webp/webm files| 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 |
clear_database | Clear ALL tasks and videos from database |
get_queue_status | Get queue metrics (active, queued, total) |
{
"url": "https://www.youtube.com/@ChannelName/videos",
"quality": "320",
"outputDir": "/path/to/output"
}
Returns: { "success": true, "taskId": "task_xxx", "status": "pending" }
{
"taskId": "task_xxx"
}
Returns: { "status": "downloading", "progress": 45, "songsCompleted": 5, "songsTotal": 100 }
yt-dlp — YouTube audio extractionmutagen — MP3 ID3 tag manipulation and cover art embeddingsqlite3, json, threading, concurrent.futures)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": "python3",
"args": ["src/server.py"],
"env": {
"BOOTLEG_OUTPUT_DIR": "~/Downloads/bootleg-link",
"BOOTLEG_HTTP_PROXY": "BOOTLEG_HTTP_PROXY",
"BOOTLEG_HTTPS_PROXY": "BOOTLEG_HTTPS_PROXY"
}
}