博客

Apple Music 的 Linux 桌面版

常用网站 · · 约 5 分钟

Apple 没有给 Linux 出 Apple Music 应用,Linux 上官方的入口是浏览器里 music.apple.com 的网页播放器。Pake 窗口在 Linux 上放不了 Apple Music 曲库里的歌,播放器要靠浏览器的受保护媒体支持,而发行版自带的 WebKitGTK 默认构建里没有这一块,Pake 也没有把它打开。Linux 上用 Chrome,它可以把 music.apple.com 安装成一个独立窗口的应用,或者用 Firefox,这是 Apple 网页指南里点名、又能在 Linux 上用的两个浏览器。

Apple 在 Linux 上提供什么

Apple 的 Apple Music 页面写着 Apple Music 在 iPhone、iPad、Apple Watch、Apple TV 4K、Mac 和 HomePod 上可用,可以在 music.apple.com 在线收听,Windows、Android、Sonos 音箱、智能电视等也能用,页面没有提到 Linux,这就是 Linux 用户最后都落到浏览器里的原因。

用网页播放器需要登录 Apple 账户并订阅。Apple 的网页版指南说,打开 Apple Music 网站,点左下角的 Sign In 登录,没有 Apple 账户可以在设置过程中创建,Apple Music 也不是在所有国家和地区都提供。同一页还说,在 Safari、Chrome 或 Firefox 里,登录后可以免费收听 Apple Music 的电台。

指南里没有列出支持哪些浏览器的页面,点名的只有 Safari、Chrome 和 Firefox,出现在上面那句电台的话里,而 Safari 在 Linux 上用不了。

为什么在 Pake 窗口里播不了

曲库里的歌是受保护媒体,网页要通过 Encrypted Media Extensions 接口播放,由浏览器里的解密模块负责解密。music.apple.com 加载的脚本和 Apple 的 MusicKit on the Web 库,都会按名字向浏览器要三种密钥系统之一:Widevine(com.widevine.alpha)、FairPlay(com.apple.fps)和 PlayReady(com.microsoft.playready),一个都给不出的视图就解不开这些歌。

Pake 在 Linux 上用的 WebKitGTK,在发行版装的版本里三种都给不出:

  • WebKit 给 GTK 移植版的构建配置(Source/cmake/OptionsGTK.cmake)里,只有打开实验性功能时才会编进加密媒体,而实验性功能默认是关的。Pake 桌面版在 Arch 和 Omarchy 上装的是 Arch 的 webkit2gtk-4.1 包,用的就是这些默认值。
  • 就算构建里有,enable-encrypted-media 设置默认也是 false,WebKitGTK 文档还写明,只有构建时开了这个功能它才起作用。
  • Pake 3.17.8 不改这个设置,它的 Rust 源码里没有设置加密媒体,创建 WebKitGTK 视图的 wry 0.54.2 打开了 WebGL、Web Audio 和页面缓存,也没有打开加密媒体。
  • GTK 移植版的加密媒体代码接第三方解密模块用的桥(Thunder)只在开发者构建里开启,正式构建里 Widevine 或 PlayReady 的内容没有地方可交。

所以 Pake 的选项里找不到这样一个开关,换 User Agent 也没用,换一个 --user-agent 改的是网站对客户端的判断,改不了引擎能解密什么。

用 Chrome 或 Firefox

Linux 上在 Chrome 或 Firefox 里打开 music.apple.com 登录就行。想要应用的感觉,Chrome 可以把页面安装成应用,Google 的步骤是 More、Cast, save, and share、Install page as app...,有些网站地址栏右边也有安装图标。装好的应用有自己的窗口,底下跑的仍是 Chrome 的引擎,Chrome 标签页里能播的它也能播。

同样的原因,Arch 和 Omarchy 上的 Pake 桌面版也不是 Apple Music 的路,它做出来的应用用的是同一个系统 WebKitGTK,曲库照样播不了。

Pake 还适合做什么

Linux 上不依赖受保护媒体的网页应用,比如聊天、邮件、日历和笔记,Pake 仍然合适,要的就是一个有自己图标的独立窗口。音乐服务要先问一句它放的是不是受保护的流,YouTube Music 是另一种情况,限制也不一样,见 YouTube Music 那篇。

Cider 和其他客户端

Cider 是第三方的 Apple Music 客户端,它的网站称自己是「Community-run Apple Music for Windows, macOS, Linux, and Android」。它不是 Apple 做的,Flathub 页面写的开发者是 Cider Collective,许可证是专有的。它能做什么,装之前先看它自己的页面。它和 Pake 没有关系,Pake 桌面版也不使用它。

常见问题

Apple Music 有官方的 Linux 应用吗?

Apple 的页面上没有,页面列的是 Apple 设备、Windows 和 Android,网页指向 music.apple.com。

Apple Music 能在 Linux 上的 Pake 窗口里播放吗?

不能。网页播放器要通过浏览器的加密媒体接口用上 Widevine、FairPlay 或 PlayReady 模块,而发行版自带的 WebKitGTK 和 Pake 对它的配置都给不出。

Pake 有打开 DRM 的参数吗?

没有。Pake 的 CLI 选项和常见问题里都没有,已发布版本的源码里也没有设置加密媒体的选项。

需要订阅吗?

曲库里的音乐需要,并且要登录 Apple 账户。Apple 的网页指南说,在 Safari、Chrome 或 Firefox 里登录后电台可以免费收听。