- Published on
Apple Music Electron
- Authors
- Name
- ttyS3
正如 Apple-Music-Electron repo 上简介里说的:
适用于Windows,Linux和macOS的非官方Apple Music应用程序,而无需安装iTunes或通过浏览器使用极其臃肿的Web应用程序。
这也是老灯在 Linux 下要这么一个 app 的原因。对于老灯来说,浏览器在大部分情况下都是用来浏览文档,调试代码。里面夹杂着一个在线音乐播放网站可不好找,特别是tab非常多的情况下。因此,有一个独立的 app 就非常重要的。哪怕只是拿 Electron 框架包裹一下 https://beta.music.apple.com/ , 老灯也觉得这类 app 非常有意义。Life changed.
功能简介
在 Github 上找到两个, 分别只有30多和10多个star, 两个老灯都试用了一下。
安装就不说了哈,直接 Github release 里下载相应的 rpm 或 deb 包安装即可。
cryptofyre/Apple-Music-Electron
https://github.com/cryptofyre/Apple-Music-Electron 各方面都比较出色,黑色界面,唯一的缺点是没有竖直滚动条。顶部播放条的艺人名称和歌曲名称可点击。老灯选择的是这个。
17hoehbr/apple-music-electron
https://github.com/17hoehbr/apple-music-electron 直接套用了 https://beta.music.apple.com/ 的主题,有竖直滚动条。缺点是顶部播放条的艺人名称和歌曲名称无法点击。
troublesoot
CONTENT_EQUIVALENT
错误
点击播放时弹出解决办法: 重启 app 就好了。
原因是,Apple Music 使用了DRM加密, Electron wrapper 在首次启动的时候需要联网下载一个 Widevine DRM
解密模块。重启启动 app , 一般 libwidevinecdm.so 下载成功了,就可以正常播放了。
你可以通过查看 ~/.config/Apple Music/WidevineCDM
目录下的文件检测 DRM 模块是否下载成功。如:
❯ ls -lh ~/.config/Apple Music/WidevineCDM
.rw-r--r-- ttys3 ttys3 8.9 MB Sun Mar 7 11:41:14 2021 libwidevinecdm.so
.rw-r--r-- ttys3 ttys3 479 B Sun Mar 7 11:41:14 2021 LICENSE.txt
.rw-r--r-- ttys3 ttys3 375 B Sun Mar 7 11:41:14 2021 manifest.json
❯ bat manifest.json
{
"arch": "x64",
"description": "Widevine Content Decryption Module",
"manifest_version": 2,
"name": "WidevineCdm",
"os": "linux",
"version": "4.10.1582.2",
"x-cdm-codecs": "vp8,vp9.0,avc1,av01",
"x-cdm-host-versions": "10",
"x-cdm-interface-versions": "10",
"x-cdm-module-versions": "4",
"x-cdm-persistent-license-support": true
}
~/.config/Apple Music/WidevineCDM
Failed to install Widevine component, Error 400
一般是由于网络问题,导致 Electronjs 自动下载 Widevine DRM 组件失败。
在安装了 Chrome 的 Linux 机器上,直接Copy Chrome 自带的 Widevine 组件即可.
在 Ubuntu 上这个位置是:
/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
# 先启动一次 app
# 然后创建目录 WidevineCDM
mkdir ~/.config/Apple\ Music/WidevineCDM/
❯ cp -v /opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so ~/.config/Apple\ Music/WidevineCDM/
'/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so' -> '/home/ttys3/.config/Apple Music/WidevineCDM/libwidevinecdm.so
Chrome 打开 chrome://components/ 查看 “Widevine Content Decryption Module” 的版本号,老灯这里是“Version: 4.10.2209.0
”
然后在 ~/.config/Apple Music/WidevineCDM
下新建 manifest.json
内容如下:
{
"arch": "x64",
"description": "Widevine Content Decryption Module",
"manifest_version": 2,
"name": "WidevineCdm",
"os": "linux",
"version": "4.10.2209.0",
"x-cdm-codecs": "vp8,vp9.0,avc1,av01",
"x-cdm-host-versions": "10",
"x-cdm-interface-versions": "10",
"x-cdm-module-versions": "4",
"x-cdm-persistent-license-support": true
}
启动一次 app, 然后关闭,再启动 就 OK 了。
已经播放过的歌曲缓存在哪里?
经过老灯的分析,这个目录是在 ~/.config/Apple Music/Cache
ncdu 1.15.1 ~ Use the arrow keys to navigate, press ? for help
--- /home/ttys3/.config/Apple Music ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
305.0 MiB [##########] /Cache
28.9 MiB [ ] /Service Worker
8.9 MiB [ ] /WidevineCDM
2.2 MiB [ ] /Code Cache
448.0 KiB [ ] /Dictionaries
300.0 KiB [ ] /GPUCache
120.0 KiB [ ] /File System
108.0 KiB [ ] /IndexedDB
52.0 KiB [ ] QuotaManager
40.0 KiB [ ] /Local Storage
32.0 KiB [ ] /databases
28.0 KiB [ ] Cookies
28.0 KiB [ ] /Session Storage
8.0 KiB [ ] /blob_storage
8.0 KiB [ ] /Downloads
8.0 KiB [ ] TransportSecurity
e 4.0 KiB [ ] /Crash Reports
4.0 KiB [ ] Network Persistent State
4.0 KiB [ ] Preferences
0.0 B [ ] QuotaManager-journal
0.0 B [ ] Cookies-journal
我的系统是英文界面的,如何强制 Apple Music 显示中文?
这其实是老灯的需求,系统语言习惯设置成英文。但是,对于一些奇怪的歌曲名称,尤其是中国传统民族乐器经典曲目,我相信没几个人看到英文名称能翻译成中文。
这个也简单,修改启动命令,添加 LANG=zh_CN.UTF-8
环境变量即可。
sudo sed -i 's|Exec="/opt|Exec=env LANG=zh_CN.UTF-8 "/opt|' /usr/share/applications/apple-music-electron.desktop
❯ bat /usr/share/applications/apple-music-electron.desktop
[Desktop Entry]
Name=Apple Music
Exec=env LANG=zh_CN.UTF-8 "/opt/Apple Music/apple-music-electron" %U
Terminal=false
Type=Application
Icon=apple-music-electron
StartupWMClass=Apple Music
Comment=Unofficial Electron wrapper for Apple Music created by @cryptofyre
Categories=AudioVideo;
refs
Widevine DRM 介绍 https://zh.wikipedia.org/wiki/Widevine
关于 DRM 音频转换成 mp3 或 flac, 好像工具挺多的,比如 TuneFab iTunes Audio Converter (收费)