DJ set ripper

Polar Sponsor
爱发电 赞助
.NET 9.0

从DJ Set或混音中下载单曲。给定YouTube、SoundCloud、Mixcloud或1001Tracklists的链接,从页面描述中提取曲目列表...

DJ Set Ripper. 从 DJ 设定中提取音轨列表, 并逐个下载每个音轨.

功能概述

DJ Set Ripper. 从 DJ 设定中提取音轨列表, 并逐个下载每个音轨.是一项面向实际任务的技能,主要用于QQ 法律通知: 此技能旨在下载您有权访问的音乐—— 购买, 免费。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

DJ Set Ripper

从 DJ 混音集(DJ set)中提取曲目列表,并单独下载每一首曲目。

⚠️ 法律声明:本功能仅用于下载您拥有合法访问权限的音乐内容——例如已购商品、免费发行作品、遵循知识共享协议(Creative Commons)的作品等。请严格遵守您所在司法管辖区的版权法律法规。作者不对任何滥用行为承担责任。

依赖项

与 dj-mp3-sourcer 相同(即需安装 yt-dlp、ffmpeg/ffprobe、spotdl)。无额外依赖。

工作流程

1. 提取网页内容

获取混音集 URL 并提取原始文本(包括简介、元数据、评论等):

YouTube:

yt-dlp --dump-json "" | jq -r '.description'

SoundCloud / Mixcloud:
使用 web_fetch 以 Markdown 模式抓取页面内容。

1001Tracklists:
使用 web_fetch —— 此来源结构化程度最高,若可用请优先选用。

2. 解析曲目列表(由大语言模型驱动)

将原始网页内容传入模型,并使用如下提示模板:

从该 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}
"""

若解析结果为空(即未提取到任何曲目),请告知用户无法提取曲目列表,并建议:

  • 手动查阅 1001Tracklists
  • 直接粘贴曲目列表文本

3. 下载每首曲目

对每个已解析的曲目(跳过 artist 与 title 均为 "ID" 的条目)执行以下操作:

  1. 复用 dj-mp3-sourcer 工作流:按优先级顺序搜索音源,优先选择 Extended Mix;若可下载则执行下载,否则提供购买链接
  2. 使用 sessions_spawn 并行下载(每次批量处理 3–5 首,避免触发限速)
  3. 保存路径为:~/Downloads/{set-name}/

其中 {set-name} 由混音集标题生成(经文件系统安全清洗)。

4. (可选)下载完整混音集

询问用户是否还需下载整套混音集。若用户确认:

yt-dlp -x --audio-format mp3 --audio-quality 0 
  --embed-thumbnail --add-metadata 
  -o "~/Downloads/{set-name}/{set-name} [Full Mix].%(ext)s" ""

5. 标准化文件名

在所有下载任务完成之后(注意:不是每批下载后单独执行,而是等待所有子代理全部结束),统一运行一次标准化脚本:

# 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)。

6. 生成日志文件

创建日志文件:~/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`

边界情况(Edge Cases)

  • 简介中无曲目列表 —— 使用 web_search 查询 1001Tracklists:"{set title}" site:1001tracklists.com
  • "ID - ID" 曲目 —— 记录为未识别(unidentified),不尝试下载
  • Bootleg / Mashup —— 仍尝试搜索,但预期失败率较高;记录为 not found 并附加说明
  • B2B 混音集 —— 混音集标题含多位艺人时,应优雅兼容处理
  • 重复曲目 —— 下载前依据 artist+title 去重
  • 超长混音集(50+ 首) —— 每次分组处理 5 首,各批次完成后报告进度

配置项

配置项 默认值 说明
输出目录 ~/Downloads/{set-name}/ 按混音集划分的子目录
音频格式 mp3 320k 由 dj-mp3-sourcer 控制
下载完整混音集 询问用户 可设为始终启用 / 始终禁用
仅限免费资源模式 true 透传至 dj-mp3-sourcer(跳过付费音源,仅使用 spotdl / yt-dlp)
并行下载数 5 最大并发曲目下载数量

相关专题

更多
Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

2026.11.03

0

18

Docker Desktop镜像构建教程
Docker Desktop镜像构建教程

想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。

2026.11.03

0

11

Docker Desktop容器创建指南
Docker Desktop容器创建指南

本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。

2026.11.03

0

11

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

2026.11.03

0

17

Tailwind CSS 响应式布局怎么写
Tailwind CSS 响应式布局怎么写

Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

2026.11.03

0

19

Tailwind CSS 常用类名怎么记
Tailwind CSS 常用类名怎么记

Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

2026.11.03

0

12

码上飞入口地址合集
码上飞入口地址合集

本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

2026.11.03

0

10

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

2026.11.02

0

14

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

2026.11.02

0

17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习