Antra Spotify认证全解:sp_dc Cookie、TOTP匿名令牌与播放列表抓取技巧指南
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),仅供参考

相关新闻

三菱FX5U PLC的CC-Link主站配置与调试实战指南

三菱FX5U PLC的CC-Link主站配置与调试实战指南

1. 项目缘起与整体设计思路三菱FX5U系列PLC在中小型自动化项目里出镜率极高,自带以太网口、内置模拟量、支持高速计数,性价比很能打。但实际产线里,主控PLC往往不是孤岛,它得跟变频器、远程IO、伺服驱动器、温控模块这些设备打交道…

2026/10/7 13:43:43 阅读更多 →
Flutter在OpenHarmony上的短信二维码生成实战

Flutter在OpenHarmony上的短信二维码生成实战

周末接到一个需求:在OpenHarmony系统的设备上跑一个二维码工具类App,既要能扫码,又要能生成短信二维码,方便别人扫一下直接跳转发短信。团队里已有的技术栈是Flutter,App本身不大,不想为了这一个功能单独拉…

2026/10/7 13:43:43 阅读更多 →
论文反复修改到心累?资深教授推荐这几个一键生成论文工具

论文反复修改到心累?资深教授推荐这几个一键生成论文工具

想写论文又快又好,关键是用对 AI 工具、走对流程——资深教授普遍推荐:千笔AI(中文全流程首选) 豆包学术版(轻量高效) DeepSeek 学术版(理工 / 长文本) Grammarly Academic&#xff…

2026/10/7 13:43:43 阅读更多 →

最新新闻

90DaysOfDevOps 实践笔记:使用 Docker Compose 本地部署 ELK Stack 并完成日志可视化

90DaysOfDevOps 实践笔记:使用 Docker Compose 本地部署 ELK Stack 并完成日志可视化

文档/教程 【免费下载链接】90DaysOfDevOps This repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Pri…

2026/10/7 14:13:09 阅读更多 →
【Agent Harness实战】继“紧箍咒”之后,我又给AI Agent装了一套“进化系统”:用TaoToken统一Key打通多工具链路

【Agent Harness实战】继“紧箍咒”之后,我又给AI Agent装了一套“进化系统”:用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/7 14:13:09 阅读更多 →
ADODB 无连接 RecordSet 实战:用 TaoToken 统一 Key 打通离线数据校验

ADODB 无连接 RecordSet 实战:用 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/7 14:13:09 阅读更多 →
利用AI Agent开发AI新闻分析生产级项目(三):把Codex auth.json改到TaoToken

利用AI Agent开发AI新闻分析生产级项目(三):把Codex auth.json改到TaoToken

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

2026/10/7 14:13:09 阅读更多 →
用 PyPDF2 + reportlab 批量给多份装修合同 PDF 加骑缝水印和页码(附完整代码)

用 PyPDF2 + reportlab 批量给多份装修合同 PDF 加骑缝水印和页码(附完整代码)

做装修项目最怕两件事:合同版本混乱、纸质件被调包。把多份合同 PDF 统一加上"骑缝水印 连续页码",既能防篡改,又能让归档一目了然。本文用一个纯 Python 脚本,读完即可跑。 为什么不用在线工具 装修合同含业主姓名、电…

2026/10/7 14:13:09 阅读更多 →
深挖 Harness Engineering:从 Codex 到 Agent 的工程化落地全解析

深挖 Harness Engineering:从 Codex 到 Agent 的工程化落地全解析

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

2026/10/7 14:12:09 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

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

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

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

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

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

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 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/6 8:21:32 阅读更多 →
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/7 11:43:46 阅读更多 →
黑夜航拍船只数据集训练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/7 13:34:55 阅读更多 →