自从发现网易云音乐云盘有擅自删歌的现在,我就打算把歌都存在自己的云盘里,选用infinicloud, 靠webdav协议进行传输
windows和安卓端还好,有拟声可以直接播放支持webdav协议的云盘里的歌曲,到了linux系统,就不行了,拟声不打算出linux版。
只能是本地播放,但是歌曲越来越多,文件夹越来越大也不是个办法。打算继续折腾webdav, 目标是直接播放云端的歌曲文件,尽量减少对硬盘的写入和磁盘占用。
想到了rclone, 可以把webdav挂载到本地。并且为了兼容性,可以开启vfs模式,也就是在读写云盘里的文件时,把文件缓存到本地,读写完成后再上传到云盘。本地的缓存也能立即删除。这下磁盘占用越来越大的问题没了。但是额外的磁盘读写还是没少。可能是我的强迫症把,还是感觉固态硬盘的寿命在可见的减少。
发现了内存文件系统这个东西。remfs和tmpfs ,是linux内核原生支持的功能,可以把内存作为一种文件系统挂载为根目录下的文件夹。这下就容易了,把rclone的缓存文件夹设置在tmpfs下,所有的读写操作都发生在物理内存里,不会占用一丝的硬盘存储。而且也解除了对于曲库越来越大的顾虑。
哦对了,所用的音乐播放器需要开启类似“播放前不读取歌曲元数据”的选项,不然会瞬间触发对所有文件的缓存下载
能折腾
不过我一般推荐: Spotify
不要钱么?
我对云的态度是能用就用,达不到需求也就随他去了,毕竟数据不掌握在自己手上。
infinicloud之前搞活动,新用户免费白嫖45G容量
此外我会不定期把inficloud里存的歌同步到谷歌云盘里
问题是我听的歌太偏,有一些spotify里也没得
外网的网盘,要谨防哪天就用不了了。
不过你能用谷歌网盘,应该不存在这个问题。
安卓普听音乐,是一款可以播放阿里云盘的音乐的播放器。折衷点的办法:linux用安卓摸拟器运行app
我也尝试过在安卓容器里运行拟声,就是那个可以播放webdav云盘里的歌的app
直到后来我找到了一个可以在kde桌面的面板上显示歌词的挂件
像这样
我非常喜欢这个挂件,但这个挂件只对部分linux原生播放器有效
而且这类安卓app还有一个问题,就是仍然要先把歌曲文件缓存下来,然后播放缓存文件。这仍然会增加硬盘的占用。且因为app运行在安卓容器内部,我不能把它的缓存文件夹设置在内存文件系统里
之前也一直想直接使用云盘保存和收听音乐,但后来随着音乐越来越多,我反而是放弃了云盘,改成全都本地保存。考虑因素是:
- 网速问题。我生活的环境里,网络始终是个不小的问题,甚至偶尔往大山里钻,就。。。本地为王了。
- 云盘的可靠性问题。曾几何时,我重度使用金山云盘,现在这货早已随着过往的记忆一起消逝了,至于百度,阿里,夸克之流,现在也用,只是体验感不佳,也就当做下载器来用了。
当然啦,也存在诸多缺点,如:
- 硬盘来几块之后大几千也飞了,更不用说后期还需要更换
- 没有公网异地收听麻烦
- 自己搜集、整理,耗时耗力
另外,其实我也开了腾讯和网易的VIP,但多个APP切换实在麻烦,更不用说有些歌曲,这两家都没有。
最终,综合起来就是本地+流媒体都在高频使用了
如果会折腾的话,可以考虑用洛雪,然后自己做音源(前提是有一些平台的VIP),然后搞一台服务器挂着就行了(听音乐也不要球带宽多少)。我原来考虑过这么干,然后觉得这么搞太花钱,然后我就去电报白嫖了。
我最早考虑过洛雪,但我认为洛雪太过依赖厂商的曲库,就像歌词适配那样不太可能长久,不如把自己爱听的歌都存在自己的云盘里
我出于和你一样的想法,才自己写了个app
AIMP 支持 WebDav 协议,同时有 Android、Windows、Linux 客户端。
并不是原生linux客户端,而是wine打包的
汽水音乐试试
试试这个
现在这一套方法已经用了一段时间了,非常好用,是那种一劳永逸的折腾。
后续添加新歌曲也只需要把歌曲文件复制到 rclone 挂载的文件夹就行了。
tmpfs 很好用,可以弄出更多的用途。
systemd ,或者说 系统服务管理器,是个好东西,可以在开机的时候自动执行 rclone 的挂载,这样下来,整个存歌、听歌的过程中面向云盘的读写就是用户感知不到的了。就像是在本地存歌一样简便,但又可以多设备同步
我直接用windows局域网文件共享+foobar2000
现在用 mpv 播放器换掉了之前用的 audacious ,发现 mpv 和 rclone mound 的配合真的非常好
mpv 可以设定一层缓冲,在内存里的,可以在配置文件里更改缓冲的时间,设定了五分钟,也就是说,用 mpv 播放一首歌的时候mpv 会多向前读取五分钟的内容
而另一方 rclone 的挂载,可以实现“只将文件被读取到的部分缓存到本地”,防止只是为了加载一个预览图就触发对文件的完整缓存。在更改歌曲的元数据,比如内嵌歌词和封面的时候这一项很有用,可以只将文件的最前端的一部分缓存到本地。可以设定一个提前量,多缓存一些,但是不能太大,不然这一项也就没啥意义了
之前用 audacious 听歌,这种播放器并不会提前读取还没播放到的部份,所有 rclone 那里的提前量就要大一些,防止 “播放到这里了,但是 rclone 的缓存还没有跟上”这种情况。随着慢慢用无损 flrc 文件代替之前的 mp3 文件,每听一秒歌所需要下载的数据量就更大。rclone 那边的提前量就要更大
而用了 mpv 之后,rclone 那边的提前量就可以关掉了,mpv 可以预先读取之后五分钟的内容,这会触发 rclone 的缓存下载,而后的这五分钟就可以没有任何卡顿的播放了
还没完,刚刚又发现了一个非常好的特性,就是说当一首歌从中间开始播放的话,rclone 就会直接从正要播放的位置开始下载缓存,跳过了前半段文件。
很惊喜,原本认为一个云盘里的文件只能完整下载下来才能进行读取,随着使用程度的加深,知道了可以只下载到会读取的部分,甚至可以从会被读取的部份开始下载,就中间这么一截
一般在线听听