
Antra Spotify认证全解sp_dc Cookie、TOTP匿名令牌与播放列表抓取技巧指南【免费下载链接】AntraA desktop music library builder that turns Spotify, Youtube Music Apple Music, Amazon Music, Tidal, Qobuz, and Deezer links into fully tagged local library in FLAC, ALAC, Dolby Atmos, AAC, or MP3.项目地址: https://gitcode.com/gh_mirrors/an/AntraAntra 是一款桌面音乐库构建工具能把 Spotify、YouTube Music、Apple Music、Amazon Music、Tidal、Qobuz、Deezer 的链接变成带完整标签的本地无损音乐库FLAC / ALAC / AAC / MP3。其中 Spotify 认证是整个流程的起点而它背后的 sp_dc Cookie 与 TOTP 匿名令牌机制正是 Antra 能无限制抓取你私有播放列表的关键。本文将带你从零看懂这三种认证方式并掌握公开播放列表抓取的实用技巧。什么是 Antra一条链接到本地音乐库在讲认证之前先花 30 秒了解 Antra 的完整工作流粘贴链接— 在 URL 标签页粘贴 Spotify 播放列表/专辑链接选择格式— 右上角一键切换 FLAC、ALAC、AAC、MP3自动入库— 曲目被多音源解析、下载并按艺术家/专辑结构归档完整标签— 标题、艺人、专辑、封面、流派、歌词自动写入文件最终你会得到一个可直接接入 Navidrome、Jellyfin、Plex 的本地音乐库。详见功能文档 FEATURES.md 与项目说明 README.md。Antra 的三种 Spotify 认证方式Antra 对 Spotify 的认证采用「优先级降级」策略核心逻辑在 antra/core/spotify_fetcher.py优先级方式特点配置项⭐ 首选sp_dc Cookie无 API 限制有效期约一年SPOTIFY_SP_DC备用手动 Access Token紧急通道仅约 1 小时有效SPOTIFY_ACCESS_TOKEN兜底PKCE OAuth 浏览器登录无需开发者账号首次授权后静默续期本地缓存文件三者实现均在 antra/core/spotify_auth.py配置读取见 antra/core/config.py。方式一sp_dc Cookie推荐如何获取约 2 分钟浏览器登录 open.spotify.com打开开发者工具 → Application → Cookies → open.spotify.com找到名为sp_dc的 Cookie复制它的值以AQ...开头在 Antra 的Settings → Spotify Account中粘贴或用 CLI 保存antra spotify set-cookie sp_dc值该 Cookie 有效期约一年一次配置长期可用并且不受开发者 API 的调用限制——这正是 Antra 推荐它的原因。若你的 IP 恰好被 Spotify 拦截校验可加--force强制保存。方式二手动 Access Token紧急备用打开 open.spotify.com 的网络请求面板找到任意接口返回中的accessToken字段然后antra spotify set-token accessToken值注意Token 通常只存活 1 小时且无法自动刷新只适合临时救急见 antra/cli/spotify_cli.py。方式三PKCE OAuth 浏览器登录antra spotify login首次运行会打开系统浏览器让你登录Antra 自动捕获会话此后每次运行都用缓存的 refresh token静默续期无需再次登录。用户全程不需要注册 Spotify 开发者应用。授权范围scope定义在 antra/core/spotify_auth.py私密播放列表读取、协作播放列表、已收藏歌曲、关注的艺人。三种方式就绪后随时用下面命令体检当前状态antra spotify status # 查看当前生效的认证方式 antra spotify test-cookie # 真实请求验证 Cookie 是否有效 antra spotify playlists # 列出你的全部播放列表TOTP 匿名令牌sp_dc Cookie 背后的原理这是本文最硬核也最有趣的部分。为什么 Antra 拿到一个浏览器 Cookie 就能以「你」的身份访问 API答案在 antra/core/spotify_auth.py 的SpotifyWebPlayerAuth类里。第一步绕开被封的接口。Spotify 官方网页版获取令牌的接口/get_access_token对所有脚本客户端做了 Cloudflare IP 封锁直接返回 403。Antra 改走网页播放器专用端点/api/token该端点对携带正确请求头的客户端开放。第二步TOTP 动态口令。每次请求令牌时Antra 用内置的 TOTP 密钥基于pyotp库按当前时间生成一个动态验证码连同productTypeweb-player、totpVer等参数一起提交——模拟真实网页播放器的心跳行为totp pyotp.TOTP(_SP_TOTP_SECRET) code totp.now() # 请求参数: reasoninit, productTypeweb-player, totpcode ...第三步匿名令牌判定。服务端返回一个accessToken并附带isAnonymous标志。Antra 会严格检查它见 antra/core/spotify_auth.pyisAnonymousFalse→ Cookie 有效令牌绑定你的真实账号 ✅isAnonymousTrue→ Cookie 已过期只拿到了匿名令牌提示你从浏览器重新抓取 ❌第四步令牌保鲜与体检。令牌过期时间从响应中的时间戳解析is_valid()方法还会真实请求/v1/me端点做心跳验证遇到 429 限流会读取Retry-After并记录告警让你知道是「账号问题」还是「被限速了」。小结sp_dc Cookie 是「钥匙」TOTP 是「密码锁」两者结合换回一个与你账号等价的访问令牌——这就是「匿名令牌」名字背后不匿名的玄机。公开播放列表抓取技巧认证就绪后抓取环节的技巧体现在 antra/core/spotify_fetcher.py 中技巧一自动分页。播放列表曲目走_paginate()循环每页limit100顺着next指针翻到底几千首的歌单也能完整拉取中途遇到 401令牌过期会自动强制刷新令牌后重试。技巧二字段裁剪fields 参数。请求时只索取需要的字段——歌名、艺人、专辑、时长、ISRC、封面——而不是完整的曲目对象。网络体积大幅下降解析速度更快。技巧三链接格式全兼容。_extract_playlist_id()同时识别三种输入粘贴任何格式都能用网页链接https://open.spotify.com/playlist/xxxx协议 URIspotify:playlist:xxxx裸 IDxxxx技巧四私有播放列表同样可抓。由于走的是你账号自己的令牌fetch_playlist_tracks()对公开与私有播放列表一视同仁私有列表在 CLI 的playlists命令输出中会标注PUBLIC: No。技巧五限流自愈。遇到 429 时按 Spotify 返回的Retry-After等待重试上限 60 秒配合 4 次重试窗口大多数瞬时限流都能自动消化。认证好的账号还可以直接在My Library标签页浏览你的已收藏歌曲、Discover Weekly、Daily Mixes、保存专辑与关注艺人点击卡片即下载无需复制粘贴任何 URL常见问题速查症状原因处理提示sp_dc cookie produced an anonymous tokenCookie 过期约一年期限浏览器重新登录并复制新sp_dc校验时返回 403 Blocked当前 IP 被 Spotify 拦截set-cookie ... --force强制保存同步时再试频繁 429请求过快触发限流等待后重试Antra 会自动按Retry-After退避想彻底登出—antra spotify logout清除 PKCE 缓存Cookie 则删除.env中的SPOTIFY_SP_DC小结日常使用配一次 sp_dc Cookie 即可一年无忧且无 API 限制救急通道手动 Access Token 撑过 1 小时PKCE 登录作为永久兜底原理亮点TOTP 动态口令 /api/token端点 isAnonymous校验构成了一套优雅的网页播放器认证方案抓取要点自动分页、字段裁剪、全格式链接识别、429 自愈想深入代码核心文件就两个认证在 antra/core/spotify_auth.py抓取在 antra/core/spotify_fetcher.pyCLI 命令实现在 antra/cli/spotify_cli.py。【免费下载链接】AntraA desktop music library builder that turns Spotify, Youtube Music Apple Music, Amazon Music, Tidal, Qobuz, and Deezer links into fully tagged local library in FLAC, ALAC, Dolby Atmos, AAC, or MP3.项目地址: https://gitcode.com/gh_mirrors/an/Antra创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考