手把手搞定Apple Music ALAC无损下载:Gamdl + Wrapper实战配置
【免费下载链接】gamdlA command-line app for downloading Apple Music songs, music videos and post videos.项目地址: https://gitcode.com/GitHub_Trending/ga/gamdl
你在Apple Music里听到的多半是256kbps的AAC流,而原曲可能是24-bit/192kHz的ALAC无损——差距在一副好耳机上很明显。Gamdl + Wrapper 是目前做Apple Music无损下载少数稳的路子:Gamdl负责下载、打标签、整理文件,Wrapper负责把官方接口舍不得给的无损流钥匙交出来。
⚡️ 30秒上手
前提两样:一个生效中的Apple Music订阅,以及在浏览器登录music.apple.com时导出的Netscape格式cookies文件(Chrome装"Get cookies.txt LOCALLY"、Firefox装"Export Cookies"扩展都能导出)。
pip install gamdl gamdl -c cookies.txt "https://music.apple.com/us/album/never-gonna-give-you-up-2022-remaster/1624945512"跑完,带标签、封面和同步歌词的音频文件就落在默认的./Apple Music目录里。传艺术家或播放列表URL时,它会弹出交互式选择列表,空格勾选、回车确认,新手也能一眼会用。默认编解码器是aac-web(256kbps),想碰ALAC往下看。
🔧 它是怎么做到的
说白了,Wrapper是个伪装成合法客户端的中间人,替Gamdl去跟Apple Music要无损流的钥匙。整条链路分工很清晰:
- 账户登录:gamdl把Apple ID凭据转给Wrapper(首次会提示你输入),登录态由Wrapper维护;
- 播放请求:每首曲目由Wrapper去申请合法播放会话,拿回流地址和FairPlay解密密钥;
- 解密封装:大批量解密数据走Wrapper的TCP端口(默认
10020),gamdl自带的Rust引擎ammuxer完成解密、重组和M4A写入,Python只负责CLI、下载、元数据打标和整体编排。
所以用Wrapper时你连cookies.txt都可以省掉,登录态交给它管,这也是Wrapper模式比纯cookies模式更稳的原因之一。
gamdl --use-wrapper \ --song-codec-priority alac,aac-web \ "https://music.apple.com/us/album/never-gonna-give-you-up-2022-remaster/1624945512"歌曲编解码器分web(aac-web、aac-he-web,就是浏览器里播的那两种)和non-web(aac、alac、atmos、ac3等,要合法设备会话才发)两组,ALAC是non-web里的顶格选项。--wrapper-url和--wrapper-decrypt-port默认指向本机10020端口,Wrapper跑在别处就改这两项。alac,aac-web的写法是"优先无损,流不可用就回退AAC",不会让队列里的曲目白等。
🎯 进阶玩法
用得最多的三个高阶姿势,直接抄:
# 1. 一键下载艺术家全部专辑 gamdl --artist-auto-select all-albums "https://music.apple.com/us/artist/rick-astley/669771" # 2. 自定义目录结构和文件命名 gamdl --album-folder-template "{album_artist}/{album}/{date:%Y}" \ --multi-disc-file-template "{disc}-{track:02d} {title}" \ "https://music.apple.com/us/album/whenever-you-need-somebody-2022-remaster/1624945511" # 3. 换N_m3u8DL-RE加速下载 gamdl --download-mode nm3u8dlre \ --nm3u8dlre-path /path/to/N_m3u8DL-RE --ffmpeg-path /path/to/ffmpeg <URL>--artist-auto-select还有singles-eps、top-songs、music-videos等选项,配合艺术家页面按口味挑;- 模板变量里
{track:02d}是补零轨号、{date:%Y}是专辑年份,多碟专辑记得用--multi-disc-file-template加碟号前缀; - 换
nm3u8dlre模式后音乐视频下载速度明显提升,代价是必须能找到FFmpeg; - 歌词想要更准的时间轴,把
--synced-lyrics-format从默认的lrc改成srt即可。
不想每次敲参数,写进~/.gamdl/config.ini(Windows在%USERPROFILE%\.gamdl\config.ini):
[gamdl] use_wrapper = true song_codec_priority = alac,aac-web synced_lyrics_format = lrc配置文件首次运行时自动生成,全部选项都在里面,命令行参数优先级高于配置。
🛠️ 避坑指南
设了alac却下载失败,只出来AAC
没有Wrapper时,官方接口基本不会发放无损流。这是接口层面的限制,不是gamdl的bug。本地先起一个Wrapper v2服务,再带上--use-wrapper重跑。
报"订阅未激活"或403
cookies对应的浏览器会话过期了,这个坑几乎人人踩过。重新从一个当前登录态正常的浏览器导出cookies;或者干脆切到Wrapper模式,那条路径完全不用cookies。
音乐视频卡在1080p,设2160p直接报错
4K流只有h265编码,且需要DRM L1设备参与解密。把--music-video-codec-priority里h265放第一位,再用--wvd-path指定Widevine L1的.wvd,或--prd-path指定SL3000 PlayReady的.prd,没有这两类设备文件就别指望4K。
换成nm3u8dlre模式立刻报错
这个模式依赖N_m3u8DL-RE和FFmpeg两个外部可执行文件,不在PATH里必挂。用--nm3u8dlre-path和--ffmpeg-path传绝对路径,或者干脆保持默认ytdlp模式——差别主要在速度,不在结果。
收尾
Gamdl定位是一个Apple Music命令行全家桶:歌曲、最高4K的音乐视频、三种格式的同步歌词、艺术家页面批量下载,一个入口全走通,而Wrapper就是它通往无损音质的钥匙。建议先把30秒流程跑通,确认库结构合心意,再搭本地Wrapper切ALAC。遇到不认识的参数,首跑自动生成的配置文件里都有完整清单,也可以去项目的issue列表里翻翻同类问题。
【免费下载链接】gamdlA command-line app for downloading Apple Music songs, music videos and post videos.项目地址: https://gitcode.com/GitHub_Trending/ga/gamdl
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考