分享一个下载音乐的方法
简单说下我目前在用的下载和听歌方案,有改进或更好的方案欢迎坛子里大佬指教。
之前很长一段时间,我使用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中搜索的时候,搜索文本中如果有一些字符的话会比较麻烦,有时候会搜不到。
希望论坛里的大佬有好的想法和方法可以共享出来,能激发其他人一些思路也是极好的。