Navidrome:把 NAS 上的音乐变成自己的流媒体服务
扫一遍音乐目录,自动读标签建库。手机装个客户端,走到哪都能听,不联网也能缓存。
音乐 App 的问题大家都知道:歌单变灰、版权到期、会员涨价。
如果你的硬盘里已经存了一堆无损,那缺的只是一个"能放"的服务器。Navidrome 就是干这个的,而且做得比想象中好。
装
应用中心搜 Navidrome,或者:
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
ports: ["4533:4533"]
volumes:
- ./navidrome/data:/data
- /vol1/music:/music:ro
environment:
- ND_MUSICFOLDER=/music
- ND_SCANSCHEDULE=1h
- ND_LOGLEVEL=info
- TZ=Asia/Shanghai
restart: unless-stopped
两个路径要说清楚:
/data:它的数据库和封面缓存,要备份;/music:你的音乐目录,只读挂载(:ro),防止它误改你的文件。
ND_SCANSCHEDULE=1h 表示每小时扫一次新文件。加歌之后不想等,界面上也能手动触发扫描。
音乐怎么整理
Navidrome 靠标签建库,不靠文件名。所以:
- 每首歌的 ID3 标签(歌名、艺术家、专辑、年份、音轨号)要填对;
- 一个专辑放一个文件夹,命名成
艺术家 - 专辑名 (年份); - 封面文件叫
cover.jpg或folder.jpg,放在专辑目录里。
整理工具推荐 Mp3tag(Windows)或者 beets(命令行批量)。标签乱的话,界面上会看到一堆"未知艺术家"——这就是没整理过的样子。
客户端怎么选
它有标准的 Subsonic / OpenSubsonic 接口,所以客户端非常多:
- iOS:Amperfy、substreamer、play:Sub
- Android:Symfonium(付费但最好)、DSub、Ultrasonic
- 桌面:浏览器直接用,或者 Sonixd
- 电视:部分 Subsonic 客户端支持 Android TV
我自己用 Symfonium,它的离线缓存做得最顺——出门前点一下"缓存这个歌单",地铁上不联网也能听。
三个实用功能
一、按标签自动建歌单 最喜欢的一类规则:“评分 ≥ 4 的,随机 50 首”。设一次,永远有歌听。
二、转码 在外面网络差的时候,可以让服务端把无损转成 128k mp3 再发。设置里按场景配:局域网直传原文件,外网转码。
三、多用户 家里人各自有账号、各自的播放记录和收藏,互不干扰。
会踩的坑
扫描完一首歌都没有
路径挂错了,或者容器里看不到 /music。进容器 ls /music 确认。
专辑裂成好几张 标签里的"专辑艺术家"不一致(有的写"周杰伦",有的写"Jay Chou")。统一一下。
封面不显示
封面文件没放在专辑目录里,或者文件名不是 cover.jpg。它也能读内嵌封面,但要标签里有。
中文乱码 老 MP3 的标签编码是 GBK。用 Mp3tag 批量转成 UTF-8。
外网访问很卡 无损文件很大。开转码,或者用隧道时先缓存。
它适合谁
- 硬盘里存了一堆音乐,想随时能听的;
- 不想再为版权续费的;
- 想让家里人在电视、车机上也能听自己库的。
不适合:只听在线歌单、不存本地文件的;音乐库很乱又不想整理标签的(那样体验会很差)。
最后
Navidrome 的价值不是"省钱",是你的库永远在。
十年后某个流媒体平台下架了你喜欢的专辑,你的还能播。这一点,值得花半小时整理标签。
有问题留言。
留言