从DJ Set或混音中下载单曲。给定YouTube、SoundCloud、Mixcloud或1001Tracklists的链接,从页面描述中提取曲目列表...
DJ Set Ripper. 从 DJ 设定中提取音轨列表, 并逐个下载每个音轨.是一项面向实际任务的技能,主要用于QQ 法律通知: 此技能旨在下载您有权访问的音乐—— 购买, 免费。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
从 DJ 混音集(DJ set)中提取曲目列表,并单独下载每一首曲目。
⚠️ 法律声明:本功能仅用于下载您拥有合法访问权限的音乐内容——例如已购商品、免费发行作品、遵循知识共享协议(Creative Commons)的作品等。请严格遵守您所在司法管辖区的版权法律法规。作者不对任何滥用行为承担责任。
与 dj-mp3-sourcer 相同(即需安装 yt-dlp、ffmpeg/ffprobe、spotdl)。无额外依赖。
获取混音集 URL 并提取原始文本(包括简介、元数据、评论等):
YouTube:
yt-dlp --dump-json "" | jq -r '.description'
SoundCloud / Mixcloud:
使用 web_fetch 以 Markdown 模式抓取页面内容。
1001Tracklists:
使用 web_fetch —— 此来源结构化程度最高,若可用请优先选用。
将原始网页内容传入模型,并使用如下提示模板:
从该 DJ 混音集描述中提取全部曲目。返回一个 JSON 数组,每个元素为对象:
[{"number": 1, "timestamp": "0:00", "artist": "Artist Name", "title": "Track Title (Mix Name)"}]
规则:
- 在 title 字段中保留 remix/mix 名称(例如 "Original Mix"、"Extended Mix"、"Remix")
- 若某曲目标注为 "ID - ID" 或 "ID",则 artist 和 title 均设为 "ID"
- 若仅有时间戳而无曲目信息,则跳过该条目
- 标准化艺人名称(如修复全大写格式等)
- 若无时间戳,则 timestamp 设为 null
- 曲目编号从 1 开始顺序递增
Raw content:
"""
{description_text}
"""
若解析结果为空(即未提取到任何曲目),请告知用户无法提取曲目列表,并建议:
对每个已解析的曲目(跳过 artist 与 title 均为 "ID" 的条目)执行以下操作:
sessions_spawn 并行下载(每次批量处理 3–5 首,避免触发限速)~/Downloads/{set-name}/其中 {set-name} 由混音集标题生成(经文件系统安全清洗)。
询问用户是否还需下载整套混音集。若用户确认:
yt-dlp -x --audio-format mp3 --audio-quality 0
--embed-thumbnail --add-metadata
-o "~/Downloads/{set-name}/{set-name} [Full Mix].%(ext)s" ""
在所有下载任务完成之后(注意:不是每批下载后单独执行,而是等待所有子代理全部结束),统一运行一次标准化脚本:
# 1. 将已解析的曲目列表写入 JSON 文件
cat > /tmp/tracklist.json << 'EOF'
[{"artist": "Artist", "title": "Title"}, ...]
EOF
# 2. 执行标准化
scripts/normalize-filenames.sh ~/Downloads/{set-name} /tmp/tracklist.json
该脚本通过模糊匹配将每个 MP3 文件关联至曲目列表中的对应条目,并重命名为标准格式 Artist - Title.mp3。可自动处理诸如 NA - 前缀、(Official Video) 垃圾信息、错误艺人署名、厂牌名嵌入等问题。
关键说明:此步骤必须在主代理(parent agent)中、全部子批次返回后再执行 —— 切勿交由子代理分别重命名。已解析的曲目列表是文件命名的唯一可信来源(source of truth)。
创建日志文件:~/Downloads/{set-name}/{timestamp}.log,格式如下:
DJ Set Ripper Log
=================
Set: {set title}
URL: {original url}
Date: {ISO timestamp}
Tracks found: {total}
# | Artist | Title | Status | Source | Bitrate | Size | File/Link
----|---------------------|--------------------------------|----------------|----------|---------|-------|----------
01 | Argy | Aria (Original Mix) | ✅ downloaded | spotdl | 320k | 8.2MB | Argy - Aria (Original Mix).mp3
02 | ID | ID | ⬛ unidentified | — | — | — | —
03 | Massano | Odyssey | ✅ downloaded | youtube | 271k | 6.5MB | Massano - Odyssey.mp3
04 | Boris Brejcha | Gravity (Extended Mix) | 🛒 purchase | beatport | — | — | https://...
05 | Some Bootleg | Unreleased VIP | ❌ not found | — | — | — | —
Summary: 3 downloaded, 1 purchase link, 1 not found, 1 unidentified
Total size: ~XXM (individual tracks) + XXM (full mix)
Full mix: ✅ downloaded → {set-name} [Full Mix].mp3
Notes:
- Bitrate via `ffprobe -v quiet -show_entries format=bit_rate -of csv=p=0 ""`
- File size via `ls -lh`
web_search 查询 1001Tracklists:"{set title}" site:1001tracklists.comnot found 并附加说明| 配置项 | 默认值 | 说明 |
|---|---|---|
| 输出目录 | ~/Downloads/{set-name}/ |
按混音集划分的子目录 |
| 音频格式 | mp3 320k | 由 dj-mp3-sourcer 控制 |
| 下载完整混音集 | 询问用户 | 可设为始终启用 / 始终禁用 |
| 仅限免费资源模式 | true | 透传至 dj-mp3-sourcer(跳过付费音源,仅使用 spotdl / yt-dlp) |
| 并行下载数 | 5 | 最大并发曲目下载数量 |
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习