ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Gamdl + Wrapper:5 分钟把 Apple Music 的 ALAC 无损音乐存进本地

Gamdl + Wrapper:5 分钟把 Apple Music 的 ALAC 无损音乐存进本地 Gamdl Wrapper5 分钟把 Apple Music 的 ALAC 无损音乐存进本地【免费下载链接】gamdlA command-line app for downloading Apple Music songs, music videos and post videos.项目地址: https://gitcode.com/GitHub_Trending/ga/gamdlGamdlGlomaticos Apple Music Downloader是一款 Python 命令行工具配合 Wrapper 中间服务可以突破 Apple Music 网页 API 的格式限制把最高 24-bit/192kHz 的 ALAC 无损音频连同封面、歌词、标签一起下载到本地。一、痛点与方案 Apple Music 的无损音质有个尴尬之处能听不能存。网页端 API 只肯给你 AAC 等有损的 web 流就算你的订阅里有 ALAC 甚至 24bit/192kHz 专辑普通 cookie 登录拿到的接口也不会下发 ALAC 轨道。Gamdl Wrapper 的组合正是冲着这个痛点来的一个命令行工具加一个本地 Wrapper 服务把账号认证、播放会话、FairPlay 解密全部自动化最终给你留下带完整元数据的本地无损文件。二、五分钟上手 ⚡安装 gamdl需 Python 3.10并持有有效的 Apple Music 订阅pip install gamdl启动一个 Wrapper v2 服务器让它在本地监听 HTTP 控制端点和 TCP 解密端口启动方式以 Wrapper 项目官方文档为准。把一首歌的链接扔给 gamdl启用 wrapper 并指定 ALAC 优先gamdl --use-wrapper \ --wrapper-url http://127.0.0.1:8080 \ --song-codec-priority alac \ https://music.apple.com/us/album/never-gonna-give-you-up-2022-remaster/1624945511?i1624945512wrapper 未登录时会交互式提示你输入 Apple ID 和 2FA 验证码地址按你的实际部署端口填写。ALAC 最高可到 24-bit/192kHz。常用设置写进配置文件~/.gamdl/config.iniWindows 为%USERPROFILE%\.gamdl\config.ini首次运行自动创建命令行参数优先于配置[gamdl] use_wrapper true wrapper_url http://127.0.0.1:8080 song_codec_priority alac三、它凭什么能下无损Wrapper 集成原理Apple Music 的网页 API 只吐出 AAC 等 web 流无损的 ALAC 需要走非 web播放链路。普通 cookie 拿不到这个权限而 Wrapper 是一个常驻服务负责补上三块拼图。3.1 认证会话不再依赖浏览器 cookieWrapper 服务端完成 Apple ID 登录含 2FA并持续维护会话状态。gamdl 通过 gamdl/api/ 中的WrapperApi先校验 Wrapper 的 API 版本发现未登录再触发登录流程from gamdl.api import WrapperApi wrapper_api await WrapperApi.create( base_urlhttp://127.0.0.1, decrypt_host127.0.0.1, decrypt_port10020, get_credentials_funcInteractivePrompts.get_wrapper_credentials, get_2fa_codeInteractivePrompts.get_wrapper_2fa_code, )有了 Wrappercookies.txt 这一步可以直接跳过。3.2 播放会话拿得到 ALAC 轨道的流地址启用 wrapper 后媒体信息请求走 Wrapper 建立的播放会话返回的流地址才可能包含 ALAC 这类非 web编解码器轨道——这是网页 API 给不了的。ALAC 在 gamdl/interface/ 中被定义为SongCodec.ALAC最高 24-bit/192kHz。3.3 DRM 解密FairPlay 流交给 Wrapper 处理ALAC 流带 FairPlay 加密gamdl 把加密流送到 Wrapper 的 TCP 解密端口--wrapper-decrypt-port默认 10020由 gamdl/downloader/ 内置的 Rust 扩展 ammuxer 完成解密、重组并写出 MP4/M4A 文件元数据、封面、歌词一并写入。四、ALAC 下载全流程 获取媒体信息通过 Wrapper 的播放接口拿到该曲目的流地址与密钥包含可用编解码器列表。选择编解码器按--song-codec-priority的优先级选中alac若没启用 wrappergamdl 会警告ALAC 大概率失败。下载默认用 yt-dlp 把加密的 m4a 拉到临时目录也可切换--download-mode nm3u8dlre加速。解密与打包ammuxer 经 Wrapper 完成 TCP 解密与重组自动写入标签、封面、LRC 歌词按模板生成最终文件名并落盘。五、三种实战姿势 5.1 整张专辑批量下载gamdl --use-wrapper --song-codec-priority alac \ https://music.apple.com/us/album/whenever-you-need-somebody-2022-remaster/1624945511把歌曲链接换成专辑链接即可整张专辑的每首都会以下载时选定的最高规格 ALAC 落盘默认输出到./Apple Music。5.2 艺术家全作品收集gamdl --use-wrapper --song-codec-priority alac \ --artist-auto-select all-albums \ https://music.apple.com/us/artist/rick-astley/669771--artist-auto-select可选main-albums、live-albums、singles-eps、all-albums、top-songs等不传该参数时会进入交互式菜单用方向键 空格勾选要下载的内容。5.3 自定义目录与文件命名gamdl --use-wrapper --song-codec-priority alac \ --album-folder-template {album_artist}/{album}/{date:%Y} \ --single-disc-file-template {track:02d} {title} \ https://music.apple.com/us/album/whenever-you-need-somebody-2022-remaster/1624945511目录变成艺人/专辑/年份文件带曲目编号{artist}、{playlist_title}等模板变量以 README 为准。六、调优与避坑 ⚠️ALAC 必须配 wrapper命令行传--use-wrapper最稳只写配置文件偶尔会被参数解析覆盖。批量下载把 URL 存成文本文件后用--read-urls-as-txt读取并发由 gamdl 内部异步队列调度配合--database-path指定 SQLite 数据库可记录已下载项、避免重复下载。换下载引擎提速--download-mode nm3u8dlre用 N_m3u8DL-RE 替代 yt-dlp 拉流可搭配--nm3u8dlre-path、--ffmpeg-path指定可执行文件位置。2FA 频繁或登录失败确认 Wrapper 版本匹配gamdl 要求 wrapper-v2 API0.0.0.2不匹配会直接报错必要时加--log-level DEBUG排查。端口Wrapper 的 HTTP 控制端点与 TCP 解密端口是两回事非默认地址就同时传--wrapper-url和--wrapper-decrypt-host/--wrapper-decrypt-port细节以项目官方文档为准。七、写在最后Gamdl 负责编排与落盘Wrapper 负责认证、播放与解密两者集成后Apple Music 的 ALAC 无损音乐第一次变得能存。工具很好用但请只下载自己订阅范围内、当地法规允许的内容。【免费下载链接】gamdlA command-line app for downloading Apple Music songs, music videos and post videos.项目地址: https://gitcode.com/GitHub_Trending/ga/gamdl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表