{"adoption": {"forks": 717, "observed_at": "2026-08-28T04:07:23.676099+00:00", "stars": 2812}, "canonical_url": "https://ross.abutalabs.com/products/douyin_spider", "card": {"archived": false, "artifact_type": "library", "description": "抖音逆向，抖音爬虫，抖音全部api、私信、直播间监听", "domain": ["crawlers", "social-media", "developer-tools"], "enriched": true, "function": ["web-scraping", "websocket", "http-client", "sdk", "workflow-automation"], "health_score": 82, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["cv-cat/DouYin_Spider"], "name": "cv-cat/DouYin_Spider", "platform": ["python", "cli"], "pushed_at": "2026-08-18T15:01:55+00:00", "repo": "cv-cat/DouYin_Spider", "stars": 2812, "tags": ["douyin", "tiktok-china", "reverse-engineering", "live-streaming", "direct-messages", "api-client", "data-collection", "automation", "nodejs"], "topics": [], "urls": [], "use_cases": ["scrape douyin user profiles and videos", "monitor live stream danmaku and gift events", "send and receive douyin direct messages automatically", "collect video comments and replies for analysis", "export douyin data to excel or json", "build an ai agent that interacts with douyin", "like and comment on douyin videos programmatically"], "what_it_is": "A Python-based Douyin (Chinese TikTok) reverse-engineering toolkit that exposes the platform's full API surface for data collection, live-stream monitoring, and direct-message automation. It supports scraping user profiles, videos, comments, and search results, listening to live-room events like danmaku and gifts, and sending/receiving private messages over WebSocket.", "when_to_avoid": ["you need a fully supported, legally sanctioned official API integration", "you target platforms other than douyin", "you cannot accept the legal and compliance risks of scraping a commercial platform", "you need a license-guaranteed dependency for commercial products"], "when_to_choose": ["you need programmatic access to douyin data or interactions beyond the official API", "you want real-time live-room event monitoring or DM automation", "you are building data collection or AI agent pipelines targeting douyin"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/douyin_spider", "repo": "cv-cat/DouYin_Spider", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "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:07:23.676099+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:23.676099+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:13:31.534849+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e3f73878d78f5ea4f08f91042ed349e64aa512483a06aafd27c13a69378ce920", "fetched_at": "2026-08-28T04:07:23.676099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cv-cat/DouYin_Spider"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 75, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1051, "days_push": 15, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}