
minzgo/music-scraper专为 NAS 用户打造的音乐元数据刮削工具
自动获取音乐文件的封面、歌词、艺术家等信息,支持 6 大音乐数据源,智能匹配最佳结果。
bash# 推荐:自动选择合适架构 docker pull minzgo/music-scraper:latest # 或指定架构 # x86 架构(绿联云、威联通、部分群晖) docker pull minzgo/music-scraper:2.0.6-amd64 # ARM 架构(部分群晖、树莓派) docker pull minzgo/music-scraper:2.0.6-arm64
基础部署(推荐挂载数据目录):
bashdocker run -d \ --name music-scraper \ -p 7301:7301 \ -v /你的音乐目录:/app/music \ -v /数据目录:/app/data \ -e TZ=Asia/Shanghai \ --restart unless-stopped \ minzgo/music-scraper:latest
特权模式部署(设备码基于硬件信息,更稳定):
bashdocker run -d \ --name music-scraper \ --privileged \ -p 7301:7301 \ -v /你的音乐目录:/app/music \ -v /数据目录:/app/data \ -e TZ=Asia/Shanghai \ --restart unless-stopped \ minzgo/music-scraper:latest
💡 特权模式优势:使用
--privileged模式部署时,设备码会基于硬件信息(系统UUID、MAC地址、磁盘序列号等)生成,即使不挂载/app/data目录,设备码也能保持稳定不变。这对于需要稳定设备码的场景(如激活码绑定)非常有用。
基础配置:
yamlversion: '3' services: music-scraper: image: minzgo/music-scraper:latest container_name: music-scraper ports: - "7301:7301" volumes: - /你的音乐目录:/app/music - ./data:/app/data environment: - TZ=Asia/Shanghai restart: unless-stopped
特权模式配置(推荐,设备码更稳定):
yamlversion: '3' services: music-scraper: image: minzgo/music-scraper:latest container_name: music-scraper privileged: true # 启用特权模式 ports: - "7301:7301" volumes: - /你的音乐目录:/app/music - ./data:/app/data environment: - TZ=Asia/Shanghai restart: unless-stopped
刮削器 + 工具箱联合部署(完整功能):
yamlversion: '3' services: # 刮削器主服务 music-scraper: image: minzgo/music-scraper:latest container_name: music-scraper privileged: true ports: - "7301:7301" volumes: # Docker socket(用于自动获取挂载映射,实现路径自动转换) - /var/run/docker.sock:/var/run/docker.sock:ro - /你的音乐目录:/app/music - ./scraper-data:/app/data environment: - TZ=Asia/Shanghai - TOOLBOX_URL=[***] # 工具箱地址 restart: unless-stopped depends_on: - music-toolbox # 工具箱服务(硬链接整理) music-toolbox: image: minzgo/music-toolbox:latest container_name: music-toolbox ports: - "7305:7305" volumes: # Docker socket(用于自动获取挂载映射,实现路径自动转换) - /var/run/docker.sock:/var/run/docker.sock:ro # 挂载音乐目录的父目录,确保硬链接正常工作 # 例如:音乐在 /volume2/音乐,输出到 /volume2/整理后,则挂载 /volume2 - /你的存储卷:/app/source:rw - ./toolbox-data:/app/data environment: - TZ=Asia/Shanghai - SCRAPER_URL=[***] # 刮削器地址(用于授权验证) restart: unless-stopped
💡 工具箱说明:工具箱是刮削器的配套功能,提供硬链接整理、自动分类等功能。刮削完成后可自动触发硬链接整理。
⚠️ 重要配置说明:
TOOLBOX_URL:刮削器连接工具箱的地址,使用 Docker 服务名[***]SCRAPER_URL:工具箱连接刮削器的地址,使用 Docker 服务名[***](用于授权验证)- Docker socket 挂载:两个服务都需要挂载
/var/run/docker.sock,用于自动获取挂载映射,实现路径自动转换- 工具箱挂载路径:挂载音乐目录的父目录到
/app/source,例如音乐在/volume2/音乐,则挂载/volume2:/app/source- 硬链接要求:源目录和目标目录必须在同一挂载点下(都在
/app/source内),否则会自动降级为复制
浏览器打开 [***] 即可使用!
| 端口 | 说明 |
|---|---|
7301 | 刮削器 Web 服务端口 |
7305 | 工具箱 Web 服务端口(联合部署时) |
| 路径 | 说明 | 适用服务 |
|---|---|---|
/app/music | 音乐文件目录(必需) | 刮削器 |
/app/data | 数据存储目录(配置、数据库、缓存) | 刮削器/工具箱 |
/app/source | 数据源根目录(包含音乐和输出目录) | 工具箱 |
/var/run/docker.sock | Docker socket(路径自动转换) | 刮削器/工具箱(联合部署时) |
| 变量 | 默认值 | 说明 | 适用服务 |
|---|---|---|---|
PORT | 7301 | 服务端口 | 刮削器 |
TZ | UTC | 时区设置 | 刮削器/工具箱 |
TOOLBOX_URL | http://localhost:7305 | 工具箱内部通信地址(后端间通信,Docker 网络内使用服务名) | 刮削器 |
TOOLBOX_EXTERNAL_URL | 自动推断 | 工具箱外部访问地址(浏览器跳转用,反向代理场景必填) | 刮削器 |
SCRAPER_URL | 自动发现 | 刮削器地址(用于授权验证,Docker 网络内使用服务名) | 工具箱 |
SCRAPE_WORKERS | 8 | 刮削并发数(1-16,可在设置界面调整) | 刮削器 |
💡 关于地址配置:
TOOLBOX_URL:刮削器后端连接工具箱的地址,Docker Compose 部署时必须使用服务名如[***](Docker 内网通信)SCRAPER_URL:工具箱后端连接刮削器的地址,Docker Compose 部署时必须使用服务名如[***](用于授权验证)TOOLBOX_EXTERNAL_URL:用户浏览器跳转到工具箱的地址,如果使用反向代理,需配置为外部可访问的地址如[***]- 如果未配置
TOOLBOX_EXTERNAL_URL,前端会自动使用当前页面主机名:7305作为跳转地址⚠️ 常见错误:
TOOLBOX_URL和SCRAPER_URL不能配置为localhost,因为容器内的 localhost 指向容器自身,无法连接到其他容器!
| 标签 | 架构 | 适用设备 |
|---|---|---|
latest | 多架构 | 推荐,自动选择合适架构 |
2.0.6 | 多架构 | 指定版本,自动选择架构 |
2.0.6-amd64 | x86_64 | 绿联云、威联通、群晖(Intel)、PC/服务器 |
2.0.6-arm64 | ARM64 | 群晖(ARM)、树莓派 4、Apple Silicon |
💡 推荐使用:直接使用
latest,Docker 会自动选择适合您设备的架构
💡 Hi-Res 格式因技术限制暂不支持写入,但可以读取并显示现有元数据
| 数据源 | 特点 |
|---|---|
| 企鹅音乐 | 华语覆盖全,封面高清 |
| 云村音乐 | 华语覆盖好,有歌词 |
| 酷狗音乐 | 歌词资源丰富 |
| 酷沃音乐 | 曲库较全 |
| 苹果音乐 | 欧美日韩覆盖好 |
| 开放数据库 | 数据规范 |
✨ 新功能
周杰伦/七里香(2004)/双截棍.flac🐛 Bug 修复
✨ 新功能
🐛 Bug 修复
🔧 优化改进
[] 而非 null,提升前端兼容性✨ 新功能
🐛 Bug 修复
🔧 优化改进
.wma、.alac、.mp4、.asf🐛 Bug 修复
fields 参数过滤不生效的问题(只选择封面时仍写入其他标签)fields 不包含歌词字段,仍会写入歌词的问题✨ 功能改进
fields 参数现在正确过滤所有元数据字段和歌词写入
calculateFieldsWritten 函数增加 allowedFields 参数,只记录用户选择的字段fields 字段检查,未选择歌词字段时不写入clearCover 方法用于清除封面writeMetadataWithMode 支持空值清空逻辑,覆写模式下空字段会清空目标文件对应字段_write_flac、_write_mp3、_write_mp4、_write_ogg 方法支持空值删除🐛 Bug 修复
歌手A;歌手B)✨ 功能改进
🚀 架构重构
🔗 工具箱深度集成
🎧 Hi-Res 音频支持
✨ 功能改进
🐛 Bug 修复
使用工具箱:
🔐 新功能:登录认证系统
✨ 新功能
⚡ 性能优化
🐛 Bug 修复
✨ 新功能
/api/circuit-breaker/status 和 /api/circuit-breaker/reset⚡ 性能优化
✨ 新功能
🎤 歌词功能增强
⚡ 性能优化
MIT License



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务