spotify-history

🎵 安全轻量的Spotify音乐数据管家

基于Spotify官方API的听歌历史与推荐工具,纯Python标准库实现,零第三方依赖,安全获取个人音乐数据与智能推荐。

收藏
4.1k
安装
1.1k
版本
v1.1.0
CLS 安全性认证2026-05-20
点击查看完整报告 >

使用说明

核心用法

spotify-history 是一款连接 Spotify Web API 的个人音乐数据助手,主要提供三类核心功能:一是获取用户最近播放记录(recent),支持查看近50首播放历史;二是分析音乐品味偏好,可查询不同时间维度(近4周/6个月/全部时间)的热门艺术家(top-artists)和热门曲目(top-tracks);三是基于用户历史生成个性化音乐推荐(recommend)。使用方式灵活,既支持命令行直接调用,也可作为 Agent 技能集成到对话系统中,让 AI 助手根据用户听歌习惯主动推荐相似艺人。

显著优点

该技能的最大亮点在于极致的轻量与安全设计。全程仅依赖 Python 标准库(http.server、urllib、json 等),完全规避了第三方 PyPI 包的供应链攻击风险。OAuth 2.0 认证流程设计规范,采用本地 127.0.0.1 回调服务器,确保授权码不经过任何中间服务器。权限控制严格遵循最小化原则,仅申请 4 项只读权限(user-read-recently-played、user-top-read 等),不涉及播放控制或用户隐私数据修改。凭证存储采用 Unix 600 权限(仅所有者可读写),且支持环境变量与文件双模式配置,兼顾安全性与灵活性。此外,Token 自动刷新机制完善,用户一次授权后可长期免维护使用。

潜在缺点与局限性

作为社区开发的非官方工具,该技能缺乏 Spotify 官方背书,未来若 Spotify API 政策变更(如权限收紧、端点废弃),维护响应存在不确定性。功能层面目前仅覆盖读取类操作,无法实现播放控制、歌单创建等进阶功能。推荐算法完全依赖 Spotify 官方接口,缺乏自定义权重或跨平台数据融合能力。对于无浏览器环境的 headless 服务器,虽然支持 --headless 模式,但需手动复制粘贴回调 URL,体验略繁琐。此外,Refresh Token 长期有效虽便利,但一旦设备丢失且未及时撤销,存在凭证泄露后的持续访问风险。

适合的目标群体

该技能特别适合三类用户:音乐数据爱好者,希望量化分析自己的听歌习惯与品味演变;AI 助手重度用户,期望在对话中自然获取音乐推荐而无需切换应用;隐私敏感型用户,追求数据本地化处理、拒绝第三方数据聚合服务。开发者群体亦可将其作为 Spotify API 集成的参考实现,学习标准库级别的 OAuth 流程设计。

使用风险与注意事项

常规风险主要包括:OAuth 凭证(Client Secret)需用户自行保管,若误提交至代码仓库或共享设备可能导致账户被冒用;Token 文件虽受权限保护,但 root 用户或物理接触仍可读取,建议配合磁盘加密使用;长期运行的 headless 环境若未妥善保管 refresh token,存在被恶意脚本利用的潜在窗口。性能方面,纯标准库实现虽安全但效率略低于专业 HTTP 库,高频调用时建议添加本地缓存层。

安全解读

核心用法

spotify-history 是一款基于 Spotify Web API 的个人音乐数据查询工具,支持获取近期播放记录、统计热门艺人与歌曲、生成个性化推荐。提供命令行与脚本两种使用方式,适合音乐品味分析、听歌报告生成等场景。

主要功能指令:

  • python3 scripts/spotify-api.py recent — 最近播放历史
  • python3 scripts/spotify-api.py top-artists medium_term — 热门艺人(短/中/长期)
  • python3 scripts/spotify-api.py top-tracks long_term — 热门歌曲
  • python3 scripts/spotify-api.py recommend — 基于品味的智能推荐
  • python3 scripts/spotify-api.py json /me — 原始 API 调用

OAuth 授权流程: 首次使用需在 Spotify Developer Dashboard 创建应用,获取 Client ID/Secret,运行 setup.sh 向导完成授权。Token 自动刷新,支持无浏览器环境(--headless)。

---

显著优点

1. 零第三方依赖:纯 Python 标准库实现,无 pip 依赖包,供应链攻击面极小
2. 安全凭证管理:Token 存储于 ~/.config/spotify-clawd/token.json,权限严格设为 0600(仅用户可读)

3. 官方 API 直连:仅与 api.spotify.comaccounts.spotify.com 通信,TLS 1.2+ 加密

4. 轻量易部署:284 行代码,5 个文件,支持本地快速配置

5. 灵活时间维度:支持 4 周/6 个月/全部时间三种统计周期

---

潜在缺点与局限性

1. 一次性配置门槛:需注册 Spotify 开发者账号、创建应用、配置 Redirect URI,对非技术用户不够友好
2. 仅限个人数据:无法查询他人账户或公开趋势数据

3. 速率限制:受 Spotify API 配额限制,高频调用可能触发限流

4. 功能边界:仅支持读取操作,无法播放控制或修改播放列表

5. 离线不可用:完全依赖网络与 Spotify 服务可用性

---

适合人群

  • 音乐数据爱好者,希望量化分析个人听歌习惯
  • 开发者构建个人音乐年报、听歌可视化工具
  • 智能助手用户,需上下文感知推荐(结合 Agent 知识库)
  • 隐私敏感用户,偏好本地化处理而非云端同步服务

---

常规风险

  • Token 泄露风险:虽文件权限正确,但若设备被入侵,Refresh Token 可能被滥用
  • 凭证配置错误:Redirect URI 配置不当会导致授权失败(需严格使用 http://127.0.0.1:8888/callback
  • OAuth 范围较宽:申请 user-read-recently-played 等权限时,用户需理解数据访问范围
  • 服务依赖:Spotify API 政策变更或账户封禁可能影响功能

---

安全认证结论

经 CLS-Certify v2.1.0 扫描,本 Skill 获得 S 级(优秀) 安全评级,综合得分 85。静态/动态分析、依赖审计、网络分析、隐私合规、威胁情报五项指标均通过,符合 GDPR/CCPA 合规要求。无提示词投毒、权限升级诱导或隐蔽数据外传行为。

spotify-history 内容

scripts文件夹
手动下载zip · 7.3 kB
setup.shtext/x-shellscript
请选择文件