news 2026/8/21 17:06:50

Gamdl 完整指南:命令行轻松下载 Apple Music 无损歌曲与 4K 音乐视频

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Gamdl 完整指南:命令行轻松下载 Apple Music 无损歌曲与 4K 音乐视频

Gamdl 完整指南:命令行轻松下载 Apple Music 无损歌曲与 4K 音乐视频

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

月初会员到期那天,我发现自己常听的播放列表在 App 里再也点不开了。会员期间"下载"的几百首歌,其实只是加密缓存,订阅一停,全部变灰。Gamdl(Glomatico's Apple Music Downloader)就是为解决这个问题而生的开源命令行工具:它能把你在 Apple Music 订阅内可听的歌曲、音乐视频和上传视频,以真实的音频/视频文件形式保存到本地,供你永久使用。

三十秒判断它适不适合你

Gamdl 是纯命令行工具,用 Python 编写,通过官方 API 直接与 Apple Music 交互。它的核心价值可以浓缩为下面几条:

  1. 格式真实无损:支持 AAC 256kbps、AAC-HE,甚至 ALAC 无损(最高 24-bit/192kHz)和 Dolby Atmos 空间音频。
  2. 视频可达 4K:音乐视频支持 H.264 最高 1080p,H.265 最高 2160p(4K)。
  3. 元数据齐全:自动嵌入专辑封面、歌词、艺术家、曲目号等标签,歌词还能导出 LRC、SRT、TTML 三种同步字幕格式。
  4. 批量能力强:单曲、专辑、播放列表、艺术家全集都能一键处理,还内置 SQLite 数据库避免重复下载。
  5. 高度可定制:目录模板、文件命名、标签取舍、下载引擎(yt-dlp 或 N_m3u8DL-RE)全部可配。

如果你符合"有 Apple Music 订阅 + 想要真正拥有音乐文件 + 不介意敲几行命令"这几个条件,这个项目大概率适合你。

为什么值得用它:三个绕不开的痛点

痛点一:App 里的"下载"从来不属于你

Apple Music 的离线下载本质是授权缓存,加密且绑定账号。会员到期、设备换绑或区域变更,内容就可能消失。Gamdl 把这些缓存变成普通文件——一首 m4a 或 m4v,拷到 NAS、塞进车载 U 盘、导入其他播放器都行,不再受订阅状态绑架。

痛点二:录屏、录音方案质量损失严重

有人用录屏软件抓 MV,或用系统录音抓歌,得到的文件要么音画不同步,要么码率被二次压缩,封面、歌词更是无从谈起。Gamdl 走的是流媒体原始数据链路:媒体直接来自 Apple Music 服务器(yt-dlp 在这里只负责下载文件本身,不参与内容获取),拿到的是接近原始码率的数据,再经过解密与封装,质量有保障。

痛点三:同类工具大多只解决一半问题

市面上的下载工具往往只支持 AAC 提取,视频分辨率也卡在 1080p,更别提同步歌词和完整标签。Gamdl 把"歌曲、MV、上传视频"三种媒体类型统一在一个命令里,还提供 Wrapper v2 服务器接入方案来解锁 ALAC 无损。你不用在多个工具之间来回切换。

能力全景:一张表看懂 Gamdl

媒体类型支持的格式/编码最高质量档位特色能力
歌曲(Web 端)AAC、AAC-HE256kbps / 44.1kHz免 Wrapper,开箱即用
歌曲(非 Web 端)AAC、AAC-HE、AC3、Atmos、ALAC24-bit/192kHzALAC 需 Wrapper 配合
音乐视频H.264、H.2652160p(4K)音视频流分离下载再合并
上传视频(Post)原画质流1080p + AAC 256kbps交互式选择质量
歌词LRC / SRT / TTMLSRT 时间轴更精准
封面jpg / png / raw自定义像素尺寸可嵌入或单独保存
组织方式目录/文件模板支持 strftime 日期格式

手把手实操:从零下载第一首歌

第一步:准备环境

你需要三样东西:Python 3.10 及以上版本有效的 Apple Music 订阅一份 Netscape 格式的 cookies 文件。cookies 的获取方法是:在浏览器中登录 music.apple.com,再用浏览器扩展(如 Firefox 的 Export Cookies、Chromium 的 Get cookies.txt LOCALLY)导出成 cookies.txt。

第二步:安装 Gamdl

安装很简单,一行命令:

pip install gamdl

装好后把 cookies.txt 放到工作目录,或用参数显式指定路径:

gamdl -c /path/to/cookies.txt --help

第三步:下载第一首歌曲

把你看到的 Apple Music 歌曲链接直接丢给命令:

gamdl "https://music.apple.com/us/album/never-gonna-give-you-up-2022-remaster/1624945511?i=1624945512"

默认输出到当前目录下的Apple Music文件夹,文件按"专辑艺人/专辑名"自动归类。首次运行还会自动生成配置文件(Linux 下是~/.gamdl/config.ini),之后你可以在里面集中管理所有偏好。

第四步:批量下载专辑与艺术家全集

把 URL 从单曲换成专辑或艺人页,逻辑完全一样:

gamdl "https://music.apple.com/us/album/whenever-you-need-somebody-2022-remaster/1624945511" gamdl "https://music.apple.com/us/artist/rick-astley/669771"

下载艺术家链接时,Gamdl 会弹出一个交互式选择界面,用方向键移动、空格切换、Ctrl+A 全选、回车确认,你可以精确勾选要拿的专辑或 MV。

进阶玩法:把 Gamdl 用到极致

场景一:解锁 ALAC 无损与空间音频

想拿无损,把编解码器优先级改成 ALAC 在前:

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

但请注意:ALAC 通常需要配合 Wrapper v2 服务器使用(--use-wrapper开启),否则大概率因 API 限制失败。不追求无损的话,Atmos 空间音频同样值得一试:

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

场景二:批量任务 + 数据库去重

把一堆链接写进文本文件,一次跑完,再用 SQLite 数据库记录下载历史,重复链接自动跳过:

echo "https://music.apple.com/us/album/some-album/123456789" > urls.txt gamdl --read-urls-as-txt urls.txt --database-path ./downloads.db

这是维护个人音乐库最省心的姿势:以后新歌加进 urls.txt 重跑一遍即可,已下载的不会重复占空间。

场景三:自定义目录结构与标签

默认的{album_artist}/{album}结构不够用?你可以完全重写模板,比如按年份归档:

gamdl URL --album-folder-template "{album_artist}/{date:%Y}/{album}" \ --single-disc-file-template "{track:02d} - {title}"

不想要的标签可以用--exclude-tags剔除,封面可以单独导出一份 PNG(--save-cover --cover-format png --cover-size 2000),甚至可以用--save-playlist生成 M3U8 播放列表文件。

架构速览:三层设计与原生解密引擎

Gamdl 的源码组织清晰,适合想研究流媒体下载原理的开发者:

  • API 层gamdl/api/):封装与 Apple Music 服务器的通信,负责账号认证与数据获取。
  • 接口层gamdl/interface/):解析媒体信息、选择编解码器、处理 DRM 密钥获取。
  • 下载器层gamdl/downloader/):负责流文件下载、解密、转码、标签嵌入与文件整理。

