Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Download individual songs from a DJ set or mix. Given a link from YouTube, SoundCloud, Mixcloud, or 1001Tracklists, extract the tracklist from the page descr...
Download individual songs from a DJ set or mix. Given a link from YouTube, SoundCloud, Mixcloud, or 1001Tracklists, extract the tracklist from the page descr...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Extract tracklists from DJ sets and download each track individually. โ ๏ธ Legal Notice: This skill is intended for downloading music you have the right to access โ purchases, free releases, creative commons, etc. Respect copyright laws in your jurisdiction. The author is not responsible for misuse.
Same as dj-mp3-sourcer (yt-dlp, ffmpeg/ffprobe, spotdl). No additional dependencies.
Fetch the set URL and extract raw text (description, metadata, comments): YouTube: yt-dlp --dump-json "<url>" | jq -r '.description' SoundCloud / Mixcloud: Use web_fetch to grab the page content in markdown mode. 1001Tracklists: Use web_fetch โ this source has the most structured data. Prefer it when available.
For each parsed track (skipping any with artist AND title = "ID"): Use the dj-mp3-sourcer workflow: search sources in priority order, prefer extended mixes, download or surface purchase links Use sessions_spawn to parallelize downloads (batch of 3-5 at a time to avoid rate limits) Save files to: ~/Downloads/{set-name}/ Set name is derived from the mix title (sanitized for filesystem).
Ask the user if they also want the full mix downloaded. If yes: yt-dlp -x --audio-format mp3 --audio-quality 0 \ --embed-thumbnail --add-metadata \ -o "~/Downloads/{set-name}/{set-name} [Full Mix].%(ext)s" "<url>"
After all downloads complete (not per-batch โ wait for every sub-agent to finish), run the normalization script once: # 1. Write the parsed tracklist as JSON cat > /tmp/tracklist.json << 'EOF' [{"artist": "Artist", "title": "Title"}, ...] EOF # 2. Run normalize scripts/normalize-filenames.sh ~/Downloads/{set-name} /tmp/tracklist.json This fuzzy-matches each mp3 to a tracklist entry and renames to clean Artist - Title.mp3. Handles NA - prefixes, (Official Video) junk, wrong artist credits, label names, etc. Critical: Run this in the parent agent after all batches return โ do NOT rely on sub-agents to rename. The parsed tracklist is the source of truth for filenames.
No tracklist in description โ check 1001Tracklists via web_search: "{set title}" site:1001tracklists.com "ID - ID" tracks โ log as unidentified, don't attempt download Bootlegs / mashups โ search anyway, but expect failures. log as not found with note B2B sets โ multiple artists in set title, handle gracefully Duplicate tracks โ deduplicate by artist+title before downloading Very long sets (50+ tracks) โ batch in groups of 5, report progress as batches complete
SettingDefaultNotesOutput directory~/Downloads/{set-name}/Per-set subfolderFormatmp3 320kVia dj-mp3-sourcerDownload full mixask userCan be set to always/neverFree only modetruePassed through to dj-mp3-sourcer (skip paid sources, use spotdl/yt-dlp only)Parallel downloads5Max concurrent track downloads
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.