分享一个下载音乐的方法

分享一个下载音乐的方法

简单说下我目前在用的下载和听歌方案,有改进或更好的方案欢迎坛子里大佬指教。

之前很长一段时间,我使用QQ音乐下载并解密下载的音乐文件并每日自动通过Keyboard maestro转存到NAS中,基本不用操心什么。但自从今年3月份QQ音乐升级后,原有的一个开源python库无法解密QQ音乐加密的文件格式了,只有寻找新的方法了。

背景:

1.用NAS储存歌曲

2.基本木耳,对歌曲音质没有过高要求,基本320kb的mp3就行(理论上人耳也听不出和无损的差别)

3.不希望喜欢的歌某天就被下架或无法收听(经历过网易云音乐大片灰色歌曲的人都懂),不管是QQ音乐也好,Apple music也好,都不信任,我只信任NAS)

4.日常接触新歌(不存储在NAS中)使用QQ音乐听歌(曲库全),Apple music辅助,都开了最便宜的会员。

目的:

1.本地存储、管理和备份歌曲。

2.通过音乐APP在手机(iOS)和电脑(macOS)上实现随时播放自己喜欢音乐。

搜索和下载的整体流程:

1.在QQ音乐中听到喜欢的歌曲,(1)不在电脑前,红心+添加到自建名为download的歌单,待回家后在macOS上处理下载;(2)在电脑前,使用Apple music端使用Keyboard maestro自动化下载歌曲并用python解密。
2.不定期整理下载的音乐文件(重命名,去重,编辑ID3信息,手动转存储到NAS)

具体细节:

1.在家电脑前,遇到喜欢的歌曲,我会先在NAS中搜索当前歌曲是否在NAS中已有存储。确定是新歌就不用这个步骤了。搜索过程是通过Keyboard maestro和python下一个名为fd的库自动完成。
简单说,快捷键control+Q获取当前QQ音乐播放的歌曲名+歌手名,通过python程序fd库搜索,将搜索结果通过对话框弹出以决定是否下载。
fd项目地址:

优点:搜索速度快,可以搜索加载在本地的NAS文件夹。
在文件管理器中检查并挂载NAS文件夹里存放音乐文件的music文件夹,以便后续使用fd搜索:

在NAS中查找音乐文件:

查找结果:

2.下载和解密:
下载还是用的Keyboard maestro,很傻瓜的模拟鼠标和快捷键操作,我搜了一圈,没找到能直接操作Apple music的Applescript代码。好歹是实现了,使用过程中也还比较丝滑。
具体也就是获取当前搜索到并定位的歌曲,获取音乐文件的apple music地址url,比如:

但是这个库安装过程需要获取你的Apple music登录账号后的cookies,安装过程还有点繁琐,具体可以参考这篇教程:

gamdl下载用的是知名的ytdlp库,解密貌似用的是ffmpeg这个全能的影音库和mp4box。我原来在macOS上下载ffmpeg这个库搞了整整一天,不知道是电脑问题还是网络问题,挺烦的,但这个库是真的强大,基本电脑上所有和影音有关的操作都要用到它。Minja也介绍过这个库:音频视频格式批量转换终极工具:FFmpeg(附自动化) | #UNTAG





3.音乐文件的整理
下载下来的文件是m4a格式,基本上稍微现代点的播放器都能播放,本身这种音频格式音质很好,大小适中。如果觉得m4a不是无损,那就没办法了,只能去QQ音乐下载flac格式的无损音乐,2元/首,这算是最便宜的方法了。

我会不定期整理下载的音乐文件,拷贝到NAS中,按一名歌手一个文件夹的方式存放。Apple music下载下来的音乐文件会自动按歌手-专辑的方式建立好文件夹,挺好的。
目前最大的问题:
大部分歌曲,Apple music会将中文歌曲存为英文翻译名,包括歌手和歌曲名。。。
比如:
图上的Yanzi Sun(孙燕姿), Yoga Lin(林宥嘉),Victor Wang(品冠),大部分情况下连歌曲名都会翻译成英文!!比如孙燕姿的《天空》下载下来就是Sky。
这为后续整理文件带来了巨大的麻烦。
我登录Apple music是大陆账号,不是地区问题。我不确定是有那里可以改这样的设置,如果有知道的大佬一定告知我,不甚感谢!!
4.播放:
这个丰俭由人了。
(1)macOS和iOS上使用群晖NAS自带的Audio station能直接播放。如果是外网的话,需要做穿透,或者去腾讯花点小钱搞个域名,Audio station连你的域名访问家里的NAS。缺点是没有音乐刮削信息,界面简陋。
(2)APP STORE上有一款国人写的播放器DS Player,通过自己的域名能连家里的NAS,界面漂亮,功能也不错,缺点是订阅制的,不贵,但是我不接受订阅制,不考虑。
(3)Plexamp
这个需要买plex pass,我网上找人买的土耳其区的账号,几百元人民币忘了。
界面漂亮现代,有音效等,自带音乐刮削,可以直连NAS,不用自建域名。
我喜欢的一点是可以对每首歌曲评星级,比如下图中。


