网络版权时代,随便放个歌就要收费,就算你买了VIP服务,下载的歌曲还是加密的,一旦VIP到期后某些歌你还听不了,说的就是XX音乐。
于是我开始寻找有没有一个类似云音乐的自建服务,这样随时随地在任何地方都能播放,于是我找到了如下软件可满足需求:
多媒体管理:Jellyfin、Emby、Plex
Airsonic
Navidrome
群晖、威联通自带音乐套件
多媒体管理我一直在使用免费开源的Jellyfin,目前Jellyfin已经做得足够好了,管理和播放电影都非常方便,可是音乐管理感觉还是差点意思,而且部分无损歌曲有卡顿或者播放不了的情况。
于是我试了下Airsonic和Navidrome,Airsonic是用java开发的音乐播放器,功能很强大也很专业,界面可设置的音乐参数非常多,作为业余玩家完全不知道这些音乐参数啥意思。因为使用java开发的,所以比较吃内存,而且参数太多了,不够简单方便,于是找到了另一款使用Golang开发的音乐播放软件Navidrome,内存占用很低,界面简单,而且还兼容Subsonic API,不多说,部署走起。
Docker部署Navidrome
通过Dcoker命令行部署:(路径请自行修改)
docker run -d \
--name navidrome \
--restart=unless-stopped \
--user $(id -u):$(id -g) \
-v /path/to/music:/music \
-v /path/to/data:/data \
-p 4533:4533 \
-e ND_LOGLEVEL=info \
deluan/navidrome:latest
/path/to/music:你本地主机的音乐文件夹
/path/to/data:Navidrome配置数据文件夹
不过我不太推荐命令行部署,维护起来不方便,如果您安装了docker-compose,推荐使用docker-compose部署,新建一个docker-compose.yaml,内容如下:
version: "3"
services:
navidrome:
container_name: navidrome
image: deluan/navidrome:latest
user: 0:0 #0:0代表用root用户运行
ports:
- "4533:4533"
restart: unless-stopped
environment:
# Optional: put your config options customization here. Examples:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
ND_ENABLETRANSCODINGCONFIG: "true"
ND_TRANSCODINGCACHESIZE: "4000M"
ND_IMAGECACHESIZE: "1000M"
volumes:
- "/apps/navidrome/data:/data"
- "/media/Music:/music:ro"
/apps/navidrome/data:请自行指定一个本地路径用来存储navidrome数据
/media/Music:/music:您主机上的音乐文件夹路径
然后使用docker-compose up -d运行,如果没有出现意外,就可以通过http://IP:4533进行访问,首次访问会要求设置一个帐号、密码。
Navidrome使用
PC上可以通过http://IP:4533进行访问,界面比较简洁,符合现代审美。
可以点击右上方用户按钮 – Personal – Language改成中文,如下图。
安卓上我推荐Ultrasonic这个软件,支持连接到Navidrome使用(iOS官方推荐的客户端有: play:Sub, substreamer, Amperfy and iSub),前提是你做了公网映射或者FRP(这里不做详细介绍)。
Navidrome界面支持中文(非完全汉化),但不爽的是似乎没法列出全部歌曲,而是列出的专辑(可以在Ultrasonic网页端将喜欢的音乐提前收藏),有点不符合国人习惯,如果您找到了更好的替代软件,请留言告知。
Navidrome优缺点
先来说说优点:
内存占用低(待机状态40Mb左右)
界面简洁,支持中文
支持Subsonic API,也就是说Subsonic能用的客户端,Navidrome都能用
再来说说优点:
好像没法显示歌词
不支持通过界面删除歌曲(作者说的是为了安全考虑,我个人感觉过于谨慎了)
最后
Navidrome官网:https://www.navidrome.org/
Navidrome帮助文档:https://www.navidrome.org/docs/
项目地址:https://github.com/navidrome/navidrome/