mrkeyoor.com_
Thu 24 Sept 19:58 UTC
Dataevaluationupdated 27 Aug 2026

MediaCrawler review

MediaCrawler is a Chinese-first social media collector, and a separate English README is available. It uses a logged-in browser session to gather public posts, creator pages, comments, and media from Xiaohongshu, Douyin, Kuaishou, Bilibili, Weibo, Tieba, and Zhihu.

+410stars / 7d
Verdict

Our MediaCrawler checkout installed 269 npm packages in 26 seconds, but it exposed no npm build or test target for us to verify. Use it as learning material or for a narrow, permitted research collection where breakage can be handled by a developer. Its non-commercial license, interactive login, and open platform-specific failures rule it out as a drop-in production data service.

We ran it

Lab card: what happened when we ran MediaCrawlerScreenshot of MediaCrawler (nanmicoder.github.io/MediaCrawler)
Install✓ · 26s269 packages · 233 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo329 files~32,223 lines of source · 25.5 MB · 1 CI workflows · tests dir

Answers from our run

Does MediaCrawler build from source?

Dependencies installed in 26 seconds (269 packages), and the project has no separate build step. We cloned commit d6f7c5b into a clean Debian container with 3 CPUs and no project-specific setup.

Does MediaCrawler have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does MediaCrawler have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use MediaCrawler?

Commercial teams: the included license permits non-commercial learning and research, and requires written consent for commercial use.

What are the alternatives to MediaCrawler?

gallery-dl, Crawlee, RSSHub. Our MediaCrawler checkout installed 269 npm packages in 26 seconds, but it exposed no npm build or test target for us to verify.

Setup2/5npm install passed; full crawler needs Python, Chrome, and login
Docs4/5Chinese guide is detailed and an English translation exists
Community5/563,851 stars with active August 2026 issue discussion
Maturity2/5Wide platform coverage, but no releases and a restricted license

Who it’s for

Researchers learning how browser-backed collection works on major Chinese social platforms.
Developers building a small, non-commercial dataset from posts, creators, or comments they are allowed to collect.
Analysts who need CSV, JSON, JSONL, Excel, SQLite, or MySQL output.
Python users comfortable scanning Chinese configuration comments and adapting when a platform changes.

Who it’s NOT for

Commercial teams: the included license permits non-commercial learning and research, and requires written consent for commercial use.
Anyone planning large-scale collection: both the README disclaimer and license prohibit large crawls that disrupt platform operations.
Operators who need unattended, durable sessions: the default route reuses a local Chrome login and may require a QR scan or browser confirmation.
Buyers expecting every advertised platform path to stay reliable: open issues report incomplete Kuaishou comments, failed Kuaishou media downloads, and Xiaohongshu reply failures.

Setup reality

Our sandbox installed 269 npm packages in 26 seconds, using 233 MB on disk. The checkout had no npm build or test target, so both steps were skipped; npm audit found 0 known vulnerabilities.

The actual crawler also needs Python dependencies through uv, Node.js 16 or newer, and Chrome 144 or newer for the documented CDP route. Users must log into each target platform, commonly by QR code, and enable remote debugging in Chrome.

Standard Playwright mode needs a browser-driver install. The WebUI runs a Python API on port 8080 and a Vite development server on 5173, unless its frontend is built for the API to serve. Platform defenses, cookie expiry, proxies, and account policy remain operating concerns.

Seven Chinese platforms share one collection interface

MediaCrawler gathers public information from Xiaohongshu, Douyin, Kuaishou, Bilibili, Weibo, Tieba, and Zhihu. Each platform is documented as supporting keyword search, individual post collection, nested comments, creator pages, saved login state, proxies, and comment word clouds. Results can go to CSV, JSON, JSONL, Excel, SQLite, or MySQL. This is useful breadth for research that would otherwise require several unrelated scripts.

The project is Chinese-first. Its main README and configuration comments are Chinese, while README_en.md provides an English setup and feature translation. English-speaking users can get through installation, but diagnosing a platform-specific failure may still lead into Chinese issue reports, comments, and code labels. That matters because social crawlers need regular repair when login flows, signatures, and response shapes change.

Browser state replaces signature reverse engineering

Instead of reproducing every private signing algorithm in standalone code, MediaCrawler keeps a real browser context logged in and evaluates JavaScript there to obtain request parameters. The current Chinese README recommends connecting to an existing Chrome 144 or newer session through the Chrome DevTools Protocol. Users enable remote debugging at 127.0.0.1:9222, start the crawler, and accept Chrome's connection prompt within 60 seconds.

That approach reuses cookies, extensions, and a familiar browser profile. It also joins collection to an interactive user session. QR login may be required, expired cookies need attention, and a platform can still classify automated behavior. Open issue 915 reports Xiaohongshu warning a Windows 10 user about AI-like activity while CDP mode was enabled. The report does not establish whether the crawler, VPN, account, or another signal triggered the warning. It does show that using a real browser is not immunity from platform defenses.

What happened when we ran it

Our fresh Node 22 sandbox installed 269 npm packages in 26 seconds, consuming 233 MB on disk. Npm audit reported 0 known vulnerabilities across critical, high, moderate, and low categories. The commit d6f7c5b checkout contained 329 files, about 32,223 lines of source, and occupied 25.5 MB. We found 1 CI workflow and a tests directory, but no Dockerfile.

There was no npm build script or target, so our harness skipped the build. There was also no npm test script or target, so it skipped tests. Those are findings about the measured Node package surface, not proof that the Python crawler runs correctly. We did not log into any of the 7 supported services, install its Python environment, or collect user data in the unprivileged sandbox with no secrets. A successful dependency install cannot stand in for an authenticated crawl.

Python, Node, Chrome, and a login all enter the setup

The recommended crawler path uses uv to install Python packages. Node.js 16 or newer is also required, and standard Playwright mode adds a browser-driver download. The documented CDP route can skip that driver install by attaching to local Chrome. Commands select a platform, login method, and search or detail mode; comment collection is disabled by default and must be enabled in config/base_config.py.

The optional WebUI introduces two processes during development: a Uvicorn API on port 8080 and Vite on port 5173. Building the frontend lets the API serve its static files from one address. This is convenient for manual runs, but the README does not describe an unattended production service, a container image, or credential rotation. Proxy settings, crawl limits, data retention, and account access are left to the operator.

The license blocks the obvious commercial use

The repository does not use a standard open-source license. Its Non-Commercial Learning License 1.1 grants use, copying, modification, and merging for non-commercial learning. It prohibits commercial use without written permission and also bars large-scale crawling or activity that disrupts platform operations. The README repeats the learning-only and non-commercial limits, then points readers to a paid Pro offering with multi-account and resume support.

That restriction changes the buying decision more than the 63,851 GitHub stars do. A company cannot treat this as a free ingestion component merely because the code is public. Researchers must still consider target-site terms, privacy, copyright, and local law. The repository's disclaimer does not grant permission from Xiaohongshu, Douyin, or any person whose content appears in a collected dataset.

Open reports show where platform drift appears

Issue 843 reports incomplete Kuaishou comment collection and a REST API V2 error during a configured 500-post crawl. Issue 954 says Kuaishou detail mode did not download media even with the media setting enabled. Issue 866 reports a 406 response while collecting Xiaohongshu comment replies. These reports do not prove every user is affected, but each concerns a capability listed in the feature table.

GitHub recorded the last push on August 14, 2026, while issue 915 received activity on August 27. The repository had 191 combined issues and pull requests, and GitHub returned no latest release. Code and discussion are active, yet there is no release tag to pin as the latest supported checkpoint. For a permitted research job, record the exact commit, collect a small sample first, and verify missing comments or media before trusting totals.

Alternatives

ProjectWhat it isPick it when
gallery-dlA command-line downloader for images and galleries across many sites.pick this instead when downloading supported media matters more than collecting social comments and creator data.
Crawlee gh↗A general web-crawling library with browser and HTTP collection primitives.pick this instead when you want to build and own site-specific crawlers under a standard permissive license.
RSSHub gh↗A large set of routes that turns changing sites and services into RSS feeds.pick this instead when monitoring new public posts is enough and you do not need a historical comment dataset.

What people are saying

  1. [github-trending] NanmiCoder/MediaCrawler

Sources

  1. MediaCrawler README
  2. MediaCrawler English README
  3. Non-Commercial Learning License 1.1
  4. Xiaohongshu automation warning issue 915
  5. Kuaishou comment issue 843

More data reviews

go-stock · sqlitebrowser · hydradb · DouYin_Spider · helix-db · abu · the whole board →