Primary question: Does the non-commercial learning license and Playwright login-state approach fit your data-collection learning goals without crossing legal or platform-TOU lines?
RepoDaily adoption score
RepoDaily rates this as 83/100 (strong) for adoption: evidence, installation path, production risk, differentiation, license clarity, and AI/agent fit are scored from the article sources and adoption notes.
5 source(s) across 4 source category/categories, plus a RepoDaily-specific evidence module when available.
6 workflow step(s), 6 next-action step(s), and 3 command/install signal(s) were detected.
Trending momentum is +349 stars, with maintenance/release/issue signals counted when present.
Risk is marked high, with 5 security note(s) and 5 explicit skip condition(s).
2 opportunity lens item(s), 4 alternative(s), and 3 type-specific section(s) support differentiation.
License source or license wording is present.
3 AI/agent-related signal(s) were detected in the article text and metadata.
Project overview
MediaCrawler is a Python project that crawls publicly visible posts and comments from seven major Chinese social platforms: Xiaohongshu (Little Red Book), Douyin, Kuaishou, Bilibili, Weibo, Baidu Tieba, and Zhihu. The repository describes itself as a tool for learning and research, with a prominent disclaimer forbidding commercial use and large-scale crawling. It earned 349 stars over the current trending period and ranked 12th on the trend list dated 2026-07-28.
The project's core technical principle sets it apart from many reverse-engineering crawlers. Instead of decrypting platform signing algorithms, MediaCrawler uses Playwright browser automation to maintain a logged-in browser context. It then runs JavaScript expressions inside that context to obtain the signature parameters each platform requires for API requests. This eliminates the need to reverse-engineer encryption but introduces a dependency on a full browser environment and valid login sessions.
Every supported platform exposes the same feature matrix: keyword search, post-ID-based crawling, second-level (nested) comment retrieval, creator-page crawling, login-state caching, IP proxy pool support, and comment wordcloud generation. The feature parity across platforms is one reason the project attracts consistent attention — a developer who learns the Xiaohongshu adapter can apply the same workflow to Douyin or Zhihu.
The project also has a commercial sibling called MediaCrawlerPro, advertised in the README. The Pro version adds breakpoint-resume crawling, multi-account support, Linux environment support, removal of the Playwright dependency, and an AI agent for content breakdown. This article focuses on the open-source version, but readers should know a paid tier exists.
Why it is trending now
- 349 period stars and rank 12 on 2026-07-28, reflecting sustained developer interest in Chinese-platform data tooling.
- Seven-platform coverage with uniform features (keyword search, post-ID crawl, nested comments, creator pages, login cache, proxy pool, wordcloud) lowers the switching cost between platforms.
- The Playwright login-state approach removes the need for JS encryption reverse engineering, which is a well-known pain point for developers new to crawling Chinese platforms.
- A Trendshift badge is embedded in the README, and the project sponsors BrowserAct, indicating active ecosystem engagement.
- The README promotes a Pro version with enterprise-oriented features (multi-account, Linux support, AI agent), signaling continued investment by the maintainer.
Problem it solves
- Crawling Chinese social platforms typically requires reverse-engineering signing algorithms, which demands deep JS expertise and breaks frequently when platforms update.
- Login-state management is fragile — QR-code login sessions expire, and handling cookies or fingerprint detection manually is error-prone.
- Most open-source crawlers target a single platform, forcing developers to maintain multiple incompatible codebases.
- Storing crawled data in a structured format for later analysis (CSV, JSON, SQLite, MySQL) is often left as an exercise, not a built-in option.
- Comment analysis pipelines (wordclouds, nested replies) usually require glue code that many beginners cannot write quickly.
How it works
- Install uv, then run `uv sync` in the project root to reproduce the Python 3.11 environment declared in pyproject.toml.
- Run `uv run playwright install` to download the Playwright browser drivers that the crawler depends on for login-state automation.
- Install Node.js (>= 16.0.0) if you plan to crawl Douyin or Zhihu, since those platforms require JS execution via Node.
- Edit `config/base_config.py` to enable features like `ENABLE_GET_COMMENTS`, configure login type, and set proxy or storage options.
- Run a crawl with a command like `uv run main.py --platform xhs --lt qrcode --type search` to log in via QR code and search Xiaohongshu posts.
- Choose a storage backend by appending flags: `--save_data_option sqlite` for lightweight local storage or `--save_data_option db` for MySQL.
Product demo and interface preview

