Douban Sync
name: douban-sync
by cosformula · published 2026-03-22
$ claw add gh:cosformula/cosformula-douban-sync-skill---
name: douban-sync
description: Export and sync Douban (豆瓣) book/movie/music/game collections to local CSV files (Obsidian-compatible). Use when the user wants to export their Douban reading/watching/listening/gaming history, set up incremental sync via RSS, or manage their Douban data locally.
metadata: {"openclaw": {"requires": {"env": ["DOUBAN_USER"]}, "primaryEnv": "DOUBAN_USER"}}
---
# Douban Sync
Export Douban collections (books, movies, music, games) to CSV and keep them in sync via RSS.
Two Modes
1. Full Export (first time)
Use the browser tool to scrape all collection pages. Requires the user to be logged into Douban.
browser → douban.com/people/{USER_ID}/{category}?start=0&sort=time&mode=listCategories and URL paths:
Each page shows up to 30 items in list mode (some pages may have fewer due to delisted entries). Paginate with `?start=0,30,60...` — the script uses the paginator's "next" button to determine whether to continue.
**Rate limiting:** Wait 2-3 seconds between pages. If blocked, wait 30 seconds and retry.
**Scripts:**
2. Incremental Sync (daily, via RSS)
Run `scripts/douban-rss-sync.mjs` — no login needed.
node scripts/douban-rss-sync.mjs**Setup:** Set environment variables:
**Recommended:** Add a daily cron job for automatic sync.
Output Format
Four CSV files per user in the output directory:
douban-sync/
└── {user_id}/
├── 书.csv
├── 影视.csv
├── 音乐.csv
└── 游戏.csvCSV columns:
title,url,date,rating,status,comment
"书名","https://book.douban.com/subject/12345/","2026-01-15","★★★★★","读过","短评内容"Deduplication
Both full export and RSS sync deduplicate by Douban URL — safe to run multiple times.
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...