Gamdl 实战:Apple Music 无损下载与 4K MV 快速上手

Gamdl 实战:Apple Music 无损下载与 4K MV 快速上手

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

想在 Apple Music 里看到整张专辑、整支 MV 都想留在本地?Gamdl(Glomatico's Apple Music Downloader)是一条命令就能办到的 Apple Music 下载工具:它不靠录制或转码,而是模拟客户端请求,直接从官方接口拉原始编码文件——AAC 256kbps、最高 24-bit/192kHz 的 ALAC 无损、4K H.265 音乐视频,标签和同步歌词一并写好。它只需要一个活跃订阅加一份浏览器 Cookie,不依赖图形界面,适合命令行用户和想把它嵌进自动化脚本的开发者。

跑起来:从零到第一次成功

这一节带你完成安装、前置准备和第一次下载,走完你能得到本地落盘的第一首歌。

1. 安装

要求 Python 3.10 或更高。确认版本并安装:

python --version
pip install gamdl

再确认命令装对了:

gamdl --version

成功标志:终端打印出版本号(当前为 3.9)。

2. 前置准备

需要两样东西:一个有活跃订阅的 Apple Music 账号;一份 Netscape 格式的 Cookie 文件。用浏览器的"Export Cookies"类扩展在登录状态下把 music.apple.com 的 Cookie 导出为cookies.txt,放在工作目录即可,也可用-c参数指定其他路径。

3. 第一条下载命令

打开任意歌曲的 Apple Music 分享链接,执行:

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

成功标志:终端出现Starting Gamdl 3.9与Downloading "..."进度,./Apple Music目录按"艺术家/专辑"结构生成.m4a文件,结尾打印Finished with 0 error(s)。默认同步歌词会以同名.lrc写入同一目录;首次运行还会在~/.gamdl/config.ini自动生成一份完整配置,命令行参数都有对应项,命令行值优先。

把核心功能用到实处

这一节按使用频率给出四个任务,每个都附验证方法,做完你可以把批量、无损、4K、命名规则都用上。

任务一:批量下载 + 去重

目标:把多个链接一次下完,定时重复运行不产生冗余文件。

做法:链接每行一条写入urls.txt,用-r读取文件(启用后参数里给的是 txt 路径而不是 URL),并用--database-path指定一个 SQLite 数据库用于去重:

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

验证:重跑一次,已下过的条目日志出现Skipping "...": Registered in database;history.db文件存在。去重逻辑就几十行,在 gamdl/cli/database.py,存的是媒体 ID 到本地路径的映射。

任务二:无损音质(ALAC 优先)

目标:优先拿 ALAC 无损,没有的曲目自动回落到 AAC 256kbps。

做法:ALAC 走非 Web 流,受 API 限制,纯 Cookie 模式大概率解不开,README 明确建议配合本地 Wrapper v2 服务。先在~/.gamdl/config.ini的[gamdl]段开启:

[gamdl] use_wrapper = true wrapper_url = http://127.0.0.1 wrapper_decrypt_port = 10020

再下歌:

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

验证:用 ffprobe 看文件编码,无损曲目应为alac(24-bit/192kHz 规格以源文件为准);没开 Wrapper 时终端会打印 ALAC 相关警告,看到它就说明该启用use_wrapper。

任务三:4K 音乐视频

目标:把 MV 下成 H.265 封装的 4K 文件。

做法:三个参数必须一起给——分辨率、编码器、容器。H.264 编码器最高只到 1080p,1440p/2160p 只有 H.265 提供:

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

验证:

ffprobe -v error -select_streams v:0 -show_entries stream=width,height,codec_name output.m4v

验证:输出应为 3840x2160、h265。

任务四:自定义目录与文件名

目标:用自己的模板控制归档结构,单独存封面。

做法:

gamdl URL --album-folder-template "{album_artist}/{date:%Y}/{album}" --single-disc-file-template "{track:02d} {title}" --save-cover --cover-format png --cover-size 2000

验证:输出目录变成艺术家/年份/专辑/01 曲目名.m4a结构,且每首歌旁多出一份 2000 像素 PNG 封面。所有可用模板变量({album}、{artist}、{track:02d}等)在 README 的 Template Variables 一节有完整清单。

适用边界:什么场景选它、什么场景别选

这一节帮你判断自己是否在它的射程内,避免装完才发现用不上。

适合:有活跃 Apple Music 订阅、想整专辑/整艺术家批量存档、需要去重和定时任务、或想把它当 Python 库嵌进自己项目(API → Interface → Downloader 三层各自独立,改哪层动哪层,见 gamdl/api/ 与 gamdl/downloader/)。不适合:Tidal、Spotify 等其他平台——它只对接 Apple Music 官方接口;无账号批量抓取;需要图形界面的场景。想下普通网络视频直接用 yt-dlp 即可,不必绕道。

出问题了先看这里

四个高频故障,按"现象 → 原因 → 解法"排好,先对号入座。

  1. 现象:启动即报No active Apple Music subscription found,什么都下不了。原因:Cookie 过期或订阅失效。解法:重新登录 music.apple.com,用扩展导出新的cookies.txt。

  2. 现象:选了alac却全部失败,终端有 ALAC 警告。原因:ALAC 需要 Wrapper 服务配合,纯 Cookie 模式 API 解不开。解法:本地跑起 Wrapper v2 并开启use_wrapper = true;不想折腾就退回aac-web(256kbps)。

  3. 现象:指定了 2160p,文件实际只有 1080p。原因:H.264 编码器不提供 4K 档。解法:--music-video-codec-priority中放h265。

  4. 现象:批量任务中途报错后停止。原因:默认会打印异常详情。解法:加--no-exceptions让单条失败只记警告不中断,配合--log-file ./gamdl.log事后排查。

Gamdl 的价值可以收在三句话:直连官方接口拿原始媒体,标签与同步歌词自动写齐,下载完成即成品;三层架构让二次开发只动一层;Python 库模式下get_download_item_from_url生成器加download方法就能驱动整条流水线。接下来三件事:

  • 跑gamdl --version与第一条下载命令,核对./Apple Music里的成品文件;
  • 打开~/.gamdl/config.ini,把output_path、song_codec_priority改成你的长期默认值;
  • 顺着 gamdl/api/、gamdl/downloader/ 读调用链,弄清"请求 → 解析 → 解密 → 封装"各在哪一层。

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

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

相关新闻

还在终端里逐条敲 brew?BrewUI:Homebrew 官方图形界面上手指南

还在终端里逐条敲 brew?BrewUI:Homebrew 官方图形界面上手指南

还在终端里逐条敲 brew?BrewUI:Homebrew 官方图形界面上手指南 【免费下载链接】BrewUI 📺 Homebrews official macOS GUI 项目地址: https://gitcode.com/GitHub_Trending/br/BrewUI 在终端里敲 Homebrew 命令不怕麻烦,但…

2026/10/21 1:37:25 阅读更多 →
450+技术报告高效阅读指南:从信息过载到技术决策落地

450+技术报告高效阅读指南:从信息过载到技术决策落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:37:25 阅读更多 →
如何用 Turing Smart Screen 打造 PC 系统监控副屏:新手完整上手指南

如何用 Turing Smart Screen 打造 PC 系统监控副屏:新手完整上手指南

如何用 Turing Smart Screen 打造 PC 系统监控副屏:新手完整上手指南 【免费下载链接】turing-smart-screen-python Unofficial Python system monitor and library for small IPS USB-C displays like Turing Smart Screen / TURZX 项目地址: https://gitcode.co…

2026/10/21 1:36:25 阅读更多 →

最新新闻

ComfyUI分镜生成实战:漫画第一格提示词调整+IPAdapter角色锁定,国漫雨巷第1格

ComfyUI分镜生成实战:漫画第一格提示词调整+IPAdapter角色锁定,国漫雨巷第1格

你是不是已经把规格书写好了、Seed 锁定了、IPAdapter 也装好了,但一打开分镜脚本 JSON,看到第 1 格那串长长的提示词,却不知道从哪里下手调? 别慌,我第一次跑第 1 格的时候,连出 8 张废图,不是构图偏了就是角色不像。 这篇就干一件事:带你用前面 27 篇积累的所有工具,…

2026/10/21 2:21:51 阅读更多 →
OpenMontage BFL FLUX 图像生成回调:Webhook 与轮询完整避坑指南

OpenMontage BFL FLUX 图像生成回调:Webhook 与轮询完整避坑指南

OpenMontage BFL FLUX 图像生成回调:Webhook 与轮询完整避坑指南 【免费下载链接】OpenMontage Worlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and production-knowledge files. Turn your AI …

2026/10/21 2:21:51 阅读更多 →
分享如何使用AI工具来释放C盘空间

分享如何使用AI工具来释放C盘空间

目录把问题丢给 AI顺着往下清理先查 C盘下的 ProgramData再查用户目录1. 更新器缓存2. 包管理器缓存3. 遗漏的部分差点误删npm 全局安装目录AI 工具的运行时目录AI 工具的数据目录先看报告,再下命令最后清了多少几点建议让AI给出了一个落地的提示词如果你想清理C盘&…

2026/10/21 2:21:51 阅读更多 →
栈溢出检测:不只是填充魔数 0xDEADBEEF,基于 MPU 的硬件级栈保护实现

栈溢出检测:不只是填充魔数 0xDEADBEEF,基于 MPU 的硬件级栈保护实现

摘要: 栈溢出是嵌入式领域最危险的 Bug 之一——它不立即崩溃,而是静默地踩踏相邻内存,等到别处出错时才暴露,导致调试方向完全跑偏。常见的 0xDEADBEEF 魔数填充检测只能在任务切换时发现,存在明显的漏检窗口&#xf…

2026/10/21 2:21:51 阅读更多 →
Jasna 片段编辑器:GPU 扫描约 2000 FPS,只修复视频里的打码片段

Jasna 片段编辑器:GPU 扫描约 2000 FPS,只修复视频里的打码片段

Jasna 片段编辑器:GPU 扫描约 2000 FPS,只修复视频里的打码片段 【免费下载链接】jasna Video restoration tool 项目地址: https://gitcode.com/GitHub_Trending/ja/jasna Jasna 是 JAV 视频马赛克修复工具,片段编辑器让你只挑打码的…

2026/10/21 2:21:51 阅读更多 →
机器人竞赛硬件入门:电源、电机、通信与调试避坑指南

机器人竞赛硬件入门:电源、电机、通信与调试避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 2:20:51 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →