Douyin Hashtag Detail Scraper
Pricing
$0.10 / actor start
Douyin Hashtag Detail Scraper
EN — Get details of a Douyin hashtag by ch_id (challenge id). Returns ch_info: name/desc/view_count/user_count/share_info/author.
Pricing
$0.10 / actor start
Rating
0.0
(0)
Developer
wang wei
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
11 days ago
Last modified
Categories
Share
✨ What you get
EN — Get details of a Douyin hashtag (challenge) by its numeric ch_id. Returns the rich ch_info object: name, description, total view count, total user count, share metadata, author info, and challenge flags. One run = one Data provider call.
ZH — 抖音话题详情 — 通过 ch_id(话题 ID)抓取话题元数据。 返回完整的 ch_info:名称、描述、总播放量、总参与用户数、分享链接、作者信息、是否官方话题等。一次运行 = 一次上游请求。
Built for influencer research, trend analysis, brand monitoring, competitor benchmarking, and content ops workflows on Douyin (TikTok China) — China's #1 short-video platform with 750M+ daily active users.
5 free runs / day. No API key required — No API key or setup required.
💼 Use cases
- Sizing a hashtag's reach before you partner inside it — hand it the numeric
chIdandview_countplususer_countcome back, which tells you whether a vertical's conversation is big enough to be worth a creator brief. - Tracking momentum on your own brand challenge — run the same
chIdon a schedule and watchview_countanduser_countmove, which is the cheapest read on whether a seeded topic is actually spreading. - Grabbing the share assets for a cross-platform push —
share_infocarriesshare_url,share_titleandshare_desc, which is what a UGC or seeding program needs to point people at the challenge. - Reading a hashtag out of a competitor's video URL — spot the chip on a rival post, copy the trailing number from the hashtag page URL, and get the topic name, description and official-challenge flags back for that vertical.
✅ Who this is for
- Influencer and brand marketers — evaluating whether a hashtag is worth partnering in.
- Trend researchers — mapping where a challenge sits in its category and growth phase.
- Content and UGC teams — collecting share metadata to seed participation.
- Competitive analysts — pulling topic-level metadata for any challenge id they find in the wild.
❌ Who this is NOT for
- Anyone who does not already have the numeric
chId— this Actor takes a challenge id only, and the README's three ways to get one are all manual: open the hashtag page and copy the trailing number, resolve a short share URL in a desktop browser, or click the hashtag chip on a video. If you have a keyword instead of an id, start with the hashtag search Actor. - Pasting anything other than the bare number — a full share URL and the
ch_id=1575791821492238query-string form are both rejected; only the trailing numeric id is accepted, in integer or string form. - Growth curves or history — one run returns one snapshot of cumulative totals. There is no time series behind it, so a single run cannot tell you whether a topic is accelerating.
- Reading an empty result as a missing topic — if
cha_namecomes back empty or null the id itself is invalid, not the hashtag unpopular. Re-check the URL or pick a different hashtag. - Anything video-level or bulk — one run is one hashtag lookup and one dataset row. Video counts, video URLs and author-by-author data are not in this output, and there is no multi-id input.
📥 Input parameters
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
chId | integer | yes | — | Douyin challenge id (numeric). Example: 1575791821492238. |
A real-world example: ch_id
1575791821492238= 深海 (Deep Sea) — 5.28 billion cumulative views.
{"chId": 1575791821492238}
The chId is the numeric challenge id Douyin assigns to every hashtag. You can grab it from any public hashtag URL in three ways:
Option A — From a Douyin hashtag page URL (recommended)
Open any hashtag page in a desktop browser. The URL ends with the numeric ch_id:
https://www.douyin.com/challenge/1575791821492238└──────── chId ────────┘
Copy the trailing number → paste it into the input field.
Option B — From a share / short URL
When someone shares a hashtag link on mobile, Douyin rewrites it into a short form. Paste the short URL into the address bar of a desktop browser and hit Enter — it redirects to the canonical /challenge/<id> form, then grab the trailing number as in Option A.
https://v.douyin.com/iJxxxxxxx/ → https://www.douyin.com/challenge/1575791821492238
Option C — From a video inside the hashtag
Open any video that belongs to a hashtag. The URL contains the aweme_id (video id) — but you also need the ch_id. Click the hashtag chip below the video description; it opens the canonical hashtag page, then grab the ch_id from the URL as in Option A.
Quick validation
After entering a chId, the data provider returns cha_name (the hashtag name). If cha_name is empty or null, the id is invalid — re-check the URL or pick another hashtag.
Common mistake
- ❌ Do not paste the share URL — only the trailing numeric id is accepted.
- ❌ Do not include
ch_id=query-string form (ch_id=1575791821492238) — strip thech_id=prefix. - ✅ Correct:
"chId": 1575791821492238 - ✅ Correct:
"chId": "1575791821492238"(string form also accepted — both fields parse to integer internally)
📤 Output
The Actor pushes one item (the normalized ch_info) to the default dataset and writes a SUMMARY record to the default key-value store.
{"ch_id": 1575791821492238,"cha_name": "深海","desc": "深海是一个挑战话题","view_count": 5283529674,"user_count": 52345678,"is_challenge": true,"is_pgcshow": false,"share_info": {"share_title": "深海","share_desc": "深海挑战话题","share_url": "https://www.iesdouyin.com/share/challenge/1575791821492238"},"author": { /* creator profile when available */ },"rawData": { /* full Data provider ch_info object */ }}
See .actor/output_schema.json for the full type schema, or read it at runtime via the Apify API.
💰 Billing
Free users are limited to 5 runs per day. Paid users (APIFY_USER_IS_PAYING=1) have unlimited runs. The Actor itself adds no markup — you pay the data provider provider per request plus the standard Apify compute unit cost.
📚 Resources
cd douyin-hashtag-detailData provider_API_KEY=... Data provider_BASE_URL=<your-Data provider-base-url> npm test
node test/unit.js— 3 unit assertions on normalize / extract / rank.node test/integration.js— 1 live call against a known ch_id.
MIT
📜 Notes & caveats
Use it together with the other Douyin Actors
This Actor is part of the 5-Actor Douyin MVP set. Use it together with:
| Where in the pipeline | Actor | Use it to |
|---|---|---|
| you are here | Douyin Hashtag Detail Scraper (you are here) | (this Actor) |
| before / step ① | ../douyin-hashtag-search/README.md | keyword search → get topic_id (= ch_id) for any hashtag you want to look up |
| sister step ③ | ../douyin-hashtag-video-list/README.md | walk the full video list under the same ch_id |
| sister Actor | ../douyin-hot-search-list/README.md | board-level trends — find the topic in mainstream before it gets saturated |
| sister Actor | ../douyin-live-hot-search-list/README.md | live-stream specific trends |
You are here: Douyin Hashtag Detail Scraper — run this on its own for the data provider use case described above, or chain it with the other 4 Actors for a full Douyin keyword → hashtag → videos → trends pipeline.
Why this Actor exists
Douyin's hashtag system is the primary discovery surface on the platform. Knowing a challenge's view_count and user_count is the first step in any influencer / brand / trend analysis workflow. This Actor is the step ① entry point of the 4-Actor Douyin MVP set.