SuperAPI AI 工具集

douban-skill

办公与效率

查看项目

更新于 10-15 12:39

技能介绍

豆瓣收藏导出工具(douban-skill)用于把豆瓣用户的书影音游收藏导出为本地 CSV 文件。由于豆瓣没有官方数据导出,官方 API 也在 2018 年停止服务,该技能借助 Frodo API 完成数据获取。

用途 该技能面向需要备份或分析自己豆瓣收藏的用户。它可以将图书、电影、音乐、游戏四类收藏全量导出,也支持通过 RSS 做每日增量同步。

主要能力

  • 通过 Frodo API 全量导出所有图书/电影/音乐/游戏收藏。
  • 通过 RSS 增量同步,每天更新最近约 10 条。
  • 输出 CSV,使用 UTF-8 BOM 编码以兼容 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。

安全与隐私 脚本中的 API key 和 HMAC secret 是豆瓣公开的移动 App 凭据,从 APK 中提取,由所有豆瓣 App 用户共享,不标识个人。不使用也不存储任何个人凭据,数据仅从 frodo.douban.com 获取。

全量导出(主要方式) 命令:DOUBAN_USER=<user_id> python3 scripts/douban-frodo-export.py 用户 ID 查找:个人主页 URL 为 douban.com/people/<ID>/,ID 在 /people/ 之后。如果用户提供完整 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 做每日更新。

输出格式 每个用户生成四个 CSV 文件: Downloads/douban-sync/<user_id>/ ├── 书.csv (读过 + 在读 + 想读) ├── 影视.csv (看过 + 在看 + 想看) ├── 音乐.csv (听过 + 在听 + 想听) └── 游戏.csv (玩过 + 在玩 + 想玩) 列:title、url、date、rating、status、comment

  • rating:★ 到 ★★★★★(未评分则为空)。
  • date:YYYY-MM-DD(用户标记的日期)。
  • 可安全多次运行(会用新数据覆盖)。
  • 由于下架条目,行数可能略低于豆瓣显示的数量。

工作流程

  1. 询问豆瓣用户 ID(从主页 URL 获取,或接受完整 URL)。
  2. 运行:DOUBAN_USER=<id> python3 scripts/douban-frodo-export.py
  3. 校验:控制台输出的行数应一致,可用 wc -l <output_dir>/*.csv 检查。 4.(可选)设置 RSS 同步用于每日增量更新。

故障排查 references/troubleshooting.md 包含:

  • Frodo API 鉴权细节(HMAC-SHA1 签名计算)。
  • 常见错误(code 996 签名错误、速率限制、分页怪癖)。
  • 全部 7 种测试方式的完整失败记录及根本原因。
  • 替代方案(豆伴扩展、Tampermonkey 脚本、浏览器控制台)。
  • API 端点参考及响应格式。

适用场景 适合需要备份个人豆瓣收藏、做个人数据归档或后续本地分析的用户,尤其适合批量导出全部历史记录。

限制 仅能导出图书、电影、音乐、游戏收藏,无法导出长评、笔记、广播;一次运行无法按单一类别筛选;无法访问私密主页。