Douyin Scraper — TikTok China API & Video Downloader
Pricing
from $2.00 / 1,000 user videos
Douyin Scraper — TikTok China API & Video Downloader
Douyin scraper for TikTok China — extract video data, user profiles, comments, reply threads, and keyword search. KOL discovery, view counts, engagement metrics, China market research. Seven operations, one clean dataset per run. No API key.
Pricing
from $2.00 / 1,000 user videos
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
2
Monthly active users
21 hours ago
Last modified
Categories
Share
Douyin Scraper — TikTok China Videos, KOL Data, Comments & Search 🎥
🎉 Seven scrapers in one — extract video data, profiles, comments, reply threads, user posts & keyword search from Douyin (TikTok China)
Built for KOL agencies, China-market researchers, brand teams, and content strategists who need clean structured Douyin data — no API key, no setup, no scraping headaches
📋 Overview
Tired of brittle DIY scrapers that break every time Douyin ships a UI tweak? This actor delivers reliable, flat structured datasets from China's #1 short-video platform (700M+ DAU) — one clean run per task, one tidy dataset out.
Why teams choose SIÁN for Douyin data:
- ✅ Seven operations, one actor: video detail · user profile · user video catalog · comments · sub-comments (reply threads) · search videos · search users
- 🧵 Reply-thread depth no competitor offers — pull the full conversation tree under any comment, not just top-level
- 🔍 Full-text search built in — both
searchVideoandsearchUserwork with Chinese, English, and mixed queries - ⚡ 10–20 results per page on search & user feeds — paginate to 50 pages in a single run
- 🎯 Production-ready data shape: curated camelCase aliases (videoId, secUid, userName, playCount, likeCount, caption, postedAt, …) PLUS the raw upstream fields for power users
- 💰 Pay-per-result pricing — only charged for successful extractions, never for empty pages or errors
- 💎 No API key, no setup, no proxies — paste a video ID, sec UID, or keyword and run
- ✨ 19-digit Douyin aweme/uid/cid preserved at full precision (most scrapers silently corrupt them); HTTPS auto-normalized on every media URL
✨ Features
- 🎥 Video Detail: caption, play/like/share/comment/collect counts, playable video URL, cover, music, creator info, duration, timestamps
- 👤 User Profile: follower count, following count, total likes received, post count, bio, verification badge, IP location, full avatar set
- 📹 User Videos: full creator video catalog with engagement metrics, paginated ~20 videos/page
- 💬 Video Comments: top-level comments with author, IP location, like count, reply count, hot-comment flag
- 🧵 Video Sub-Comments: paginated reply threads under any comment — unique to this actor (no Douyin competitor exposes nested replies)
- 🔍 Search Videos: keyword search supporting Chinese, English, and mixed queries — ~12 results/page
- 🔎 Search Users: discover creators by keyword with handle, followers, verification, bio — ~19 results/page
- 🖼️ HTTPS-normalized URLs: every video URL, cover, avatar, and music track ready to embed
- 🆔 BigInt-safe IDs: 19-digit Douyin aweme/uid/cid preserved (no precision loss → no broken cross-operation joins)
- 📄 Cursor pagination: stream through up to 50 pages per run with one input parameter
- 📊 HTML run report: saved automatically to key-value store with success rate, errors, duration, inputs
🎬 Quick Start
Paste a keyword to search Douyin trending videos — no Douyin API or downloader software required.
curl -X POST https://api.apify.com/v2/acts/sian.agency~douyin-scraper/runs?token=YOUR_TOKEN \-d '{"operation":"searchVideo","keyword":"美食","maxPages":3}'
🚀 Getting Started (3 Simple Steps)
Step 1: Pick an operation
Choose what you want to extract: Search Videos, Search Users, Video Detail, User Profile, User Videos, Video Comments, or Video Sub-Comments.
Step 2: Enter the input
A keyword (search), a video ID (detail/comments/sub-comments), a sec UID (profile/videos), or a comment ID (sub-comments).
Step 3: Click "Start"
Results stream into the Apify dataset as they come back. Download as JSON, CSV, or Excel directly from the Console.
That's it! In under 60 seconds, you'll have:
- A flat, structured dataset (no nested CDN JSON to parse)
- Curated camelCase fields plus the raw response for power users
- An HTML report summarizing the run
- Ready-to-embed HTTPS media URLs (videos, covers, avatars, music)
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
operation | string (enum) | Yes | One of: videoDetail · userDetail · userVideos · videoComments · videoSubComments · searchVideo · searchUser |
videoId | string | If operation is videoDetail, videoComments, or videoSubComments | Douyin numeric video ID (also called aweme_id). Find it in any Douyin video URL after /video/. |
commentId | string | If operation is videoSubComments | Numeric comment ID (cid). Find it in the commentId field of any Video Comments result row. |
secUid | string | If operation is userDetail or userVideos | Encrypted user handle starting with MS4wLjAB.... Find it in any profile URL after /user/ or in any result row's secUid field. |
keyword | string | If operation is searchVideo or searchUser | Search query (Chinese, English, or mixed — e.g. 美食, dance, fashion) |
maxPages | integer | No | Pages to fetch for paginated operations (default 5, max 50) |
Example — Search trending Douyin videos:
{"operation": "searchVideo","keyword": "美食","maxPages": 3}
Example — Pull a creator's full video catalog:
{"operation": "userVideos","secUid": "MS4wLjABAAAAUT_tvNpyI5-tObkvU2xaaqyeDpek5UJXLG8mePjYxTQ","maxPages": 10}
Example — Get full video details by ID:
{"operation": "videoDetail","videoId": "7615930241370348219"}
Example — Pull reply thread for a specific comment:
{"operation": "videoSubComments","videoId": "7615930241370348219","commentId": "7615932448664650533","maxPages": 5}
📤 Output
Results are saved to the Apify dataset with 40+ curated fields plus all raw upstream fields. Filter by _operation to split modes; two predefined dataset views ready to open in Apify Console (Overview / Comments).
| Field | Type | Description |
|---|---|---|
videoId / awemeId | string | Douyin video ID (19-digit, precision preserved) |
videoPageUrl | string | Direct link to the video on Douyin |
caption | string | Video caption (Chinese / English / mixed, with hashtags & mentions) |
videoUrl | string | Playable video stream URL |
videoUrlList | array | All quality variants of the stream |
coverUrl | string | Primary video thumbnail |
dynamicCoverUrls | array | Animated cover (loop preview) |
durationMs | integer | Video length in milliseconds |
playCount | integer | Total plays |
likeCount | integer | Likes (digg_count) |
shareCount | integer | Shares |
commentCount | integer | Comments |
collectCount | integer | Saves/bookmarks |
postedAt | string | ISO-8601 timestamp |
musicId / musicTitle / musicAuthor / musicPlayUrl | mixed | Background music metadata |
userId | string | Creator's numeric UID |
secUid | string | Creator's encrypted handle (use this for User Profile / User Videos) |
uniqueId | string | Creator's public @handle |
userName | string | Creator's display nickname |
userVerified | boolean | Verification badge |
verifyReason | string | Custom verification reason (e.g. enterprise/celebrity status) |
userPageUrl | string | Direct link to the creator's profile |
avatarUrl | string | Profile picture (HTTPS) |
followerCount / followingCount / totalFavorited / awemeCount | integer | Profile stats |
userBio | string | Profile signature/bio |
ipLocation / userCity / userProvince / userCountry | string | Geo metadata |
commentId | string | Comment ID (use as input to Video Sub-Comments) |
parentCommentId | string | For sub-comments: the parent comment |
content | string | Comment text |
replyCount | integer | Number of replies under this comment |
isHot | boolean | Pinned/stickied comment |
isAuthorDigged | boolean | Liked by the video creator |
Example dataset row (search video):
{"_operation": "searchVideo","_sourceKeyword": "美食","videoId": "7615930241370348219","userId": "58743577344","secUid": "MS4wLjABAAAAUT_tvNpyI5-tObkvU2xaaqyeDpek5UJXLG8mePjYxTQ","userName": "章章干嘛呢","uniqueId": "...","caption": "夜宵简单吃个长沙滋啦冒油的炭烤牛肋排和三文鱼牛肉卷… #饭搭子 #深夜放毒 #寻味烟火气","playCount": 0,"likeCount": 126484,"shareCount": 521446,"commentCount": 9883,"collectCount": 12144,"videoUrl": "https://...","coverUrl": "https://...","videoPageUrl": "https://www.douyin.com/video/7615930241370348219","userPageUrl": "https://www.douyin.com/user/MS4wLjABAAAAUT_tvNpyI5-tObkvU2xaaqyeDpek5UJXLG8mePjYxTQ","postedAt": "2026-04-..","status": "success"}
💼 Use Cases & Examples
1. KOL & Creator Discovery for China-Market Brands
Influencer marketing teams at Western brands shortlisting Douyin KOLs for product seeding and brand partnerships.
Input: Search Users with keyword "美食" (food) or "时尚" (fashion) Output: ~19 creators per page with follower counts, verification, bio, avatar, secUid Use: Build a ranked KOL shortlist in 5 minutes instead of 5 hours of manual scrolling.
2. China Market-Entry Research
Market intelligence analysts monitoring short-video trends before launching a brand in China.
Input: Search Videos with industry keyword across 10 pages Output: 120+ videos with engagement metrics, captions, hashtags, posting times, music Use: Spot trending themes, viral content patterns, and competitor activity weeks before launch.
3. Content Trend Tracking
Content strategists at agencies tracking viral videos, breakout creators, and emerging hashtags daily.
Input: Scheduled Search Videos run with niche keyword Output: Time-series of trending content + engagement velocity Use: Feed a trend dashboard or alert system; spot virality 24–48 hours before mainstream.
4. Deep Comment Sentiment Mining (Top-Level + Reply Threads)
NLP / brand-perception teams analyzing reactions on competitor videos or branded-content collaborations.
Input: Video Comments → identify high-engagement comments → Video Sub-Comments on each Output: All top comments + full reply trees with author, location, like counts Use: Top-level comments are noisy; nested replies are where the real conversation lives. Pipe to a sentiment model to gauge true audience reaction.
5. Creator Catalog Mapping (KOL Audit)
Influencer-marketing agencies doing due diligence on a creator before signing them.
Input: User Videos operation across 10–20 pages for the creator's secUid Output: Full posting history with play/like/share counts and timestamps Use: Audit posting cadence, engagement drift, fake-fan red flags, and content quality at scale.
6. Brand Monitoring on Douyin
Brand managers tracking unauthorized mentions, branded-content performance, and counterfeits.
Input: Search Videos with brand or product keyword scheduled hourly Output: Every new mention with creator + engagement Use: React to viral mentions in near real-time; flag counterfeits & PR risks.
7. Douyin Video Data for Content Re-purposing & Research
Editors, researchers, & creators working with public Douyin videos for commentary, education, or research.
Input: Video Detail by ID
Output: HTTPS-ready videoUrl + cover + music + full engagement stats
Use: Archive, repurpose, or analyze video content programmatically.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/douyin-scraper').call({operation: 'searchVideo',keyword: '美食',maxPages: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/douyin-scraper').call(run_input={'operation': 'userVideos', 'secUid': 'MS4wLjAB...', 'maxPages': 5})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~douyin-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation":"videoDetail","videoId":"7615930241370348219"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: schedule daily or webhook from a brief-creator
- HTTP Request: call the actor's run-sync endpoint with
operation+ input - Process: filter by
_operationand pivot onvideoId/secUid/commentId - Action: push to BigQuery, Notion, Airtable, or a Slack alert
📊 Performance & Pricing
FREE Tier (Try It Now)
- Full feature access — every operation, every field, no quality compromise
- No credit card required
- Perfect for evaluating data depth before you commit
PAID Tier (Production Ready)
- Unlimited results per run
- Faster processing — no FREE-tier throttling
- Pay-per-result: only charged for successful rows, never for errors or empty pages
- Volume discounts up to 50% off at GOLD/PLATINUM/DIAMOND Apify tiers
💰 Best price on the market for premium Douyin data — see pricing tab for the full per-event ladder. Single-row operations (Video Detail, User Profile) carry richer payloads at premium pricing; bulk operations (Search, User Videos, Comments, Sub-Comments) are priced to scale with you.
❓ Frequently Asked Questions
Q: How many videos / users / comments can I extract per run?
A: FREE tier: full feature access for evaluation. PAID tier: unlimited — capped only by maxPages (default 5, max 50) and platform-side data availability.
Q: Does it work with private profiles or shadow-banned accounts? A: No — only publicly accessible Douyin content is supported. Private accounts and banned users return empty or error rows.
Q: What output formats are available? A: JSON, CSV, Excel, RSS, HTML, XML — export directly from the Apify dataset UI or via API.
Q: Are video URLs permanent?
A: Douyin CDN URLs typically expire after a few hours. Use videoUrlList for fallback mirrors, or re-run Video Detail when you need a fresh URL.
Q: Why are Douyin video IDs 19 digits — does the dataset preserve them?
A: Yes. We use a bigint-safe JSON parser so 19-digit IDs (aweme_id, uid, cid) round-trip without precision loss. Most scrapers silently corrupt these and break cross-operation joins.
Q: How do I find a secUid?
A: Visit any Douyin profile and copy the trailing segment of the URL (https://www.douyin.com/user/{SEC_UID}). The sec UID starts with MS4wLjAB... and is found in any video/comment result row's secUid field.
Q: Can I search in Chinese? A: Absolutely — Chinese queries surface the most relevant native Douyin creators. English and mixed queries also work.
Q: What's the difference between Video Comments and Video Sub-Comments?
A: Video Comments returns top-level comments on a video. Video Sub-Comments returns the reply thread underneath a specific top-level comment. Use the workflow: run Video Comments first → grab comment IDs with replyCount > 0 → run Video Sub-Comments for each.
Q: Is this legal? A: Yes — we only extract publicly available data. See the Legal section below.
Q: How long does processing take? A: ~3–10 seconds per page for paginated operations; ~2–5 seconds for single-row operations.
🐛 Troubleshooting
Page returned no rows / empty dataset
- Verify the input is correct: video ID is 19 digits, secUid starts with
MS4wLjAB, keyword is non-empty - Check that the video/user still exists on Douyin (try opening
videoPageUrloruserPageUrlfrom a result row) - For sub-comments: the comment must have
replyCount > 0to return reply data
HTTP errors / "Data source temporarily unavailable" rows
- The actor auto-retries transient failures up to 4 times with backoff. If you still see error rows, the upstream is rate-limited or down — retry the run after a few minutes.
19-digit video IDs look truncated in spreadsheet exports
- Spreadsheet apps (Excel, Google Sheets) auto-cast long integers to scientific notation. The actor preserves them as strings in JSON; in CSV exports, format the
videoIdcolumn as Text before opening.
Pagination ends earlier than maxPages requested
- That means the platform served the last page. Check
_pageon the last row —isLastPagewas true. Not all creators or keywords have 50 pages of content.
⚠️ Trademark Disclaimer
This actor is an independent scraping tool and is not affiliated with, endorsed by, or sponsored by Beijing Microlive Vision Technology Co., Ltd., Douyin, ByteDance Ltd., or any of its subsidiaries. "Douyin" and "TikTok China" are used solely in a descriptive sense to identify the public data source the actor reads from. Douyin® and TikTok® are trademarks of their respective owners. All other trademarks are the property of their respective owners.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
✨ More by SIÁN Agency
Part of the SIÁN Agency Apify portfolio — production-grade scrapers and AI tools used by agencies, research teams, and brands. A few that pair well with Douyin:
China & E-commerce
- Kwai & Kuaishou Scraper — China's #2 short-video platform: videos, profiles, comments, search
- Taobao & Tmall Product Scraper — China's #1 marketplace: products, search, shop catalogs, reviews
- Uber Eats Menu Scraper — restaurant menus + prices
Short-Video & Social Media
- Best TikTok AI Transcript Extractor — international TikTok video → text with metadata
- Instagram AI Transcript Extractor — Reels & Stories transcription
- Facebook AI Transcript Extractor — Facebook video → text
- YouTube Shorts AI Transcript & Metadata Extractor — Shorts data + transcripts
Real Estate (Global)
⭐ Leave a 5-Star Review
Love this actor? Leave a 5-star review here — it helps us build more features for you and lets other teams find it.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's Apify Console Issues tab
- 📧 hello@sian-agency.online
Built by SIÁN Agency | More Tools