☰
Gamdl 完整指南:把 Apple Music 无损音频和 4K 视频存进本地
2026/10/21 11:12:31 网站建设 项目流程

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

Gamdl(Glomatico's Apple Music Downloader)是一款命令行工具,帮订阅用户把 Apple Music 的歌曲、音乐视频直接下载到本地:歌曲最高到 ALAC 24-bit/192kHz 无损,视频最高到 4K H.265,还自动打好元数据标签、嵌入封面和同步歌词。全文按"第一次接触 → 日常使用 → 深度定制"的顺序讲,每一步都能直接跑。

1 次配好环境:3 步搞定安装

Gamdl 要求 Python 3.10+、有效的 Apple Music 订阅,外加一个浏览器 Cookie 文件。

# 1. 安装 pip install gamdl # 2. 从源码安装(可选) git clone https://gitcode.com/GitHub_Trending/ga/gamdl pip install gamdl/ # 3. 下载前先确认订阅可用 gamdl "任意歌曲URL"

最省事的 Cookie 导出方法

在 music.apple.com 登录状态下,用浏览器扩展导出 Netscape 格式的cookies.txt:Firefox 用 Export Cookies,Chromium 系用 Get cookies.txt LOCALLY。文件放到工作目录,或写进配置文件:

[gamdl] cookies_path = /path/to/cookies.txt output_path = /path/to/your/music

配置文件默认在~/.gamdl/config.ini,首次运行自动生成,命令行参数优先级更高。

这里有个坑:4K 视频要设备文件

默认走内置 Widevine(L0),够用但不支持 4K。想要 2160p,要么自备 Widevine L1 的.wvd文件,要么用 PlayReady SL3K 的.prd设备文件,通过--wvd-path/--prd-path指定。普通 1080p 不用管这节。

🎯 第一次下载:从 URL 到本地曲库

单首歌曲与整张专辑

命令格式就是gamdl [选项] URL:

# 单曲 gamdl "https://music.apple.com/us/album/never-gonna-give-you-up-2022-remaster/1624945511?i=1624945512" # 整张专辑、整个艺术家 gamdl "https://music.apple.com/us/album/whenever-you-need-somebody-2022-remaster/1624945511" gamdl "https://music.apple.com/us/artist/rick-astley/669771"

支持的 URL 类型:单曲、专辑、播放列表、艺术家主页、音乐视频、Post 视频、Apple Music Classical,目录页和"资料库"里的都能识别。

批量下载:URL 列表 + 数据库去重

# 从文本文件读 URL gamdl -r urls.txt # 记录已下载媒体,重复运行自动跳过 gamdl "URL" --database-path "./downloads.db"

配合--overwrite还能强制重下。批量整理曲库时,数据库去重能省掉大量重复下载时间。

🎵 质量怎么选:无损、Atmos 和 4K 视频

码率不是玄学,是一串优先级列表

--song-codec-priority接受逗号分隔的编解码器列表,按顺序尝试,拿到为止。可选值包括aac-web(256kbps 网页流,默认)、aac、aac-he、atmos(Dolby Atmos 768kbps)、ac3、alac(24-bit/192kHz),还有ask触发交互式选择。

# 优先无损,失败降级到 AAC gamdl URL --song-codec-priority "alac,aac,aac-web" # 空间音频优先 gamdl URL --song-codec-priority "atmos,alac,aac"

ALAC 下载的避坑:需要 Wrapper v2

说实话,ALAC 不挂 Wrapper v2 基本跑不通——API 层面拿不到所需的密钥。我的建议是:追求无损就搭一个 Wrapper v2 服务器,它负责账号登录、播放信息请求和 FairPlay 解密,同时还能省掉 Cookie 文件。

gamdl URL --use-wrapper \ --wrapper-url http://127.0.0.1 \ --wrapper-decrypt-port 10020 \ --song-codec-priority "alac,aac"

其他编解码器(AAC、Atmos 等)不需要 Wrapper。

4K 音乐视频

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

注意 1440p 和 2160p 只有 H.265 提供;H.264 最高到 1080p。下载速度不满意可以换 N_m3u8DL-RE 引擎:--download-mode nm3u8dlre,它依赖 FFmpeg,路径可用--nm3u8dlre-path/--ffmpeg-path指定。

深度定制:目录结构与批量流程

一条配置改完目录结构

文件命名和目录层级全靠模板变量({album_artist}、{album}、{track:02d}、{date:%Y}等):

album_folder_template = {album_artist}/{date:%Y}/{album} playlist_folder_template = Playlists/{playlist} single_disc_file_template = {track:02d} {title} exclude_tags = comment,genre_id,storefront

不想要某些标签就写进--exclude-tags,封面想单独存一份用--save-cover --cover-size 2000。

元数据语言与歌词格式

--language zh-CN让标签显示中文(ISO 639-1 代码,对音乐视频不一定生效)。同步歌词支持lrc、srt(时间轴更准)、ttml三种格式,也可以--synced-lyrics-only只抓歌词不下载音频。

二次开发:gamdl 内部是怎么跑的

三层架构

  • API 层(gamdl/api/):用 httpx 直连 Apple Music 官方 AMP 接口,拿元数据、播放信息、许可证交换(license exchange)
  • 接口层(gamdl/interface/):解析 m3u8 流、挑分辨率和编码、通过 Widevine/PlayReady CDM 换取解密密钥
  • 下载器层(gamdl/downloader/):yt-dlp 只当"搬运工",解密、MP4 封装交给一个 Rust 写的原生扩展gamdl._ammuxer(源码在gamdl/downloader/ammuxer/)

整个流程是异步的:先并发解析所有 URL 得到下载队列,再逐个下载、解密、打标签。

当库用:10 行 Python 集成

import asyncio from gamdl.api import AppleMusicApi from gamdl.downloader import AppleMusicDownloader from gamdl.interface import AppleMusicInterface api = await AppleMusicApi.create_from_netscape_cookies("cookies.txt") interface = await AppleMusicInterface.create(apple_music_api=api) downloader = AppleMusicDownloader(interface=interface) async for media in downloader.get_download_item_from_url("URL"): await downloader.download(media)

官方 README 里的 Embedding 章节有完整版示例。

常见避坑:Gamdl 的边界在哪

  • 订阅是唯一门票:Cookie 失效或订阅过期,所有请求直接失败
  • 地区限制:商店front不同,可下载的内容池不同
  • 视频分辨率看原始素材:不是所有 MV 都有 4K
  • 项目态度明确:作者只收关键 bug 修复的 PR,新功能走 issue,别指望提交大功能被合入
  • 调试手段:--log-level DEBUG --log-file gamdl.log出问题先看日志,--no-exceptions让批量任务跳过坏链接继续跑

最后提醒:Gamdl 仅限自己订阅账号内的个人使用,下载内容不要二次分发,尊重版权方。工具本身是 MIT 协议,代码随便读。

把订阅里的歌变成硬盘里的文件——这条路上,gamdl 是目前最顺的一条。

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

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

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

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

立即咨询