之前在Deepflood发了这个教程,但没啥人看,希望大伙支持一下

https://www.deepflood.com/post-10156-1

前言

此教程并不是简简单单在App内点击下载按钮就搞定的事,因为单纯在App内下载有诸多限制
1. 文件经过加密,只能在App内播放

Windows端下载的都是经过加密的分片文件,无法通过外部播放器正常播放

安卓端我获取了ROOT权限来深挖下载文件的存放路径,但文件依旧被加密,无法播放

- 存放路径如下

/data/user/0/com.apple.android.music/cache/playback_assets/hls/

iOS端由于我的iPhone无法越狱,不方便展示,但大概率也是加密的

2. 下载好的音乐一旦切换账号会被强制清除,需要重新下载,相信也是众多Apple Music用户较为头疼的问题

  • 还有许多问题我没提出来,总之在App内有很多限制

接下来的教程不仅能绕开上述限制,还能下载Apple Music内的视频,具有高灵活度,能实现很多上面没有的功能,话不多说,教程正式开始

前期环境安装:

  1. 确保你的Windows系统支持WSL也就是Windows 子系统Linux,并能够流畅地访问外网
  2. 下载好压缩包文件并解压,会得到如下文件

- 运行第一个脚本,此脚本会自动安装WSL1,等待脚本执行完毕后重启系统

0-1 Install WSL1(need to reboot later).bat

- 运行第二个脚本,此脚本会安装一个Linux发行版镜像,包含了下面会用到的工具,注意只需运行一次

0-2 Install Ubuntu-AMDL(only once).bat

正式下载

- 安装完成后编辑第三个脚本

1. Run decryptor (!!!need to replace username and password in this file).bat

- 你需要替换文件内的的username和password来实现下载及解密功能

wsl1\LxRunOffline.exe r -n u22-amdl -c "cd && ./wrapper -L Apple Music用户名:密码"# (中国大陆手机号用户需要在账号前加86),密码尽量不要有特殊字符

编辑完成后保存并运行脚本,如果账户有双重验证,第一次运行需要输入验证码,后续不再需要输入。

注意事项

  • 只有出现type6才是登录成功
  • 如果没有_bionic_open_tzdata_path等字符出现,请检查你的网络
  • 确保这个窗口不被关闭
  • 运行成功后的示例图如下

- 最后运行第四个脚本

2. Run downloader.bat

- 在弹出的命令行窗口中使用以下命令下载

1.下载整个专辑歌曲、播放列表、艺术家专辑、音乐视频

go run main.go 专辑链接/播放列表链接/艺术家链接/MV链接

2.下载杜比全景声

go run main.go --atmos 杜比专辑/播放列表链接

3.只下载专辑中指定的几首歌,使用时输入要下载的曲目数字或范围,如1-3,5,6

go run main.go --select 专辑链接

4.如果想查看特定歌曲的可用音质、格式等信息,添加 --debug 参数

go run main.go --debug 专辑链接/播放列表链接/艺术家链接

- 下载好后的媒体文件会存放在WSL的当前目录中,可以通过外部播放器播放,且不受加密限制

进阶教程

到这里还没有发挥这套工具的全部功能,我们还需要编辑配置文件,这里更推荐使用Visual Studio Code进行编辑操作

  • 转到工具目录下,打开apple-music-downloader文件夹,并打开config.yaml文件,接下来我会解释一些有用的参数
  1. alac-save-folderatmos-save-folder

此参数决定媒体文件的存放路径,如果需要保存下载器文件夹外,则需更改,示例如下
E:\AM-DL --> /mnt/e/AM-DL
D:\Music\AM --> /mnt/d/Music/AM

  1. media-user-token
    工具需要此参数来获取歌词、aac-lc、MV,获取方式如下

1.打开Apple Music网站并登录你的账号
2.按下F12打开开发者工具,打开应用程序选项卡

3.找到Cookie里的media-user-token并复制此Cookie的值

最后将media-user-token内的内容替换成刚才复制的Cookie值,之后工具就可以获取歌词和MV了

  1. embed-lrc

此参数决定是否会将歌词嵌入到歌曲文件中,在支持的播放器上会自动加载歌词,若值为false则不会嵌入,true则反之,效果如下

  1. save-lrc-file

此参数决定是否保留单独的歌词文件,若值为false则不会保留,true则反之

  1. save-artist-cover

此参数决定是否保留专辑封面为单独的文件,若值为false则不会保留,true则反之

  1. save-animated-artwork

此参数决定是否保留支持的专辑动态封面,若值为false则不会保留,true则反之,一般会得到如下文件

  1. embed-cover

此参数决定是否将专辑封面嵌入到歌曲文件中,在支持的播放器上会自动加载并展示,效果如下

其他参数由于篇幅原因就不作额外解释,感兴趣的可自行阅读文件内注释

结尾

此教程是基于我的使用经验和理解来写的,同时也是第一次写这么详细的教程,有任何改进建议欢迎在评论区提出

参考文献

https://telegra.ph/Apple-Music-Wrapper-On-WSL1-07-21

Github开源项目

https://github.com/zhaarey/apple-music-downloader