Douban (豆瓣) Movie & TV Trending Scraper avatar

Douban (豆瓣) Movie & TV Trending Scraper

Pricing

from $0.50 / 1,000 discovered titles

Go to Apify Store
Douban (豆瓣) Movie & TV Trending Scraper

Douban (豆瓣) Movie & TV Trending Scraper

Discover trending and top-rated movies & TV on Douban (豆瓣) with their ratings — no login, no account, no cookies, no API key.

Pricing

from $0.50 / 1,000 discovered titles

Rating

0.0

(0)

Developer

Berkan Kaplan

Berkan Kaplan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Douban (豆瓣) Movie & TV Scraper — Ratings, Reviews, Comments & Hot Lists

Scrape Douban (豆瓣) — China's most trusted movie & TV community — into clean datasets: trending & top-rated lists, full detail (cast, crew, IMDb id, synopsis), Douban ratings, long-form reviews, and short comments with location — all with no login, no account, no cookies and no API key.

🔥 What is it — and when should you use it?

Douban is China's IMDb + Letterboxd: the authoritative source for 豆瓣评分 (Douban ratings) on films and shows. This Actor gives you four things in one, keyless:

  1. Trending / top-rated discovery — 18 curated movie & TV lists (hot, newest, top-rated, hidden gems, by region & type).
  2. Full title detail — rating & vote count, directors, full cast, genres, countries, languages, runtime, IMDb id, alternate titles, synopsis.
  3. Long-form reviews — author, title, rating, date, snippet, review URL.
  4. Short comments with location — author, rating, date, province/location, useful votes, text.

Point it at trending lists, at specific Douban subject IDs/URLs, or turn on Enrich trending to do everything in one zero-config run. Use it for film/TV research, recommendation engines, sentiment & audience analysis, and market tracking.

🤖 Use with AI agents

Pay-per-event and agent-friendly: run with zero input, or pass subject IDs. Each result row is one clean record tagged with its resultType. Point any MCP-enabled assistant (Claude, ChatGPT, Cursor) at it on the Apify MCP server, or call the Apify API. You pay per delivered result; empty runs are free.

📋 Overview

Sourcemovie.douban.com (discovery JSON + detail/review/comment pages)
AuthNone — no login, cookie, account or API key
MethodPure HTTP over a rotating Apify proxy exit; anti-bot proof-of-work solved in-process (no browser)
Outputhot, detail, review, comment rows
BillingPay per delivered result (per type)

✨ Features

  • 🔓 Keyless — no login, no account, no cookies. The Douban "sec" anti-bot proof-of-work is solved in-process; no browser, no CAPTCHA service.
  • 🎯 Zero-config — run empty for all trending lists; add enrichTrending for full detail + reviews + comments on everything discovered.
  • ⭐ Trusted ratings — the 豆瓣评分 and vote count on every rated title.
  • 🎬 Rich detail — directors, full cast, genres, countries, languages, runtime, IMDb cross-id, aka titles, synopsis.
  • 💬 Reviews & comments — long-form reviews and short comments with province/location.
  • 🧱 Reliable — a sticky exit holds anti-bot clearance (one proof-of-work unlocks many pages); blocked exits rotate.
  • 🧭 Honest scope — every field is null when Douban did not carry it; never a fake value.

🎬 Quick Start

Trending + full enrichment (everything), zero-config:

{ "categories": ["movie_hot", "movie_top"], "enrichTrending": true, "scrapeComments": true }

Deep-scrape specific titles:

{ "subjectIds": ["1292052", "https://movie.douban.com/subject/37516455/"], "scrapeReviews": true, "scrapeComments": true }

Just the trending lists (cheapest):

{ "categories": ["movie_hot", "tv_hot"], "maxResults": 500 }

📥 Input

FieldTypeDescription
categoriesarrayTrending lists (movie 9 + TV 9). Empty + no IDs = all.
sortstringrecommend, time, rank.
maxResultsintegerCap on trending titles. Default 500.
subjectIdsarrayDouban subject IDs or URLs to deep-scrape.
enrichTrendingbooleanDeep-scrape every discovered trending title. Default false.
scrapeDetailbooleanFetch full detail per deep-scrape subject. Default true.
scrapeReviewsbooleanFetch long-form reviews. Default false.
scrapeCommentsbooleanFetch short comments with location. Default false.
maxReviewsPerTitle / maxCommentsPerTitleintegerPer-title caps.
maxSubjectsintegerCap on deep-scraped subjects per run. Default 200.
proxyConfigurationobjectApify Proxy; switch to residential if exits are blocked.

