What Platforms Does MediaCrawler Support? A Complete Guide to the 7 Chinese Social Media Platforms

MediaCrawler supports seven major Chinese social media platforms: XiaoHongShu (xhs), Douyin (dy), Kuaishou (ks), Bilibili (bili), Weibo (wb), Tieba (tieba), and Zhihu (zhihu).

MediaCrawler is a multi-platform self-media crawler that provides a unified interface for extracting public data from Chinese social networks. According to the NanmiCoder/MediaCrawler source code, the project architecture treats each platform as a separate module under media_platform/, enabling seamless addition of new services while maintaining consistent core workflows across all supported platforms.

The Seven Platforms Supported by MediaCrawler

The repository explicitly documents support for the following platforms in the project architecture documentation (docs/项目架构文档.md, lines 11-19) and the README feature table:

Platform Code Primary Capabilities
XiaoHongShu (小红书) xhs Note search, detail, creator
Douyin (抖音) dy Video search, detail, creator
Kuaishou (快手) ks Video search, detail, creator
Bilibili (B站) bili Video search, detail, UP-owner
Weibo (微博) wb Post search, detail, author
Tieba (百度贴吧) tieba Post search, detail
Zhihu (知乎) zhihu Q&A search, detail, answerer

Each platform implements a standardized interface for content discovery, metadata extraction, and creator information retrieval.

How Platform Support Is Implemented in the Codebase

MediaCrawler uses a factory-based architecture to manage platform-specific implementations. The core abstraction is defined in base/base_crawler.py, which establishes the interface for all crawlers, login handlers, and storage mechanisms.

Key architectural components include:

  • CrawlerFactory: Located in base/base_crawler.py, this factory creates platform-specific crawler instances at runtime based on the platform code (e.g., "dy", "xhs").
  • Platform Modules: Each platform resides in media_platform/{platform_code}/core.py (e.g., media_platform/xhs/core.py, media_platform/douyin/core.py), containing the concrete implementation of search, detail, and creator extraction logic.
  • Configuration: config/base_config.py holds global settings including PLATFORM, LOGIN_TYPE, and feature toggles that determine which crawler executes.

The modular design allows developers to add new platforms by implementing the base crawler interface and registering the new module in the factory, without modifying existing platform code.

How to Run Crawlers for Specific Platforms

Command Line Usage

You can initiate crawlers for any supported platform using the CLI entry point in main.py. The --platform parameter accepts the platform codes listed above.

Crawl XiaoHongShu notes using QR code authentication:

uv run main.py --platform xhs --lt qrcode --type search

Extract Douyin video details:

uv run main.py --platform dy --lt qrcode --type detail

Programmatic Usage

For custom workflows, instantiate crawlers directly via the CrawlerFactory:

from base.base_crawler import CrawlerFactory

# Create a Douyin crawler instance

douyin_crawler = CrawlerFactory.create_crawler("dy")
await douyin_crawler.start()

This pattern allows you to integrate MediaCrawler into larger data pipelines while maintaining the abstraction layer that handles authentication, rate limiting, and storage formatting.

Summary

MediaCrawler provides comprehensive support for seven major Chinese social media platforms through a modular, extensible architecture:

  • Seven platforms: XiaoHongShu, Douyin, Kuaishou, Bilibili, Weibo, Tieba, and Zhihu
  • Unified interface: Common abstractions for crawlers, login handlers, and storage factories defined in base/base_crawler.py
  • Flexible execution: CLI interface via main.py or programmatic access through CrawlerFactory.create_crawler()
  • Modular implementation: Each platform isolated in media_platform/{code}/core.py for maintainability
  • Pluggable storage: Support for CSV, JSONL, SQLite, MySQL, MongoDB, and Excel via the store/ directory

Frequently Asked Questions

Can I add custom platforms to MediaCrawler?

Yes. The architecture supports adding new platforms by implementing the abstract crawler interface defined in base/base_crawler.py and creating a new module under media_platform/. You must implement the core search, detail, and creator methods, then register the new platform in the CrawlerFactory to make it available via the CLI and programmatic interfaces.

What authentication methods are available for these platforms?

MediaCrawler supports multiple login types specified via the --lt parameter or LOGIN_TYPE configuration. Common options include qrcode for QR code authentication, phone for mobile number login, and cookie for session-based authentication. The specific methods available vary by platform and are implemented in each platform's login handler under media_platform/{platform}/login.py.

Which storage formats does MediaCrawler support for crawled data?

The repository supports multiple storage backends through the store/ directory implementations. You can persist data to CSV, JSONL, SQLite, MySQL, MongoDB, or Excel formats. Each platform has dedicated storage logic in store/{platform}/__init__.py that handles data transformation and persistence, allowing you to configure the output format via config/base_config.py.

Is there a way to crawl multiple platforms simultaneously?

While main.py processes a single platform per execution, you can orchestrate multi-platform crawling by invoking separate processes or async tasks using the programmatic API. Create multiple crawler instances via CrawlerFactory.create_crawler() for different platforms (e.g., "xhs" and "dy") and run them concurrently within your Python application, as each crawler operates independently with its own configuration and storage context.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →