喜马拉雅音频下载器 · 重启版
下载你有权访问的喜马拉雅内容,支持单曲、专辑、断点续传、失败重试与任务恢复。
默认链路使用纯 Python 在本地生成 xm-sign,再通过 HTTP 请求播放信息。
Google Chrome 或 Microsoft Edge 只用于交互登录,以及 Cookie 缓存失效时从专用 Profile 读取已持久化会话,不负责默认下载请求。
xm-sign 只满足特定接口的签名要求,不能替代登录与内容授权。粘贴链接或 ID 即可下载单个音频或整张专辑,支持 --range 指定区间与三档音质选择,音质缺失时自动回退到可用规格。
已存在的完整文件自动跳过,未完成的 .part 文件支持 HTTP Range 续传;Ctrl-C 保存进度优雅退出,随后 xdl resume 接着下。
xdl web 启动本地界面:登录、新建任务、选音质与区间、恢复任务、查看风控报告、调整设置,都在浏览器里完成。
识别到风控信号会停止整批并只提示一次;可选 --risk-poll 自动等待恢复后继续下载,等待期间不反复请求。
要求:Python 3.10+、Google Chrome 或 Microsoft Edge。
pip install -e .
# 启动本地 WebUI(自动打开 http://127.0.0.1:8787)
xdl web
# 或者继续使用 CLI:先登录,再下载
xdl login
xdl track <音频链接或 trackId>
xdl album <专辑链接或 albumId>
首次登录会在浏览器中完成交互验证,Cookie 与设备指纹保存在专用 Profile 中(~/.xdl/),成功后无需再刷新。两个浏览器都装了可以用 --browser edge 指定其一。
xdl track -F <链接或ID> # 列出所有可用音质格式,不下载
xdl album <链接或ID> --range 1-20 # 只下载指定区间
xdl album <链接或ID> --quality high # high / standard / low
xdl --concurrency 3 album <链接或ID> # 自定义异步并发数(默认 1)
xdl --risk-poll album <链接或ID> # 风控后自动轮询恢复
xdl resume # 恢复未完成任务
xdl risk-report # 汇总本地风控记录,不发网络请求
WebUI 默认只监听本机回环地址,没有远程访问认证,请不要把它直接暴露到公网。
downloads,可用 --download-dir 修改。