关于 douban-skill
douban-skill 通过 Frodo API 将豆瓣用户的图书、电影、音乐和游戏收藏导出为 CSV。它支持完整导出和基于 RSS 的增量更新,无需登录凭据、Cookie 或浏览器。
主要功能
- 01导出四类收藏为 CSV
- 02通过 RSS 增量更新
- 03生成兼容 Excel 的 UTF-8 BOM 文件
- 04导出前验证用户 ID
- 05无需登录、Cookie 或浏览器
适用场景
- 01归档豆瓣用户收藏
- 02建立已评分条目的 CSV 记录
- 03通过 RSS 更新近期条目
- 04整理收藏数据以供表格使用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ daymade/ claude-code-skills --skill douban-skill安装后在 Claude Code 中输入/douban-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitleaks.tomlreferences/troubleshooting.mdscripts/douban-frodo-export.pydouban-rss-sync.mjs详细介绍
豆瓣收藏导出
将豆瓣用户收藏(书籍、电影、音乐、游戏)导出为 CSV 文件。 豆瓣没有官方数据导出功能;官方 API 已于 2018 年关闭。
此技能可以做什么
- 通过 Frodo API 完整导出所有书籍/电影/音乐/游戏收藏
- 通过 RSS 增量同步每日更新(最近约 10 项)
- 输出 UTF-8 BOM 编码的 CSV(兼容 Excel),支持跨平台(macOS/Windows/Linux)
- 无需登录、Cookie 或浏览器
- 执行前验证用户 ID(ID 错误时立即失败)
此技能无法做什么
- 无法导出影评(长评)、笔记(读书笔记)或广播
- 无法在一次运行中按单个类别筛选(会同时导出全部 4 种类型)
- 无法访问私人资料页(会静默返回 0 项)
为什么使用 Frodo API(不要使用网页抓取)
豆瓣网页会使用 PoW(工作量证明)挑战,阻止所有 HTTP 抓取。
我们测试了 7 种方法,只有 Frodo API 可用。不要尝试网页抓取、
browser_cookie3+requests、使用 Cookie 的 curl 或 Jina Reader。
请参阅 references/troubleshooting.md,了解所有 7 种测试方法的完整失败记录及其失败原因。
安全与隐私
脚本中的 API 密钥和 HMAC 密钥是豆瓣的公开移动应用凭据,
从 APK 中提取而来。所有豆瓣应用用户共用这些凭据,它们不会识别你的身份。
脚本不会使用或存储任何个人凭据。数据仅从 frodo.douban.com 获取。
完整导出(主要方法)
DOUBAN_USER=<user_id> python3 scripts/douban-frodo-export.py
**查找用户 ID:**个人资料页 URL douban.com/people/<ID>/ 中,/people/ 后面的部分就是 ID。
如果用户提供完整 URL,脚本会自动提取 ID。
环境变量:
DOUBAN_USER(必需):豆瓣用户 ID(字母数字组合或纯数字,也可填写完整个人资料页 URL)DOUBAN_OUTPUT_DIR(可选):覆盖输出目录
默认输出目录(按平台自动检测):
- macOS:
~/Downloads/douban-sync/<user_id>/ - Windows:
%USERPROFILE%\Downloads\douban-sync\<user_id>\ - Linux:
~/Downloads/douban-sync/<user_id>/
**依赖项:**仅需 Python 3.6+ 标准库(可使用 python3 或 uv run)。
控制台输出示例:
Douban Export for user: your_douban_id
Output directory: /Users/you/Downloads/douban-sync/your_douban_id
=== 读过 (book) ===
Total: 639
Fetched 0-50 (50/639)
Fetched 50-100 (100/639)
...
Fetched 597-639 (639/639)
Collected: 639
=== 在读 (book) ===
Total: 75
...
--- Writing CSV files ---
书.csv: 996 rows
影视.csv: 238 rows
音乐.csv: 0 rows
游戏.csv: 0 rows
Done! 1234 total items exported to /Users/you/Downloads/douban-sync/your_douban_id
RSS 增量同步(补充方式)
DOUBAN_USER=<user_id> node scripts/douban-rss-sync.mjs
RSS 仅返回最近约 10 项(不支持分页)。请先使用完整导出,然后通过 RSS 获取每日更新。
输出格式
每位用户会生成 4 个 CSV 文件:
Downloads/douban-sync/<user_id>/
├── 书.csv (读过 + 在读 + 想读)
├── 影视.csv (看过 + 在看 + 想看)
├── 音乐.csv (听过 + 在听 + 想听)
└── 游戏.csv (玩过 + 在玩 + 想玩)
列:title, url, date, rating, status, comment
rating:★ 至 ★★★★★(未评分时为空)date:YYYY-MM-DD(用户标记该条目的日期)- 可安全多次运行(会用最新数据覆盖文件)
- 由于部分条目已下架,行数可能略少于豆瓣显示的数量
工作流
- 询问豆瓣用户 ID(从个人资料页 URL 获取,或接受完整 URL)
- 运行:
DOUBAN_USER=<id> python3 scripts/douban-frodo-export.py - 验证:控制台输出中的行数应与预期相符;使用
wc -l <output_dir>/*.csv检查 - (可选)设置 RSS 同步,以每日增量更新
故障排查
请参阅 references/troubleshooting.md,了解:
- Frodo API 身份验证详情(HMAC-SHA1 签名计算)
- 常见错误(代码 996 签名错误、速率限制、分页问题)
- 所有 7 种测试方法的完整失败记录及根本原因
- 替代方法(豆伴扩展、Tampermonkey 脚本、浏览器控制台)
- API 端点参考及响应格式