
如何用 gamdl 下载 Apple Music 无损音乐ALAC 完整配置与批量下载指南【免费下载链接】gamdlA command-line app for downloading Apple Music songs, music videos and post videos.项目地址: https://gitcode.com/GitHub_Trending/ga/gamdl如果你手上有有效的 Apple Music 订阅想把歌曲、专辑和播放列表存成本地无损文件gamdl 是一款能办到这件事的命令行工具它从 Apple Music 拉取对应的音频流输出带元数据和封面的 m4a 文件配合本地 Wrapper 服务还能拿到 ALAC 无损最高 24-bit/192kHz。本文按安装、Cookie、无损下载、批量入库的顺序带你从零配出一套能长期用的流程。安装 gamdl 并下出第一首 m4a开始之前需要三样东西Python 3.10 或更高版本、一个处于活跃状态的 Apple Music 订阅、以及登录凭证Cookie。其中 Cookie 只有走直连方式时才需要后文讲 Wrapper 时会再提到。第一步安装主程序pip install gamdl装完后在终端运行gamdl --help能打印出参数列表就说明环境就绪。如果 pip 网络受限也可以把源码拉到本地再装git clone https://gitcode.com/GitHub_Trending/ga/gamdl进入目录后按项目说明安装即可用法与 pip 版一致。第二步准备 Cookie。在已登录 Apple Music 的浏览器里用支持 Netscape 格式的 Cookie 导出插件Firefox、Chromium 都有现成的导出后命名为cookies.txt放在工作目录gamdl 默认就从这里读取。第三步用一首歌验证整条链路gamdl https://music.apple.com/粘贴你从歌曲页复制的链接下载完成后./Apple Music目录下会出现一个以曲目序号 歌名命名的 m4a 文件封面、艺术家、专辑等元数据已经写进文件里。注意此时拿到的是默认的aac-web流AAC 256kbps 有损想要无损请继续往下看。 三步配好 Wrapper解锁 ALAC 无损先说清楚 Wrapper 到底在干什么。ALACApple Lossless Audio Codec苹果自家的无损编码是逐比特还原原始数据的格式听感和音源一致体积也比 WAV 这类无压缩格式小不少。但 Apple Music 对外的网页接口只提供两种低码率的 Web 流aac-web256kbps和aac-he-web64kbps。ALAC 这类非 Web 流绑定了账户鉴权和 DRM 版权保护数字版权加密浏览器侧无法直接取到。Wrapper 就是补这个缺口的本地中间服务职责有四块登录你的 Apple ID含双因素验证并保管会话、代理播放请求、接收加密流并配合完成解密、维持长连接会话。所以结论很直接只下 256kbps 的 AAC 有 Cookie 就够想下 ALAC基本必须搭 Wrapper——官方说明也明确写了不启用 Wrapper 时请求alac大概率会失败。配置上只需要三步在本机跑起 Wrapper v2 服务按该项目的文档部署即可新版默认用 HTTP JSON 走账户和播放通信解密走 WV2D 批量 TCP 通道端口10020。gamdl 侧加上--use-wrapper开启 Wrapper 通道--wrapper-url指定服务地址默认值就是http://127.0.0.1本机跑可以不写。首次运行会提示输入 Apple ID 和密码之后按需输入双因素验证码会话保存后后续运行不再登录。一次典型的无损下载长这样gamdl --use-wrapper \ --song-codec-priority alac,aac-web 歌曲链接如果这首歌唱源里有 ALAC输出就是无损 m4a没有的话会自动落到列表里的下一个编解码不会中断。顺带一提启用 Wrapper 后连 Cookie 都可以省掉。代码层面解密和 MP4 封装由 gamdl 内置的 Rust 扩展 ammuxer 完成Python 负责命令行、下载调度和元数据Wrapper 通信的实现在 gamdl/api/wrapper.py感兴趣可以看它如何处理登录、播放请求和密钥交换。 单曲、整专辑、批量三种下载场景怎么下单曲。上一节已经演示过直接贴带?i参数的歌曲页链接即可。整专辑。把专辑页链接传进去专辑内所有曲目会下载并归入艺人/专辑文件夹gamdl https://music.apple.com/粘贴专辑页链接完成后你会看到一个以艺人命名的目录里面是整张专辑的 m4a每张文件默认都内嵌了专辑封面。艺术家与播放列表。传艺术家页链接时gamdl 会弹出一个交互式列表让你勾选要下哪些内容方向键移动、空格切换选中、CtrlA 全选、回车确认。想跳过交互可以用--artist-auto-select直接指定范围可选值有main-albums主力专辑、compilation-albums合辑、live-albums现场、singles-eps单曲/EP、all-albums全部专辑、top-songs热门歌曲、music-videos音乐视频。播放列表页链接则可以直接当普通 URL 传入。批量 URL。把多行链接一行一个存进urls.txt然后gamdl --read-urls-as-txt urls.txt文件里的单曲、专辑、播放列表链接可以混着放会按顺序逐条入队处理适合一次性把想留存的歌单搬进本地库。常用进阶选项编解码优先级、命名模板与下载加速只挑日常真正用得上的几项说明全部都可以写进配置文件也可以直接传命令行。编解码优先级--song-codec-priority接收逗号分隔的列表从左到右依次尝试默认值是aac-web。常用取值alac无损最高 24-bit/192kHz、aac256kbps 非 Web 流、atmosDolby Atmos 768kbps 环绕声、aac-web256kbps Web 流。写成alac,atmos,aac-web就是能无损就无损其次环绕兜底 256k。填ask则每次下载前弹出交互让你选。完整清单见 gamdl/interface/enums.py。同步歌词--synced-lyrics-format支持lrc默认、srt时间轴更精确、ttmlApple 原生多数播放器不认--no-synced-lyrics关闭歌词抓取。命名模板--album-folder-template控制专辑文件夹结构默认{album_artist}/{album}可改成{album_artist}/{year}/{album}按年份归档--single-disc-file-template控制单曲文件名默认{track:02d} {title}可改成{track:02d} - {artist} - {title}。模板里可用{artist}、{album}、{year}、{track:02d}、{title}等变量--exclude-tags传入逗号分隔的标签名如comment,rating,storefront可以从元数据里剔除不想要的字段。下载加速默认下载模式是ytdlpyt-dlp 在这里只充当文件下载库音频源仍然是 Apple 服务器。--download-mode nm3u8dlre切换到 N_m3u8DL-RE速度通常更快如果可执行文件不在 PATH 里用--nm3u8dlre-path指路。该模式依赖 ffmpeg必要时用--ffmpeg-path指定 ffmpeg 的位置。封面与路径--cover-format选 jpg/png/raw--cover-size控制像素默认 1200--save-cover额外存一张独立封面图--output-path改输出目录默认./Apple Music--temp-path改临时目录磁盘紧张时指到空间大的盘上。音乐视频--music-video-resolution限定最高清晰度默认 1080p2160p 必须走 h265 编码。要下 4K 还需提供 Widevine 的.wvd或 PlayReady SL3000 的.prd设备文件通过--wvd-path/--prd-path传入。配置文件首次运行会自动生成Linux 在~/.gamdl/config.iniWindows 在%USERPROFILE%\.gamdl\config.ini。上面所有参数都能写进去命令行参数优先于文件值。代理需要走代理出口时设置HTTP_PROXY/HTTPS_PROXY环境变量即可。 卡住了四个高频故障的排查思路ALAC 下不出来或自动降级。现象是编解码列表里写了alac结果却拿到 aac-web 或直接报错。原因通常是没启用 Wrapper——非 Web 流走公共 API 拿不到其次是订阅已过期。解法确认 Wrapper 服务在跑、命令里带了--use-wrapper并在 Apple Music 里核对订阅状态仍有效。Wrapper 连接被拒绝。现象是启动阶段报连接失败。原因Wrapper v2 没启动或地址、端口对不上。解法先确认服务已监听在http://127.0.0.1解密通道默认端口是10020如果部署时改过端口记得同步调整--wrapper-decrypt-port。Cookie 缺失或过期。现象是提示找不到 Cookie 或请求返回未登录状态。原因cookies.txt不在工作目录默认只找这里或浏览器会话已失效。解法重新在登录状态下导出 Netscape 格式 Cookie 并放到工作目录或用--cookies-path显式指定路径走 Wrapper 的话这个问题可以直接绕开。下载速度不理想。原因是默认的 ytdlp 模式比较保守。解法装上 N_m3u8DL-RE 和 ffmpeg切到--download-mode nm3u8dlre如果换模式后依旧慢多半是网络侧的问题配上代理环境变量再试。任何环节拿不准时把日志开到调试级别跑一遍最能说明问题gamdl --log-level DEBUG --log-file gamdl.log 链接跑完打开gamdl.log请求到哪一步、响应是什么内容都写得很清楚对着日志定位基本不用猜。最后一步把无损下载跑起来gamdl --use-wrapper --song-codec-priority alac,aac-web 粘贴你的歌曲或专辑链接第一次跑通之后把这套参数记进配置文件以后下载就是一句命令的事。下载的内容请仅用于个人欣赏也请支持你喜欢的艺人和作品。【免费下载链接】gamdlA command-line app for downloading Apple Music songs, music videos and post videos.项目地址: https://gitcode.com/GitHub_Trending/ga/gamdl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考