📤 Output

Each row carries a resultType. Examples:

detail

{
"resultType": "detail", "id": "1292052", "type": "movie",
"url": "https://movie.douban.com/subject/1292052/",
"title": "肖申克的救赎 The Shawshank Redemption",
"ratingScore": 9.7, "ratingVotes": 3353472,
"directors": ["弗兰克·德拉邦特 Frank Darabont"],
"actors": ["蒂姆·罗宾斯 Tim Robbins", "摩根·弗里曼 Morgan Freeman"],
"genres": ["剧情", "犯罪"], "countries": ["美国"], "languages": ["英语"],
"releaseDates": ["1994-09-10(多伦多电影节)", "1994-10-14(美国)"],
"runtimeMinutes": 142, "imdbId": "tt0111161",
"aka": ["月黑高飞(港)", "刺激1995(台)"],
"cover": "https://img.../p.jpg", "datePublished": "1994-09-10",
"synopsis": "一场谋杀案使银行家安迪…", "scrapedAt": "2026-10-28T..."
}

comment

{ "resultType": "comment", "subjectId": "37516455", "commentId": "32514679",
"author": "如小果", "ratingStars": 5, "ratingText": "力荐",
"time": "2024-02-27 21:43:23", "location": "北京", "votes": 265, "text": "…" }

review

{ "resultType": "review", "subjectId": "1292052", "reviewId": "1000369",
"url": "https://movie.douban.com/review/1000369/", "author": "大头绿豆",
"title": "十年·肖申克的救赎", "ratingStars": 5, "time": "2005-05-12", "snippet": "…" }

hot (trending list item): id, type, category, tag, rank, title, ratingScore, cover, url, isNew.

Download as JSON, CSV, Excel or HTML.

🧠 How it works

Trending lists come from Douban's public search_subjects JSON. Detail / review / comment pages are guarded by Douban's "sec" anti-bot: a request without clearance gets a page carrying a sha512 proof-of-work. The Actor solves that proof-of-work in-process (pure Node, ~20 ms), submits it for a clearance cookie, and then fetches pages normally — one solve unlocks many pages on the same sticky exit. No browser, no CAPTCHA service.

🧪 Data quality — measured (2026-10-28)

  • Trending: a 1,000-title sweep returned 1,000/1,000 unique, every field 100% filled, every title rated (median ≈ 8.1).
  • Detail: on real titles, rating, votes, directors, full cast, genres, countries, languages, runtime, IMDb id, aka and synopsis all parse (verified against live pages).
  • Comments: author, rating, time, votes and text 100%; location fills on current titles (older pre-location comments are honest null).
  • Reviews: author, title, rating, date, snippet and URL 100%.
  • Anti-bot: two subjects + five pages needed only one proof-of-work solve (clearance amortized).

💼 Use cases

  • Film/TV research — ratings, cast/crew, IMDb cross-ids across trending and specific titles.
  • Recommendation engines — rated discovery lists + full metadata.
  • Audience & sentiment — comments with location and long-form reviews.
  • Market tracking — watch a genre/region's momentum and reception over time.

🔗 Integration

Schedule it, connect to Make / Zapier / n8n, or call the Apify API. Each run's per-type counts are written to the SOURCE_REPORT key-value record.

📊 Pricing

Pay per delivered result, by type (trending title, detail, review, comment). Empty runs are free. See the pricing panel for current rates.

❓ FAQ

  • Does it need my Douban login or cookies? No. It never logs in and never asks you for an account, cookie or proxy of your own.
  • How does it get past Douban's anti-bot? By solving Douban's own proof-of-work in-process — no browser, no third-party CAPTCHA service.
  • Why is a field null? Douban did not carry it (e.g. an unrated new title, or an old comment with no location). It is never faked.

🐛 Troubleshooting

  • A run returned little/nothing: an exit was rate-limited — rerun (exits rotate) or switch to a residential proxy.
  • Deep scrape slow: lower maxCommentsPerTitle / maxReviewsPerTitle or maxSubjects.

🚧 What it does not do

It reads publicly served pages. It does not log in, does not scrape private lists, and does not fabricate missing fields.

The Actor reads only publicly served, non-personal data (titles, public ratings, public reviews/comments). Use the data in line with Douban's terms and applicable law; do not store personal data without a lawful basis.

🤝 Support & contact

Questions or a custom need? Open an issue on the Actor's Issues tab.

Changelog

See CHANGELOG.md.