☰
gamdl:3 步下载 Apple Music 无损歌曲与 4K 音乐视频
2026/10/21 3:57:35 网站建设 项目流程

gamdl:3 步下载 Apple Music 无损歌曲与 4K 音乐视频

【免费下载链接】gamdlA command-line app for downloading Apple Music songs, music videos and post videos.项目地址: https://gitcode.com/GitHub_Trending/ga/gamdl

一条命令跑完,硬盘里多了一整张专辑:音频是 ALAC 无损,封面、标签、同步歌词齐备,目录还按"艺术家/专辑"自动归好了位。这是 Apple Music 下载工具 gamdl 给出的结果——它模拟官方客户端向 Apple Music 的接口发起请求,拿到的是平台原始编码的媒体文件,而不是对播放流做二次录制。

它到底能干什么

gamdl 支持三种内容:歌曲、音乐视频、上传视频(post videos),同时负责同步歌词与元数据的抓取。链接来源覆盖曲库和资料库中的单曲、专辑、播放列表,也可以直接丢一个艺术家页面进去。

  • 歌曲:AAC 256kbps,ALAC 最高 24-bit/192kHz,另有 Dolby Atmos 可选
  • 音乐视频:最高 4K(2160p,H.265 编码)
  • 上传视频:最高 1080p,AAC 256kbps 音轨
  • 同步歌词:LRC / SRT / TTML 三种格式任选
  • 元数据与批量:封面、艺术家、专辑等信息自动写入标签,整张专辑、整个播放列表、一位艺术家的作品都能一次处理

选它的两个理由

直连官方 API,不做"抓流"。不少同类工具是录制播放中的音频流再转码,音质损失大、格式也容易失控。gamdl 则是模拟客户端请求,从官方接口直接取回原始媒体文件;登录态维护、订阅校验、媒体解析这条链路都在 gamdl/api/apple_music.py 里,落盘前没有任何转码环节。

Rust 原生引擎负责解密与合流。项目内置了 Rust 编写的本地扩展 gamdl/downloader/ammuxer/,处理 CBCS/CENC 加密方案解密、MP4/M4A 封装和音视频合流。大文件、并发下载这类重负载场景下,它比纯 Python 实现快得多,通过 pyo3 与 Python 主程序对接,日常使用几乎无感。

整体代码按 API(通信)→ Interface(信息解析、密钥获取)→ Downloader(下载、解密、打标签)三层解耦,读源码可以逐层推进,也可以直接把它当 Python 库引入自己的项目。

安装与第一首歌:3 步

第 1 步:安装 gamdl

需要 Python 3.10 或更高版本,执行:

pip install gamdl

装好后随时可以用gamdl --help查看全部参数。

第 2 步:准备 cookies.txt

请求需要以你的账号身份发出。在浏览器登录 Apple Music 网页版后,用"导出 Cookie"类扩展导出一份 Netscape 格式的 Cookie 文件,命名为cookies.txt放到工作目录;路径不同的话用-c cookies.txt显式指定。

第 3 步:跑第一条下载命令

复制任意一首歌的分享链接,直接执行:

gamdl "https://music.apple.com/us/album/example-song/id1234567890"

默认输出到./Apple Music目录,按艺术家/专辑两级归档;链接指向专辑或艺术家页面时会弹出交互选择框,用空格切换条目、回车确认。

首次运行会在~/.gamdl/config.ini自动生成一份完整配置,把常用参数写进去,同名参数由命令行覆盖配置。


三个最实用的场景

把歌曲编码切到 ALAC 无损路线

在默认命令上加编码优先级:

gamdl "URL" --song-codec-priority "alac,aac-web"

alac即 Apple 无损编码,最高 24-bit/192kHz,但受 API 限制,通常需要配合 Wrapper v2 本地解密服务。在配置文件中启用即可:

[gamdl] use_wrapper = true wrapper_decrypt_port = 10020

暂时不想折腾的话,退回默认的aac-web(AAC 256kbps)也足够好;想在空间音频上多走一步,把atmos加进优先级列表就行。

下 4K 音乐视频:认准 H.265

gamdl "URL" --music-video-resolution 2160p --music-video-codec-priority h265 --music-video-remux-format m4v

H.264 的上限是 1080p,1440p 和 2160p 只有 H.265 提供;如果播放设备解不了 H.265,把优先级写成h264,h265让工具自动兜底。

批量拉艺术家全集 + 数据库去重

gamdl -r urls.txt --database-path "./history.db"

-r从文本文件逐行读取 URL;--artist-auto-select "main-albums,singles-eps,top-songs"则能自动挑出艺术家页面下的正式专辑、单曲、热门歌曲。配上--database-path指向的 SQLite 数据库,已下载的媒体在重复运行时会被自动跳过,适合挂成定时任务。


踩坑速查

  • 提示登录态失效→ Cookie 过期了,重新登录网页版并导出一份新的cookies.txt,这一步最容易被忽略。
  • 选了alac却下载失败→ 先在本机跑起 Wrapper v2 服务并启用use_wrapper = true,ALAC 脱离它基本拿不到。
  • 设了 2160p 却出 1080p→ 确认编码器优先级里包含h265;另外 4K 档位还要求 Widevine L1 或 PlayReady SL3000 级别的设备凭证。
  • 一首歌失败中断整单任务→ 加--no-exceptions让单个失败不阻塞后续下载,配合--log-file ./gamdl.log事后定位原因。

gamdl 把"请求 → 解析 → 解密 → 封装"整条管线收敛进一条命令,交付的是 Apple Music 的原始品质文件,标签和歌词一应俱全。pip install gamdl装上就能开工。

【免费下载链接】gamdlA command-line app for downloading Apple Music songs, music videos and post videos.项目地址: https://gitcode.com/GitHub_Trending/ga/gamdl

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询