Home
cd ../playbooks
Knowledge ManagementBeginner

Douban Collection Export

Export and sync Douban (豆瓣) book, movie, music, and game collections to local CSV via the Frodo API — full export plus RSS incremental sync.

10 minutes
By daymadeSource
#douban#export#csv#backup#data

Douban killed its official export in 2018, leaving your reading and watching history locked in. This playbook backs it all up to clean, Excel-ready CSV.

Who it's for: Douban users, readers, film buffs, data hoarders, personal-archive keepers

Example

"Export all my Douban movie ratings" → A UTF-8 CSV with every film, rating, and date, plus optional daily incremental sync

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

# Douban Collection Export

Export Douban user collections (books, movies, music, games) to CSV files.
Douban has no official data export; the official API shut down in 2018.

## What This Skill Can Do

- Full export of all book/movie/music/game collections via Frodo API
- RSS incremental sync for daily updates (last ~10 items)
- CSV output with UTF-8 BOM (Excel-compatible), cross-platform (macOS/Windows/Linux)
- No login, no cookies, no browser required
- Pre-flight user ID validation (fail fast on wrong ID)

## What This Skill Cannot Do

- Cannot export reviews (长评), notes (读书笔记), or broadcasts (广播)
- Cannot filter by single category in one run (exports all 4 types together)
- Cannot access private profiles (returns 0 items silently)

## Why Frodo API (Do NOT Use Web Scraping)

Douban uses PoW (Proof of Work) challenges on web pages, blocking all HTTP scraping.
We tested 7 approaches — only the Frodo API works. **Do NOT attempt** web scraping,
`browser_cookie3`+`requests`, `curl` with cookies, or Jina Reader.

See [references/troubleshooting.md](references/troubleshooting.md) for the complete
failure log of all 7 tested approaches and why each failed.

## Security & Privacy

The API key and HMAC secret in the script are Douban's **public mobile app credentials**,
extracted from the APK. They are shared by all Douban app users and do not identify you.
No personal credentials are used or stored. Data is fetched only from `frodo.douban.com`.

## Full Export (Primary Method)

```bash
DOUBAN_USER=<user_id> python3 scripts/douban-frodo-export.py
```

**Finding the user ID:** Profile URL `douban.com/people/<ID>/` — the ID is after `/people/`.
If the user provides a full URL, the script auto-extracts the ID.

**Environment variables:**
- `DOUBAN_USER` (required): Douban user ID (alphanumeric or numeric, or full profile URL)
- `DOUBAN_OUTPUT_DIR` (optional): Override output directory

**Default output** (auto-detected per platform):
- macOS: `~/Downloads/douban-sync/<user_id>/`
- Windows: `%USERPROFILE%\Downloads\douban-sync\<user_id>\`
- Linux: `~/Downloads/douban-sync/<user_id>/`

**Dependencies:** Python 3.6+ standard library only (works with `python3` or `uv run`).

**Example console output:**
```
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 Incremental Sync (Complementary)

```bash
DOUBAN_USER=<user_id> node scripts/douban-rss-sync.mjs
```

RSS returns only the latest ~10 items (no pagination). Use Full Export first, then RSS for daily updates.

## Output Format

Four CSV files per user:

```
Downloads/douban-sync/<user_id>/
├── 书.csv      (读过 + 在读 + 想读)
├── 影视.csv    (看过 + 在看 + 想看)
├── 音乐.csv    (听过 + 在听 + 想听)
└── 游戏.csv    (玩过 + 在玩 + 想玩)
```

Columns: `title, url, date, rating, status, comment`
- `rating`: ★ to ★★★★★ (empty if unrated)
- `date`: YYYY-MM-DD (when the user marked it)
- Safe to run multiple times (overwrites with fresh data)
- Row counts may be slightly below Douban's displayed count due to delisted items

## Workflow

1. Ask for Douban user ID (from profile URL, or accept full URL)
2. Run: `DOUBAN_USER=<id> python3 scripts/douban-frodo-export.py`
3. Verify: row counts in console output should match, check with `wc -l <output_dir>/*.csv`
4. (Optional) Set up RSS sync for daily incremental updates

