{"adoption": {"forks": 50, "observed_at": "2026-08-28T04:04:29.528032+00:00", "stars": 1357}, "canonical_url": "https://ross.abutalabs.com/products/calibre-douban", "card": {"archived": false, "artifact_type": "plugin", "description": "Calibre new douban metadata source plugin. Douban no longer provides book APIs to the public, so it can only use web crawling to obtain data. This is a calibre Douban plugin based on web crawling.", "domain": ["developer-tools", "files"], "enriched": true, "function": ["web-scraping", "plugin-system"], "health_score": 67, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["fugary/calibre-douban"], "name": "fugary/calibre-douban", "platform": ["python", "cross-platform"], "pushed_at": "2025-11-08T09:55:56+00:00", "repo": "fugary/calibre-douban", "stars": 1357, "tags": ["calibre", "ebook-metadata", "douban", "calibre-plugin", "book-cataloging", "metadata", "automation", "desktop"], "topics": [], "urls": [], "use_cases": ["download douban book metadata in calibre", "scrape douban book info for ebooks", "fill in book covers and descriptions in calibre", "manage ebook library metadata from douban", "replace deprecated douban book api in calibre"], "what_it_is": "A Calibre metadata source plugin that fetches book metadata from Douban by crawling book.douban.com web pages, since Douban no longer offers a public book API. It is packaged as a zip plugin installable in the desktop Calibre application.", "when_to_avoid": ["you need metadata sources other than Douban", "you only use calibre-web rather than desktop Calibre", "scraping Douban violates your usage policies or the site blocks crawlers"], "when_to_choose": ["you use desktop Calibre and want Douban metadata for Chinese books", "Douban's official API is unavailable and you need web-crawled metadata", "you want a free, actively maintained Calibre plugin"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/calibre-douban", "repo": "fugary/calibre-douban", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.528032+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:41:50.036897+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f333680309001f842cb2f12ae0fba313bdba13d300c630543fb8434533125eee", "fetched_at": "2026-08-28T04:04:29.528032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fugary/calibre-douban"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 51, "longevity": 100, "rhythm": 56}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1725, "days_push": 298, "days_rel": 298, "gap_med": 2, "n_releases_24m": 4}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}