
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 登錄拿到的接口也不會下發(fā) ALAC 軌道。Gamdl Wrapper 的組合正是沖著這個痛點來的一個命令行工具加一個本地 Wrapper 服務把賬號認證、播放會話、FairPlay 解密全部自動化最終給你留下帶完整元數據的本地無損文件。二、五分鐘上手 ?安裝 gamdl需 Python 3.10并持有有效的 Apple Music 訂閱pip install gamdl啟動一個 Wrapper v2 服務器讓它在本地監(jiān)聽 HTTP 控制端點和 TCP 解密端口啟動方式以 Wrapper 項目官方文檔為準。把一首歌的鏈接扔給 gamdl啟用 wrapper 并指定 ALAC 優(yōu)先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首次運行自動創(chuàng)建命令行參數優(yōu)先于配置[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并持續(xù)維護會話狀態(tài)。gamdl 通過 gamdl/api/ 中的WrapperApi先校驗 Wrapper 的 API 版本發(fā)現未登錄再觸發(fā)登錄流程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的優(yōu)先級選中alac若沒啟用 wrappergamdl 會警告ALAC 大概率失敗。下載默認用 yt-dlp 把加密的 m4a 拉到臨時目錄也可切換--download-mode nm3u8dlre加速。解密與打包ammuxer 經 Wrapper 完成 TCP 解密與重組自動寫入標簽、封面、LRC 歌詞按模板生成最終文件名并落盤。五、三種實戰(zhàn)姿勢 5.1 整張專輯批量下載gamdl --use-wrapper --song-codec-priority alac \ https://music.apple.com/us/album/whenever-you-need-somebody-2022-remaster/1624945511把歌曲鏈接換成專輯鏈接即可整張專輯的每首都會以下載時選定的最高規(guī)格 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 為準。六、調優(yōu)與避坑 ??ALAC 必須配 wrapper命令行傳--use-wrapper最穩(wěn)只寫配置文件偶爾會被參數解析覆蓋。批量下載把 URL 存成文本文件后用--read-urls-as-txt讀取并發(fā)由 gamdl 內部異步隊列調度配合--database-path指定 SQLite 數據庫可記錄已下載項、避免重復下載。換下載引擎提速--download-mode nm3u8dlre用 N_m3u8DL-RE 替代 yt-dlp 拉流可搭配--nm3u8dlre-path、--ffmpeg-path指定可執(zhí)行文件位置。2FA 頻繁或登錄失敗確認 Wrapper 版本匹配gamdl 要求 wrapper-v2 API0.0.0.2不匹配會直接報錯必要時加--log-level DEBUG排查。端口Wrapper 的 HTTP 控制端點與 TCP 解密端口是兩回事非默認地址就同時傳--wrapper-url和--wrapper-decrypt-host/--wrapper-decrypt-port細節(jié)以項目官方文檔為準。七、寫在最后Gamdl 負責編排與落盤Wrapper 負責認證、播放與解密兩者集成后Apple Music 的 ALAC 無損音樂第一次變得能存。工具很好用但請只下載自己訂閱范圍內、當地法規(guī)允許的內容?!久赓M下載鏈接】gamdlA command-line app for downloading Apple Music songs, music videos and post videos.項目地址: https://gitcode.com/GitHub_Trending/ga/gamdl創(chuàng)作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考