Navidrome:自建音乐库,把散落的文件变成能随时听的歌单
它的定位很明确:扫描你的音乐目录,整理成元数据,然后提供一个流媒体接口给各种客户端。没有云、没有推荐算法、没有社交,只有你自己的收藏。
一、部署
services:
navidrome:
image: deluan/navidrome:latest
restart: unless-stopped
ports: ["4533:4533"]
volumes:
- ./data:/data
- /mnt/music:/music:ro
environment:
- ND_SCANSCHEDULE=1h
- ND_LOGLEVEL=info
- ND_SESSIONTIMEOUT=24h
- ND_BASEURL=
两个细节:音乐目录以只读方式挂载(防止误删),扫描间隔设成 1 小时(太频繁会一直占 CPU)。
二、元数据决定体验
这类工具的体验上限完全取决于文件的标签质量。扫描之后发现「一堆未知专辑」,问题不在软件,在文件。
| 字段 | 缺失的后果 |
|---|---|
| 专辑名 | 同一张专辑被拆成多张 |
| 艺术家 / 专辑艺术家 | 合辑里的每首歌各自成一个歌手 |
| 曲目号 | 顺序乱掉 |
| 封面 | 列表一片灰 |
| 年份 | 无法按年代浏览 |
整理思路:先按「艺术家/专辑/曲目号-标题」的目录结构摆放,再用标签工具批量写入。一次性整理一次,后面一直受益。
三、客户端生态
它支持标准的流媒体协议,市面上有大量第三方客户端,iOS 和安卓都有,甚至支持 CarPlay/Android Auto。这意味着你不用忍受网页界面,也不必自己开发 App。
离线下载是关键能力:通勤时没网也能听。选客户端时确认这一点。
四、转码与带宽
无损文件(FLAC)单曲几十 MB,移动网络下直接播放会卡。合理配置是「有线/家里直接播放原文件,外网自动转码为 192–320 kbps」。
- ND_TRANSCODINGCACHESIZE=2GiB
- ND_DEFAULTDOWNLOADSIZEFORMAT=mp3
转码会吃 CPU。如果机器很弱,把缓存调大、或者干脆只保留一份有损副本用于外网。
五、和视频库的分工
站内已有 Jellyfin 的方案,很多人会问「能不能都用 Jellyfin」。可以,但两者侧重不同:
- 音乐:需要快速浏览、连续播放、播放列表、车载支持;
- 视频:需要海报墙、字幕、硬件转码、多用户分级。
各自的工具在对应场景下体验更好,同时跑两个容器的成本并不高。
视频库的方案见 Jellyfin 自建影音库。
六、外网访问
两种方式,安全等级不同:
- 反向代理 + HTTPS + 登录:方便,但服务暴露在公网;
- 组网工具,只在内网访问:更安全,代价是每台设备要连隧道。
推荐第二种。具体见 WireGuard。
七、版权与来源
自建音乐库的前提是你拥有这些文件的合法使用权。这条不是技术问题,但值得在动手前想清楚——「自己听」和「分享给朋友」是两回事。
相关阅读
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。








评论