WeChat Channels Video Search Scraper avatar

WeChat Channels Video Search Scraper

Pricing

$0.10 / actor start

Go to Apify Store
WeChat Channels Video Search Scraper

WeChat Channels Video Search Scraper

🔎 WeChat Channels Video Search | Find trending 视频号 videos by keyword Drop one keyword, filter by duration (short / medium / long), sort by latest or hottest, and pull up to 50 ranked videos with engagement metrics, publisher profile, export ids and cover images.

Pricing

$0.10 / actor start

Rating

0.0

(0)

Developer

wang wei

wang wei

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Share

✨ What you get

EN — Find trending 视频号 Channels videos by keyword in 30 seconds. Drop one keyword, filter by duration (short / medium / long), sort by latest or hottest, and pull up to 50 ranked videos with engagement metrics (10万+ like counts), publisher profile, shareable export IDs, and cover images. No login, no captcha, no headless browser.

ZH — 视频号视频搜索 — 一键按关键词 + 时长筛选抓取。 一个关键词,按时长(短视频/中视频/长视频)、排序(最新/最热)筛选,最多 50 条视频(5 页 × ~10),含点赞数(10万+)、发布者资料、可下载的 exportId、封面图。无登录、无验证码、无 headless 浏览器。

Built for influencer discovery, trend monitoring, and competitor intelligence on 视频号 (WeChat Channels) — China's fastest-growing short-video platform inside WeChat. Output exports as JSON / CSV / Excel — pipe directly into your CRM, BI tool, or another Apify Actor.

5 free runs / day — no API key required. Open on Apify Console, drop a keyword, get results in 30 seconds.

💼 Use cases

  • Surfacing emerging Channels creators before they saturate — duration=short with publishTime=week narrows the field to the last seven days, where a new creator is still findable.
  • Running a daily trend watch on one keyword — run the same keyword each day and diff the docId sets between runs to spot new entrants into a topic.
  • Sourcing video material for a category — collect exportId for the top-performing videos in your niche and hand them to the video detail Actor for actual media download.
  • Mapping the long-form segment — duration=medium or long reaches creators working past five minutes, a part of Channels that keyword search rarely surfaces.

✅ Who this is for

  • Influencer discovery and KOL research — teams mapping who is publishing on a topic inside Channels rather than inside the wider web.
  • Trend and content monitoring — programmes that want a repeatable daily diff on a fixed keyword list.
  • Cross-border e-commerce teams — looking for video references in a product category before briefing a creator.
  • Analysts who need pagination control — maxPages of one to five with roughly ten videos per page makes a smoke test cheap and a full run about fifty videos.

❌ Who this is NOT for

  • You need exact like counts — likeNum is a formatted string like 10万+, so it is bucketed rather than precise. You can rank on it, but you cannot compute an exact engagement rate for anything past six figures.
  • You want the full result set for a keyword — the cap is five pages, about fifty videos per run. When the SUMMARY reports hasMoreInSource, what you hold is the first slice, not the topic.
  • You need a custom date range — the only windows available are all time, 24 hours, seven days and half a year, so a narrow fortnight or quarter cannot be expressed.
  • You expect a slow upstream call to still return partial results — there is a thirty-second hard timeout enforced with an abort controller and three retries, so a slow response ends the run rather than delivering a short list.
  • You are searching for articles, accounts or official-account posts — this Actor searches Channels videos only. Cross-vertical search over 公众号, 视频号 and articles is the universal search Actor's job.

🚀 Quick start

Open the Actor on Apify Console, fill in keyword (e.g. 美食), click Start. Results land in the Dataset tab in ~30 seconds.

Want to run from the CLI?

$apify call wechat-channels-video-search-scraper -i '{"keyword": "美食", "duration": "short", "sort": "latest"}'

the data provider API key is wired into the Actor — no Secrets tab setup, no env vars to set. Apify free users get 5 runs / day.

📥 Input parameters

{
"keyword": "美食",
"duration": "short",
"sort": "latest",
"publishTime": "all",
"maxPages": 3,
"cursor": "",
"raw": "false"
}

📤 Output

Each pushed item is a normalized Channels video row keyed by docId (string — base64 may exceed JS Number safe range):

{
"keyword": "美食",
"page": 1,
"rank": 1,
"businessType": "video",
"businessTypeRaw": 7,
"docId": "finderobjv0iGrW2Ju7cmIl5Q2m0E",
"exportId": "export/UzFfAEDovIKb9q9zJ4...",
"hashDocId": "17711004180000001",
"feedNonceId": "1717...",
"title": "家常菜快手菜...",
"titleRaw": "...<em class=\"highlight\">美食</em>...",
"coverUrl": "https://wx.qlogo.cn/...",
"duration": "03:42",
"pubTime": 1757365200,
"dateLabel": "2小时前",
"likeNum": "10万+",
"source": {
"name": "刘小妹正餐",
"iconUrl": "https://wx.qlogo.cn/...",
"verified": true
},
"collectedAt": "2026-09-09T00:00:00Z"
}

exportId outlives a search page — pass it to the data provider fetch_video_detail endpoint to download the actual video media. likeNum is kept as a string to preserve Chinese unit formatting like 10万+.

The run also writes a SUMMARY to the Key-Value Store with pushed / pagesFetched / nextCursor / hasMoreInSource / tier / runsToday / dailyLimit / startedAt / finishedAt — use nextCursor on the next run for resumable pagination.

⚙️ How it works

The Actor auto-paginates via the data provider cursor + continue_flag envelope. Set maxPages (1-5) to cap requests per run (5 pages ≈ 50 videos). To resume a previous run, copy SUMMARY.nextCursor from the previous run into cursor on the next run.

maxPagesItems per run (avg)Cost control / 成本控制
1~10smoke test / 冒烟测试
3 (default)~30sweet spot / 推荐值
5~50hard cap (cost & quota safety)

❓ FAQ

  • Channels video items always have the same shape / 视频号视频 shape 固定: docID / exportId / hashDocID / duration / image / jumpInfo / likeNum / pubTime / source / title.
  • 30-second hard timeout / 30 秒硬超时: Data provider documents that the data provider takes up to 30 s. The Actor enforces this with AbortController + exponential backoff (3 retries: 500 ms / 1 s / 2 s).
  • Large integer IDs preserved as string / 大整数 ID 保 string: docID is base64, hashDocID is a 19-digit number, likeNum includes Chinese units like 10万+. All kept as strings to avoid JS Number precision loss.
  • exportId is the durable handle / exportId 是稳定句柄: it outlives any single search page and can be passed to the data provider fetch_video_detail endpoint for actual media download.

📚 Resources

For full WeChat ecosystem search (公众号 / 视频号 / 文章 / 账号) across 18 business_type filters, see the sister Actor:

→ WeChat Universal Search Scraper — same keyword, broader vertical coverage without the duration filter.

$npm test

Runs 17 unit assertions (input validation, request body shape, video normalization) plus 6 integration scenarios (mock fetch drives the full run() flow against captured Data provider fixtures).

✅ unit.js: 17 assertions passed.
✅ integration.js: 6 scenarios passed.

See ./CHANGELOG.md.

Apache-2.0