Install, authenticate, configure, operate, and troubleshoot the external MediaCrawler client shared by Douyin, Kuaishou, Bilibili, Weibo, Tieba, and Zhihu collectors. Xiaohongshu uses the separate browser-first xiaohongshu-mcp Collector.
SkillScore88Maintained
Automatic
◆Data Engineer pack
Last verified 8/30/2026
What it changes
Passed 19 of 22 test cases with the skill, and 5 of 22 without it.
Without skill24%
With skill88%
Checks it passed that the model alone missed
Mandates serial execution.
Forbids inventing a new Memory owner.
Forbids falling back to a clean browser.
and 22 more in the full report
16 fixed6 passed either way3 still failing0 broke
Pass-rate lift
+64 pp
Tokens
-35%
Agent turns
0%
Response time
-50%
Model gemini-3.6-flashMeasured 8/30/2026v122 of 25 cases passed with skill · 22 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 16 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 16
Prompt
What exact shell command should be used to navigate into the MediaCrawler working directory before running the Python script?
What was checked, without and with the skill
Checked
Without skill
With skill
Uses cd "${MEDIACRAWLER_DIR:-${GROWTHLAB_CLIENT_ROOT:-$HOME/.growth-lab/clients}/MediaCrawler}".
Missed
Passed
case-23 · gemini-3.6-flash · 8/30/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md36 lines2 files
MediaCrawler
This is the shared tool layer. Read operations.md before changing the external checkout. Then invoke exactly one platform Skill:
Douyin
Kuaishou
Bilibili
Weibo
Tieba
Zhihu
MediaCrawler does not support Twitter/X or Reddit. Do not imply otherwise.
Contract
If install or authentication is missing, invoke onboard-growth-lab. Do not duplicate the global audit here.
Onboarding must obtain the user's explicit ban-risk acknowledgement before login or crawling, require existing-Chrome CDP with no browser or Cookie fallback, and verify each enabled platform with a non-empty minimal real read. Installation, a persisted profile, or a visible login alone is not readiness.
Treat ${MEDIACRAWLER_DIR:-${GROWTHLAB_CLIENT_ROOT:-$HOME/.growth-lab/clients}/MediaCrawler} as an external checkout. Never vendor it or commit its browser profile, cookies, databases, or downloaded data.
Before a run, record upstream commit, platform, crawl type, keywords/IDs, config changes, login type, comment/media flags, and destination.
Modify only the documented platform config and config/base_config.py; show the diff before running. Restore unrelated example values.
Run serially and conservatively. Never silently retry risk-control or authentication errors.
Copy the required output into the invoking Model's memory/<model>/...; leave source provenance beside it. A Collector does not invent a new Memory owner.
Apply the upstream non-commercial learning license and each target platform's terms.
Standard invocation
cd "${MEDIACRAWLER_DIR:-${GROWTHLAB_CLIENT_ROOT:-$HOME/.growth-lab/clients}/MediaCrawler}"
uv run main.py --platform <dy|ks|bili|wb|tieba|zhihu> --lt qrcode --type <search|detail|creator>
Use --lt qrcode with CDP and an existing Chrome session. Do not fall back to standard Playwright, a newly launched clean browser, or Cookie injection.
Completion report
Return: exact source query/URLs, run time, upstream commit, raw and copied paths, record/media/comment counts, filters, partial failures, and any risk-control signal. Never report a search-card excerpt as full detail.