(4)Roon
这个。。怎么说,太TMD贵了,现在800多美金,是的,美金!
但是体验是真不错。自动刮削,自动添加专辑封面信息,音乐信息不对也能自己手动识别,手动打标签替换信息,但Roon本身并不直接修改音乐的ID3信息,要修改的话需要用到MusicBrains这款软件,好用,推荐。
说回Roon,除了贵没毛病,漂亮现代,可手动调节音效,手机端出了Roon ARC后短板补齐了,直接连NAS播放。

家里的话,指定音频输出设备,能做到同时播放几个外接设备,互不影响。
唯一的问题,在家内网播放有时会出现错误过多,无法播放的报错,官方论坛里说大部分这种原因都是带宽问题。
可以显示歌词,但无法像QQ音乐流媒体播放歌曲时自动滚动歌词。
关于安全性,Roon和Plexamp都能通过官方服务器直接连接家里的NAS服务端,那么音乐数据会传到Roon或Plex的服务器上吗?根据我查到的资料,音乐文件不通过Roon或Plex的官方服务器传输,官方服务器只是做了手机设备端和NAS服务端之间的对接,对接完成后直接在设备端传输音乐数据。
有人说Roon太贵了不值得,怎么说呢,作为几十岁的大叔,没多少爱好了,早用早享受吧。

问题:

1.最大的问题就是前面提到的,Apple music下载下来的文件自动翻译成英文名了,这点很麻烦。原来我通过QQ音乐下载歌曲的时候,每晚9点利用Keyboard maestro自动执行一段脚本,将下载的音乐解密、转换格式后按歌手文件夹-歌曲的方式拷贝到NAS下,播放器自动识别,下次打开播放器就能直接听了,傻瓜操作,不操心。现在用Apple music下载下来的都是英文的,需要手动改名,归档到NAS里,关键是歌曲名也都是英文的,这直接影响了Roon识别歌曲,这就麻烦了。
2.Apple music的曲库中中文和日文歌曲不太全,QQ音乐中想下载的歌曲在Apple music中找不到,这种情况就没办法了,目前我是在音乐PT站点看能否找到下载,没有的话就无解了。
3.使用fd在NAS中搜索的时候,搜索文本中如果有一些字符的话会比较麻烦,有时候会搜不到。

希望论坛里的大佬有好的想法和方法可以共享出来,能激发其他人一些思路也是极好的。

3 个赞

感谢分享!我也来讲讲,我也做过一段时间的音乐管理,当时是想把灰了的音乐存到 NAS 里做管理。

尝试下来比较舒服的一套低成本自建方案是

播放器可以用任意支持 Subsonic API 的客户端代替,选 Amperfy 的原因是支持 Carplay。

想省心一点的话,Plexamp 方案也很不错,还可以和 Plex 视频库通用,主要缺点是价格贵,但起码也是买断制。

我不太在意音乐的信息,所以只管往里放歌,信息差太多的我就直接删除了。

所以上面两套方案足够用的很舒服了。


然后再说说自建的缺点,那就是“用户体验”始终距离流媒体差了那么一截。

比如自建的音乐库会缺少“自动推荐”这样的功能,我会喜欢听一些新的歌、不一样的歌,有时候我可能觉得调挺好听就加入喜欢了。而自建方案注定没法更新的那么快,需要经常往里添加歌曲。

我尝试维护了一段时间后,发现歌曲信息的维护成本太高,所以就放弃了,音乐信息这块也会差一些。

还有一个问题是,比如我想批量获取一些音乐放在本地,但是一些小众歌曲我连歌名都读不出来,自然难以获取音乐文件了。

所以目前我还是在用网易云。至于灰掉的歌,利用网易云的音乐云盘功能,自己上传一些,如果被识别出来,就可以补齐一部分特别想听的。

但前面的方案我觉得不白折腾,我也不喜欢订阅制和处处受限,如果哪一天流媒体方案涨价或阉割到无法接受的程度,可以随时切换到本地备用方案。

2 个赞

谢谢极客的分享。
新歌我还是会在QQ音乐上听,所以也会有算法推荐。因为下载一首歌我会添加红心。
想听自己存的就用Roon。