📖 项目简介
Music Scraper 是一款轻量级的音乐元数据刮削工具,帮助你自动获取补充音乐文件的封面、歌词、艺术家等信息。此系统迎来了大版本更新2.0,新增工具箱功能(实现歌手合并、专辑合并、文件去重功能)
✨ 功能特性
🚀 架构重构
⚡ Go 语言重构:核心服务使用 Go 语言重写,性能大幅提升
🔄 原生并发:Go goroutine 替代 Python gevent,无 GIL 限制
💾 多数据库架构:分离刮削、缓存、索引、设置等数据库,避免写锁竞争
🔌 Python 微服务:元数据读写保留 Python 实现,确保兼容性
🔗 工具箱深度集成
🧰 前端统一:工具箱前端集成到刮削器,无跨域问题
🔍 服务检测:智能检测工具箱部署状态,未部署时显示友好提示
🔗 硬链接整理:将刮削后的音乐文件以硬链接方式输出到指定目录
📁 自动分类:支持按歌手/专辑/流派/年份自动分类(5 种分类模式)
✏️ 文件重命名:支持多种重命名格式(音轨号-标题、歌手-标题等)
🔄 自动联动:刮削完成后自动通知工具箱进行硬链接整理
⚡ 跨设备支持:检测跨文件系统情况,自动降级为软链接或复制
📝 操作记录:记录每次整理的详细信息,支持回溯查看
🛡️ 死循环防护:自动排除工具箱输出目录,防止循环触发
🎧 Hi-Res 音频支持
🎵 DSF 格式:支持 DSD Stream File 格式读取(索尼 Hi-Res 格式)
🎵 DFF 格式:支持 DSDIFF 格式读取
🎵 DTS 格式:支持 DTS 音频格式读取
⚠️ Hi-Res 格式暂为只读,元数据修改后自动跳过写入
✨ 功能改进
🎤 歌词多源互补:歌词获取支持多源互补,首选源无歌词时自动从其他源获取
⚙️ 并发可配置:刮削并发数可在设置界面配置(1-16)
✏️ 歌词编辑页面:新增独立歌词查看/编辑页面,支持修改内嵌歌词
✏️ 手动编辑重构:手动编辑功能重构为独立页面,交互更流畅
🔍 搜索字段选择器:文件浏览器支持按标题/艺术家/专辑字段筛选搜索
⏰ 扫描间隔扩展:自动监测扫描间隔支持最长 7 天,支持小数分钟
🎯 专辑版本匹配:优化置信度算法,更好地识别专辑不同版本(Deluxe、Remaster 等)
🎤 多艺术家修复:修复多艺术家标签写入格式,主流播放器可正确识别分隔
🛡️ 广告残余清理:增强广告过滤,清理「更多打包资源」等无意义残留内容
🔄 授权迁移:从旧版本升级时自动迁移授权信息,无需重新激活
Docker Compose部署
music-scraper刮削工具
services:
music-scraper:
image: minzgo/music-scraper:latest
container_name: music-scraper
ports:
- "7301:7301"
volumes:
- /vol1/1000/music:/app/music # 修改为自己的音乐文件夹路径
- /vol1/docker/music-scraper/data:/app/data #数据持久化,容器日志存放目录,可修改
- /var/run/docker.sock:/var/run/docker.sock ##用于“工具箱与刮削器的监控关联逻辑”,自动获取挂载映射,实现路径自动转换
environment:
- TZ=Asia/Shanghai
- TOOLBOX_URL=http://192.168.3.33:7305 #工具箱地址(用于授权验证)修改为自己的部署ip
restart: always



music-toolbox工具箱服务
services:
music-toolbox:
image: minzgo/music-toolbox:latest
container_name: music-toolbox
ports:
- 7305:7305
volumes:
- /vol1/1000/music:/music #修改为自己的音乐文件存放目录
- /vol1/docker/music-toolbox/toolbox-data:/app/data #数据持久化,容器日志存放目录,可修改
- /var/run/docker.sock:/var/run/docker.sock #用于“工具箱与刮削器的监控关联逻辑”,自动获取挂载映射,实现路径自动转换
environment:
- TZ=Asia/Shanghai
- SCRAPER_URL=http://192.168.3.33:7301 #刮削器地址(用于授权验证)修改为自己的部署ip
restart: always