## Troubleshooting

See [references/troubleshooting.md](references/troubleshooting.md) for:
- Frodo API auth details (HMAC-SHA1 signature computation)
- Common errors (code 996 signature error, rate limits, pagination quirks)
- Complete failure log of all 7 tested approaches with root causes
- Alternative approaches (豆伴 extension, Tampermonkey script, browser console)
- API endpoint reference with response format

Get new playbooks like this one

One email a week with new Claude Code workflows. Free, like everything here.

No spam. Unsubscribe anytime.

README.md

What This Does

Export and sync Douban (豆瓣) book, movie, music, and game collections to local CSV via the Frodo API — full export plus RSS incremental sync.

What's Inside

The template covers:

  • What This Skill Can Do
  • What This Skill Cannot Do
  • Why Frodo API (Do NOT Use Web Scraping)
  • Security & Privacy
  • Full Export (Primary Method)
  • RSS Incremental Sync (Complementary)

Quick Start

Step 1: Create a Project Folder

Make a dedicated folder for this workflow and open it in Claude Code.

Step 2: Download the Template

Click Download above to save the template, then drop it into your project as CLAUDE.md (or paste it into your existing one).

Step 3: Start Working

Tell Claude what you need in plain language — it will follow the template's workflow automatically. For example:

Export all my Douban movie ratings

Claude reads the template and runs the steps for you.

$Related Playbooks

Knowledge Management

Feishu Doc Scraper

Extract Feishu (Lark) Docs, Wiki collections, spreadsheets, and Minutes transcripts into faithful local Markdown via lark-cli — no LLM rewriting of the body.

15 minutes
Intermediate
Knowledge Management

LLM Wiki — Personal Knowledge Base

Build a persistent, LLM-maintained wiki that compiles, cross-references, and synthesizes knowledge from your raw sources.

10 minutes
Intermediate
Knowledge Management

Personal Context Library

Build a persistent knowledge base of context docs that Claude can access across all conversations - your business, career, goals, and more.

20 minutes
Intermediate
Knowledge Management

Personal Knowledge Base — Build a Searchable Second Brain

Build a searchable second brain that captures insights with topic clusters and connections between ideas. Never lose a brilliant idea again — Claude Code finds and synthesizes your notes on demand.

5 minutes
Beginner
Knowledge Management

Knowledge Base & FAQ Generation

Build structured knowledge bases and FAQ libraries from support tickets, documentation, and subject matter expertise.

5 minutes
Beginner
Knowledge Management

Quick Reference Guide Creator

Turn complex processes and tribal knowledge into scannable, one-page quick reference guides and cheat sheets.

10 minutes
Beginner
Knowledge Management

Tips & Knowledge Curator

Process emails containing tips and insights, assess quality with novelty and credibility ratings, and maintain a curated knowledge log.

15 minutes
Intermediate
Knowledge Management

Obsidian Knowledge System

Manage your Obsidian vault — auto-generate Maps of Content, build smart tagging taxonomies, discover hidden connections, audit vault health, and consolidate scattered notes.

10 minutes
Intermediate
Knowledge Management

Reading Analysis System

Turn passive reading into active learning — capture key arguments, connect books to each other, and identify what to read next to fill gaps.

5 minutes
Beginner
Knowledge Management

AI Knowledge Library with Historical Personas

Build a personal knowledge library where AI personas (Turing, Curie, and more) write editorials from your notes. A Zettelkasten-powered learning system using Claude Code.

20 minutes
Advanced
Knowledge Management

AI-Powered Second Brain

Transform your notes into a queryable knowledge base that synthesizes information and surfaces connections.

10 minutes
Intermediate
Knowledge Management

Book-to-Skill Converter

Convert any technical PDF or EPUB into a structured Claude Code skill — extracting named frameworks, principles, techniques, and anti-patterns into a reusable knowledge base with on-demand chapter files.

15 minutes
Intermediate

Browse all Knowledge Management playbooks →