前言
各平台音乐不易,支持正版,如有侵权,联系作者删除
作为一名被飞牛NAS"圈粉"的中年技术爱好者,我在体验其出色的Docker支持和手机APP适配后,决定搭建个人音乐库。本文将分享从音乐获取到播放的全链路解决方案,最终通过自研Python工具实现自动化管理(项目已支持Docker部署)。
成品:

一、需求场景分析
- 核心需求:音乐服务器搭建
- 硬件配置:闲置电脑安装飞牛NAS
- 现存痛点:官方音乐APP暂缺,第三方方案体验割裂
二、技术方案演进历程
第一阶段:原始数据收集
- 音乐来源:网络公开资源(网盘)
- 核心问题:
- 文件名混乱(如
[未知歌手]-Track01.mp3) - 元数据缺失(封面/歌词/年份等)
- 目录结构不规范
- 文件名混乱(如
第二阶段:元数据治理方案
-
MusicTagWeb方案:
- 优点:可视化编辑/批量刮削
- 不足:大库性能差(1000+歌曲显著卡顿)
- 文件命名要求:
歌手 - 歌曲名.mp3格式
-
LriAPI本地化方案:
- 进步:自主部署API服务
- 局限:仍需手动干预匹配
第三阶段:自研自动化工具
基于Python开发的项目特性:
- 多平台源下载(目前支持某芸和某Q)
- 写入元数据
- 规范路径生成
- 双语歌词嵌入
- 兼容歌单导出
三、技术实现亮点
-
智能元数据处理:
- 多数据源交叉校验(优先获取最高质量封面)
- 自动匹配LRC/TRC双语歌词
-
工程化设计:
- 支持
Docker一键部署
sudo docker run -d \ -p 5000:5000 \ --restart always \ -v /path/to/downloads:/app/downloads \ -v /path/to/config:/app/app/config \ #运行后需要修改config.json里面的cookie -v /path/to/log:/app/app/log \ -e EVN=production \ #需要修改 -e DATABASE_URL=mysql+pymysql://root:root.@localhost/music_download \ #需要修改 --name musicdownload \ crpi-g2vqp6cspcljbor7.cn-hangzhou.personal.cr.aliyuncs.com/leechee_ii/musicdownload:latest - 支持
-
播放器兼容性:
输出结构适配:/Music ├── Artist │ ├── Album │ │ ├── 01 - SongName.flac └── Playlists └── Favorite.m3u
四、解决方案对比
| 方案 | 自动化程度 | 学习成本 | 处理效率 | 扩展性 |
|---|---|---|---|---|
| 手动整理 | ★☆☆☆☆ | ★★★☆☆ | ★☆☆☆☆ | ★☆☆☆☆ |
| MusicTagWeb | ★★★☆☆ | ★★★☆☆ | ★★☆☆☆ | ★★☆☆☆ |
| LriAPI | ★★★☆☆ | ★★★☆☆ | ★★★☆☆ | ★★★★☆ |
| 本方案 | ★★★★☆ | ★★☆☆☆ | ★★★★☆ | ★★★☆☆ |
五、实践建议
-
网络配置:
有公网IP就用公网IP,没有的话,可以评论区问怎么穿透。
-
播放器推荐:
- 安卓:Symfonium、音流APP
- iOS:音流APP
六、目前待优化的点
- 某 Q 平台 cookie 不能刷新
结语
本项目在Github,Gitee开源,虽然本质是"重复造轮子",但针对第三方音乐应用的使用场景做了深度优化。欢迎在评论区交流使用体验,若发现BUG或有好建议,也请不吝指教!
4620

被折叠的 条评论
为什么被折叠?