Command Surface and Configuration Entry Points
- Entry point: `uv run main.py --platform <platform> --lt <login_type> --type <crawl_type>` (e.g., `--platform xhs --lt qrcode --type search`).
- Supported `--platform` values include xhs (Xiaohongshu), dy (Douyin), ks (Kuaishou), bili (Bilibili), wb (Weibo), tieba (Tieba), and zh (Zhihu).
- Crawl types: `search` (keyword search from config) and `detail` (specific post-ID list from config).
- Login types include QR-code login (`--lt qrcode`); the docs note CDP connection to a local Chrome is also available for xhs and dy via `config/base_config.py`.
- Storage flags: `--save_data_option sqlite` (SQLite, recommended for personal use), `--save_data_option db` (MySQL), or default file output to `data/` as CSV/JSON.
- Database initialization: `--init_db sqlite` or `--init_db mysql` before first use.
- Feature toggles like `ENABLE_GET_COMMENTS` live in `config/base_config.py` with Chinese inline comments.
- Run `uv run main.py --help` for the full argument list.
Integration Surface: Dependencies and Storage Backends
The pyproject.toml declares Python >= 3.11 as a hard requirement and pins key dependencies: playwright >= 1.61.0, fastapi 0.110.2, sqlalchemy >= 2.0.43, pandas 2.2.3, httpx 0.28.1, redis ~4.6.0, aiomysql 0.2.0, motor >= 3.3.0 (MongoDB async driver), asyncpg >= 0.31.0, and jieba 0.42.1 for Chinese text segmentation used in wordcloud generation. The project also pulls in alembic for database migrations, typer for CLI parsing, and tenacity for retry logic.
Storage options are explicitly documented: CSV and JSON files are written to the `data/` directory, SQLite is recommended for individual users, and MySQL requires a pre-created database. The presence of MongoDB's motor driver and asyncpg in dependencies suggests broader database compatibility than the docs explicitly list, but the documented and tested paths are CSV, JSON, SQLite, and MySQL.
Maintenance Risk: License, Platform Volatility, and Legal Exposure
- License is 'NON-COMMERCIAL LEARNING LICENSE 1.1' — not OSI-approved. Commercial use requires written consent from the copyright owner (relakkes@gmail.com). This blocks most organizational adoption.
- The README carries a prominent disclaimer instructing users to crawl for learning only, and links to a repository of Chinese crawler legal cases as a warning.
- Platform APIs and signing mechanisms change without notice; the Playwright login-state approach reduces reverse-engineering effort but still depends on DOM selectors and JS expression paths that can break.
- The project version is 0.1.0 in pyproject.toml, signaling pre-1.0 maturity where breaking changes are expected.
- A paid Pro version exists with features the open-source edition lacks (multi-account, full Linux support, no Playwright dependency), which may mean the open-source edition receives fewer enterprise-grade updates over time.
Who should pay attention?
Good fit if
- Students and individual developers studying browser-automation crawler design on Chinese social platforms.
- Researchers who need small-scale, non-commercial data samples for academic projects with proper ethical review.
- Engineers evaluating how Playwright login-state persistence compares to JS reverse-engineering approaches.
- Developers who want a reference implementation for a multi-platform crawler with pluggable storage backends (CSV, JSON, SQLite, MySQL).
Skip for now if
- Any commercial product or service — the license explicitly forbids commercial use without written consent.
- Teams needing guaranteed uptime or SLAs — platform changes can break crawlers at any time.
- Projects requiring an OSI-approved license (MIT, Apache-2.0) for compliance or redistribution.
- Users outside China who do not need Xiaohongshu, Douyin, or the other covered platforms.
- Anyone unwilling to manage QR-code login flows, browser driver installation, and Node.js side-dependencies.
Risks and cautions
The non-commercial learning license, legal disclaimers, and dependence on fragile platform-specific login and DOM structures make this project unsuitable for production or commercial use without significant legal and engineering review.
- NON-COMMERCIAL LEARNING LICENSE 1.1 prohibits commercial use without written consent — this is a hard blocker for businesses.
- Platform terms of service in China restrict automated data collection; the README itself links to a repository of crawler legal cases.
- Playwright-based login and JS-expression parameter extraction can break when platforms update their frontends.
- Version 0.1.0 with no semver stability guarantee.
- Node.js >= 16 is required for Douyin and Zhihu, adding deployment complexity for those platforms.
- The project requires valid login credentials on each target platform via QR-code or cookie-based login — do not use shared or production accounts.
- An IP proxy pool feature is available, but proxy configuration and logging behavior should be audited before use.
- The non-commercial license includes a disclaimer that the software is provided 'as is' with no warranty of any kind.
- Dependencies include cryptography >= 45.0.7 and websockets >= 15.0.1; review transitive dependencies for supply-chain risk.
- No mention of rate-limiting safeguards in the README — developers must implement their own to avoid IP bans or platform penalties.
Alternatives to compare
| Approach | When to use | Trade-off |
|---|---|---|
Scrapy | When you need a mature, MIT-licensed crawling framework with broad community support and no platform-specific legal constraints. | Free / BSD-3-Clause |
| When you want full control over browser automation without relying on a third-party crawler wrapper. | Free / Apache-2.0 | |
MediaCrawlerPro | When you need multi-account support, Linux deployment, breakpoint resume, and AI agent features, and are willing to subscribe. | Paid subscription |
Official platform APIs | When you need compliant, stable access to platform data for a commercial product. | Varies by platform |
What this trend reveals
Study reference for login-state crawler architecture
The codebase demonstrates how Playwright's persistent browser context can replace JS reverse engineering. Developers building compliant crawlers for their own platforms can study the adapter pattern and storage abstraction.
Clone the repo, run `uv sync`, and trace the xhs platform adapter to see how login state, JS expression signing, and API requests connect.
Educational material for Chinese NLP pipelines
Built-in jieba segmentation and wordcloud generation provide a ready-made loop from raw comments to visual text analysis, useful for coursework or prototyping.
Run a comment crawl with `--save_data_option sqlite`, then inspect the wordcloud output in the data directory.
RepoDaily verdict
MediaCrawler is a technically interesting, well-documented learning tool for understanding how Playwright login-state persistence can bypass JS reverse engineering on Chinese social platforms. Its non-commercial license, legal disclaimers, and platform-volatility risks make it strictly a study-and-reference project — not a foundation for production data pipelines.