值得一提的亮点是gamdl/downloader/ammuxer:这是一个用 Rust 编写的原生扩展,负责解密、MP4/M4A 写入和音视频合并,用 maturin 构建为 Python 模块。Python 侧只做编排与元数据处理,重活交给 Rust,兼顾了开发效率与运行性能。想读源码的话,可以这样克隆仓库:

git clone https://gitcode.com/GitHub_Trending/ga/gamdl

新手常见问题 FAQ

Q1:提示 cookie 无效或"找不到订阅",怎么办?检查两件事:一是 cookies.txt 必须是 Netscape 格式且来自已登录 music.apple.com 的浏览器;二是文件路径是否写对,可用-c显式指定。重新导出后基本能解决。

Q2:选了 ALAC 却下载失败?ALAC 受 API 限制,需要 Wrapper v2 服务器支持。先启动 wrapper-v2,再在命令里加--use-wrapper,并按提示登录、处理二步验证。

Q3:MV 最多只有 1080p,没有 4K 选项?4K(2160p)和 1440p 只有 H.265 编码才有。把视频编码优先级设为--music-video-codec-priority h265,分辨率上限提高到--music-video-resolution 2160p

Q4:命令行参数和配置文件冲突时听谁的?命令行参数优先级更高。如果你想临时忽略配置文件,可以用-n/--no-config-file参数。

Q5:想换更快的下载引擎?默认 yt-dlp 已够用;追求速度可改用 N_m3u8DL-RE:--download-mode nm3u8dlre,可执行文件不在 PATH 里时再用--nm3u8dlre-path指定位置。

写在最后

Gamdl 适合三类人:想建立本地无损音乐库的发烧友、需要 4K MV 素材的内容创作者,以及想研究流媒体与 DRM 技术原理的开发者。它的学习成本不高——装好、导 cookies、粘链接,三步就能跑通第一条下载任务。官方仓库和文档都在项目主页(pip install gamdl安装后可用gamdl --help查看全部选项),遇到问题可以打开 issue 交流。记住一条使用边界:仅限你自己的订阅内容、仅供个人使用,别拿去分发牟利。动手试一次,你大概率会爱上"文件在本地"的踏实感。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 17:06:34

从提交第一个PR到成为核心维护者:SVO开源贡献的进阶之路

从提交第一个PR到成为核心维护者:SVO开源贡献的进阶之路 【免费下载链接】rpg_svo Semi-direct Visual Odometry 项目地址: https://gitcode.com/gh_mirrors/rp/rpg_svo 想象这样一个场景:你在ROS环境里第一次跑通了SVO(Semi-direct V…

作者头像 李华
网站建设 2026/8/21 17:06:31

【计算机毕业设计单片机案例】基于 STM32 单片机的多外设联动智能柜体硬件设计 基于 STM32 的自动 / 手动双模式智能柜体控制系统设计(013004)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华