私有音乐云

私有音乐云
逐暗者背景
前不久使用了内网穿透+树莓派搭建了自己的服务器,最近正好又烦恼音乐的问题。现在听自己喜欢的歌都需要在好多平台上充值会员,哪天会员到期就无法听了,一个平台又听不全,实在是非常恶心。于是想着自己搭建一个属于自己的私有音乐云。
于是使用开源的navidrome搭建一个自己的私有音乐云,它除了支持web播放外,还支持app,这里推荐使用安卓的substreamer应用,除了支持播放音乐外,还支持缓存音乐、更可以设置2个服务器地址(为啥要2个?当然是为了内网穿透考虑的,在内网时直接访问内网地址,在外网时使用内网穿透地址,非常贴心)
部署服务端
先建立一个docker-compose.yml文件
1 | version: "3" |
ND_LASTFM_APIKEY 和 ND_LASTFM_SECRET 可以用,也可以注释掉,它是LAST.FM提供的一个音乐解析封面接口、关注、记录喜好等作用的,可以在这里申请开发应用 并获得apikey和secret
data目录用来存放数据文件的,记录着音乐专辑、账户(没错,是支持多账户的)、用户播放列表等数据的。
music目录是用来存放音乐文件的,服务会定时扫描这个目录下的mp3文件。
配置好文件后,就可以拉取并启动docker了。对外提供http使用4533端口,如果需要https或者80端口,可以通过nginx反向代理来提供服务。
服务端使用
首次登陆的时候会要求填写一个管理员账号和2次密码确认,之后就可以用账号登陆了。当然一开始是没有音乐的,这需要我们自己上传mp3文件,方式有很多,通过FTP、目录同步。很可惜的是navidrome自身不提供文件上传的功能,据说是为了安全。
我这里通过宝塔面板来上传服务,也很方便,就不额外使用ftp或者装其他文件管理docker了。
服务端可以建立自己的歌单,管理自己收藏的歌曲等等。
安卓端
我这里使用的是substreamer应用,可以从谷歌商店下载。
首先是配置服务器地址,也就是IP+4533端口,如果使用了nginx反向代理,那就填自己的域名。
它是支持2个地址的,一个填内网,一个填外网。(当然如果是在云服务器上搭建,只需要用一个就可以了)
用账号和密码登录后就可以同步歌单和歌曲听了,当然也可以开启缓存歌曲。
如果弄到音乐?
由于之前是用各大平台听的音乐,已经有一些了,所以这就需要用到音乐解锁工具来解锁。
如果是QQ音乐下载下来的是qmc或者mgg格式,前者通过解锁之后获得的是mp3格式,可以直接上传,后者解锁之后获得的不是mp3格式,还需要音频转换软件转成mp3。
当然,连部署私有化云都能搞定,音乐应该也能轻松获取到才是。
尾声
这个依旧有几个缺点:
第一、成本并不小。播放音乐至少要5M带宽,如果不是有免费的内网穿透+树莓派作为服务器,那租一个5M带宽的云服务器价格也不便宜,通常足够一个平台一年的会员费了。(虽然依旧免去了多个平台来回切的问题了)
第二、音乐质量,由于无损音频文件体积过大,还是不适合作为云音乐直接播放,需要额外的转码工作,对自架仅有的带宽来说更加吃紧了。
第三、这个自架的云服务并没有歌词匹配,歌曲信息维护也需要一定的个人维护(API获取并不一定全)。