Douyin 抖音 Scraper - Videos, Comments, Profiles & Hot Search
Pricing
from $4.08 / 1,000 results
Douyin 抖音 Scraper - Videos, Comments, Profiles & Hot Search
Scrape Douyin (抖音, the Chinese TikTok): video search, creator (博主) videos and profiles, comments, followers, hashtag and sound feeds, and the hot search board (热榜). Video authors and commenters come with user ID, sec_uid and IP location. No login or cookies needed. Export to JSON, CSV or Excel.
Pricing
from $4.08 / 1,000 results
Rating
0.0
(0)
Developer
Silkline
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
3
Monthly active users
5 hours ago
Last modified
Categories
Security
Limited permissionsShare
Douyin Scraper is a Douyin API that collects public data from Douyin (抖音, the Chinese version of TikTok) and returns clean, flat JSON. It covers the live hot search board (热榜), video search, a creator's (博主) videos, video details, creator profiles, public Douyin comments, hashtag feeds, follower and following lists, creator search, videos by sound, hashtag and sound search, danmaku, video collections, short-drama series, recommendation feeds, the home feed, experience search, related videos, comment replies, and the hot video, topic, search, account, event, sound, brand and city boards. The public profile of every user is included: user IDs, avatar, IP location (IP属地), gender and bio. No proxies, cookies, login or Chinese phone number needed, and you can call it over HTTP or with the Apify Python or JavaScript client and get the same JSON back.
What is Douyin?
Douyin (抖音) is the Chinese short-video app and the Chinese counterpart of TikTok. It runs separately from TikTok, with its own accounts, videos and trends. Creators post short videos with hashtags and sounds, viewers comment and like, and the app shows a hot search board of trending topics.
What data can you get?
Modes
Each run uses one mode. The type field of every item tells you which kind of record it is.
| Mode | Give it | Record type | You get |
|---|---|---|---|
hot | nothing | hotTopic | The current Douyin hot search board: rank, topic, heat value, view and video counts, search link |
search | a keyword | video | Videos (or, with contentType = images, image posts with imageUrls) matching the keyword, with engagement counts, hashtags, music, author data, cover and video links |
creator | profile URLs, share links or sec_uids (or creatorUids) | video | A creator's videos, newest first, in the same format as search |
video | video URLs, share links or video IDs | videoDetail | Full details of each video (same fields, one lookup per video). With withPlayCount on, also the real playCount (extra fee, see pricing) |
profile | profile URLs, share links, sec_uids, numeric uids or Douyin IDs (douyinIds) | profile | Nickname, user IDs, avatar, gender, IP location, country/province/city, bio, followers, following, total likes received, video count, verification text |
comments | video URLs, share links or video IDs | comment | Comment text, likes, reply count, time, plus each commenter's public profile. With includeReplies, the replies of comments that have 2 or more replies follow their comment (parentCommentId set) |
hashtag | hashtag IDs or hashtag URLs | video, hashtagDetail | The videos posted under a hashtag; with listing = detail, one record per hashtag with participants, views and creation time |
followers | profile URLs, share links or sec_uids (or creatorUids) | follower | The accounts that follow a creator, each with its public profile |
following | profile URLs, share links or sec_uids (or creatorUids) | following | The accounts a creator follows, same fields as followers |
users | a keyword | user | Creator search: matching accounts with nickname, avatar, followers, likes received, video count and category |
music | sound URLs or sound IDs | video, musicDetail | The videos that use a sound, in the same format as search; with listing = detail, one record per sound |
danmaku | video URLs, share links or video IDs | danmaku | The danmaku (scrolling live comments) of a video: text, time into the video, likes, sender ID. Each video is a run-start fee plus a fee per danmaku; reading stops at the first 32-second stretch of the video that has no danmaku |
feed | a channel (knowledge, food, game, anime, music, series) or a channel tag ID | video, series | A recommendation feed: fresh videos per request (series: recommended short dramas) |
hashtagSearch | a keyword | hashtag | Hashtags matching the keyword, with participants and views; pass challengeId to mode hashtag |
musicSearch | a keyword | music | Sounds matching the keyword, with author, length and number of videos made with them |
mix | collection URLs or collection IDs | mixDetail, video | A video collection: its detail record, then its videos numbered by episode |
series | series IDs, or creators | seriesDetail, video, series | With series IDs: the series detail and its numbered episodes. With creators: their short dramas |
related | video URLs, share links or video IDs | video | Videos related to a video |
homeFeed | nothing | video | The Douyin home recommendation feed (guest view): fresh videos on every request, same fields as search. Reading stops when the feed repeats or maxResults is reached |
experienceSearch | a keyword | video | Experience search (the "experience" results tab): videos and image posts matching the keyword, in the same format as search. Like search, the start fee is charged twice |
board | a board name (optional keyword, time window, city, dates, brand category; for the detail boards a list of event IDs or hot word IDs) | boardVideo, boardTopic, boardHotspot, boardWord, boardAccount, boardEvent, boardMusic, boardBrand, boardProp, boardEventDetail, boardWordDetail, boardWordVideo, boardRelatedWord | The extended boards: videos, lowFanHits, highCompletion, highLikes, followerGrowth (video boards), topics, risingTopics, challenges (hashtags), rising, city, hotTotal (hot spots), searchRanking, risingSearches, hotWords (words), hotAccounts, events (calendar), eventDetail (one calendar activity per event ID), hotWordDetail (one hot content word per word ID, with its related videos and related words), musicChart, brandChart, and the creator-center and DOU+ boards creatorHotSpots, creatorTopics, creatorMusic, creatorProps, creatorVideos, douplusVideos, douplusTalents (boardProp for props), with rank and heat |
Douyin videos: search results and video details (video, videoDetail)
| Field | Description |
|---|---|
awemeId | Douyin video ID |
url | Link to the video page |
description | Video caption as published |
createdAt | Publish time |
likeCount, commentCount, shareCount, collectCount | Likes, comments, shares and saves |
durationSeconds | Video length in seconds |
hashtags | Hashtags in the caption |
musicId, musicTitle, musicAuthor | The sound used; pass musicId to mode music |
authorUid | Author's numeric Douyin user ID |
authorSecUid | Author's sec_uid |
authorDouyinId | Author's custom Douyin ID |
authorNickname | Author's nickname |
authorIpLocation | Author's IP location (province or country) shown on the video |
authorRegion | Author's country or region code, e.g. CN |
authorGender | male or female; null when not shown |
authorBio | Author's bio as published |
authorFollowerCount | Author's follower count |
authorVerified | Author's verification text |
authorAvatar | Author's avatar image URL (largest available) |
coverUrl, videoUrl | Cover image and video file links (temporary CDN links) |
imageUrls | Pictures of an image post (null for a video; the url then points to /note/) |
playCount | Only on videoDetail (and collection records): real play count; null unless you turn withPlayCount on and the count could be read |
collectionId, episode | Only on videos of modes mix and series: the collection and the episode number |
Douyin comments (comment)
| Field | Description |
|---|---|
text | Comment text |
commentId | Comment ID |
awemeId | ID of the video the comment belongs to |
likeCount, replyCount | Likes and number of replies |
createdAt | Comment time |
isPinned | Whether the comment is pinned |
parentCommentId | For a reply: the comment it answers; null for a top-level comment |
nickname | Commenter's nickname |
userId | Commenter's numeric Douyin user ID |
userSecUid | Commenter's sec_uid |
userDouyinId | Commenter's custom Douyin ID when set |
userIpLocation | Commenter's IP location (province or country) shown under the comment |
userAvatar | Commenter's avatar image URL |
userVerified | Commenter's verification text |
Douyin profiles, followers and following (profile, follower, following)
| Field | Description |
|---|---|
nickname | Account nickname |
uid | Numeric Douyin user ID |
secUid | The account's sec_uid |
douyinId | Custom Douyin ID |
followerCount, followingCount | Followers and accounts followed |
likedCount | Total likes received |
videoCount | Number of videos |
ipLocation | IP location shown on the profile, without the label prefix |
country, province, city | Location shown on the profile |
gender | male or female; null when not shown |
bio | Bio as published |
verified | Verification text |
avatarUrl | Avatar image URL (largest available) |
url | Link to the profile |
ownerSecUid | Only on follower / following: the creator whose list it is |
Douyin creator search (user)
Creator search entries carry secUid, nickname, avatarUrl, followerCount, likedCount, videoCount, category (the category tag Douyin gives the account) and url.
Douyin hot search board (hotTopic)
Hot topics carry rank, word (the topic), hotValue (heat value), viewCount, videoCount, sentenceId and url (search link).
Douyin danmaku, hashtags, sounds and collections (danmaku, hashtag, hashtagDetail, music, musicDetail, mixDetail, series, seriesDetail)
danmaku:danmakuId,awemeId,text,offsetSeconds(time into the video),likeCount,userId.hashtag/hashtagDetail:challengeId,word,url,description,userCount(participants),viewCount,createdAt.music/musicDetail:musicId,musicTitle,musicAuthor,album,durationSeconds,userCount(videos made with the sound),url,coverUrl.mixDetail,seriesDetail,series:collectionId,title,description,coverUrl,playCount,collectCount,episodeCount,totalEpisodes,statusText,authorSecUid,authorNickname.
Douyin trend boards: videos, topics, events, brands (boardVideo, boardTopic, boardHotspot, boardWord, boardAccount, boardEvent, boardMusic, boardBrand, boardProp, boardEventDetail, boardWordDetail, boardWordVideo, boardRelatedWord)
All board entries carry board (the board option name) and rank; most also carry createdAt (publish or creation time).
boardVideoaddsawemeId,description,playCount(plays),likeCount,likeRate(likes per play),followerGain(followers the video brought in),followRate(followers gained per play),score(board heat score),authorNickname,authorAvatar,authorFollowerCount,durationSeconds,coverUrlandurl. It has no heat history. BoardslowFanHits,highCompletion,highLikesandfollowerGrowthuse this record.boardTopicaddschallengeId(hashtag ID; pass it to modehashtag),word,hotValue,viewCount,videoCount,avgViewCount(average views per video under the topic) and a dailytrendas{date, value}.boardHotspotaddsword,hotValue,rankChange(rank movement since the previous snapshot),videoCount,category(Douyin's tag for the hot spot),sentenceId,cityCodeand an hourlytrendas{time, hotValue}. BoardschallengesandhotTotaluse this record too.boardWord(boardssearchRanking,risingSearches,hotWords) addsword,wordId,hotValue,urland a dailytrend.boardAccount(boardhotAccounts) addssecUid,nickname,followerCount,likedCount,videoCount,followerGain,newLikeCount,followRateand atrend.boardEvent(boardevents) addseventId,word,category,startDate,endDate,coverUrl.boardEventDetail(boardeventDetail, one record per ID ineventIds; take the IDs fromboardEventrows) addseventId,word,category,eventCity,startDate,endDate,publishStartDate,publishEndDate(the window in which videos count),activityDescription,reward,publishCount(videos published for the activity so far),relatedTopics,challenges({challengeId, name}; pass achallengeIdto modehashtag) andexampleVideos({awemeId, url, description, createdAt, coverUrl}). An ID the calendar does not know returns nothing.- Hot word detail (board
hotWordDetail, one lookup per ID inwordIds; take the IDs fromboardWordrows of boardhotWords) returns, for each word, oneboardWordDetailrecord (word,wordId,hotValue,url, dailytrendof the word's heat, dailycontentTrend,commentTrend,likeTrend,shareTrend, andwindows: totals for the last 1, 7, 30 and 60 days) followed by up to 30boardWordVideorows (awemeId,url,description,createdAt,durationSeconds,coverUrl,likeCount,commentCount,shareCount,authorNickname,authorAvatar) and up to 9boardRelatedWordrows (word,wordId,hotValue,url,trend). Rows carryrelatedToandrelatedToId(the word they belong to). A word ID is only valid for about a day after its board entry, so use a fresh one: an old or unknown ID returns nothing. - Creator-center boards (the lists Douyin's creator center shows creators; one list per run, no paging):
creatorHotSpotsreturnsboardHotspot(word,hotValue,rankChange,category,queryId,coverUrl,url;hotSpotRankingoverall, local or rising);creatorTopicsreturnsboardTopic(word,queryId,playCount,likeCount,commentCount,shareCount,videoCount,publisherCount,coverUrl);creatorMusicreturnsboardMusic(musicTitle,queryId,hotValue,playCount,likeCount,commentCount,shareCount,videoCount);creatorPropsreturnsboardProp(word,queryId,playCount,videoCount,shootCount,exposureCount,collectCount,likeCount);creatorVideosreturnsboardVideo(awemeId,url,description,hotValue,playCount,likeCount,commentCount,shareCount,durationSeconds,authorNickname).queryIdis the board's own ID, not a Douyin hashtag or sound ID. Topic, sound and prop entries carry nourl, hashtag ID or sound ID. A heat value of 0 from Douyin is returned as null. - DOU+ boards:
douplusVideosreturnsboardVideofor the ranking period (playCount,likeCount,likeRate,followerGain,followRate,completionRate(share watched to the end),score(popularity index),createdAt,authorNickname,authorFollowerCount);douplusTalentsreturnsboardAccount(secUid,url,nickname,douyinId,followerCount,avatarUrl) for one creator category. boardMusic(boardmusicChart) has the sound fields plushotValue;boardBrand(boardbrandChart) addsbrandId,word,hotValue,heatChange,rankChange,secUid.
How to use Douyin Scraper
- Open Douyin Scraper on Apify and go to the Input tab.
- Choose a Mode, for example "Search videos by keyword" or "Video comments".
- Fill the input for that mode: a keyword, creator links, video links, hashtag IDs, sound IDs or a board name.
- Set Max results to the number of items you want.
- Click Start and wait for the run to finish.
- Open the dataset, pick a view (Videos, Comments, Creator profiles or Hot search board) and export to JSON, CSV, Excel or another format.
Input
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
mode | string | Yes | What to scrape: hot, search, creator, video, profile, hashtag, comments, followers, following, users, music, board, danmaku, feed, hashtagSearch, musicSearch, mix, series, related, homeFeed or experienceSearch | hot |
keyword | string | Optional | Search keyword for modes search, users, hashtagSearch, musicSearch and experienceSearch. Chinese keywords work best, e.g. "美食". In mode board it is an optional filter (leave empty for the full board) | 美食 |
creators | array of strings | Optional | For modes creator, profile, followers, following, series: Douyin profile URLs (https://www.douyin.com/user/MS4w...), v.douyin.com share links or sec_uid values | none |
creatorUids | array of strings | Optional | For modes creator, followers, following, series: numeric Douyin uids (digits only, at least 9, e.g. 98639145193), an alternative to creators; not the short numeric Douyin ID of a profile. Each uid is looked up first (our own extra request, not charged to you separately) | none |
videos | array of strings | Optional | For modes video, comments, danmaku and related: Douyin video URLs, v.douyin.com share links or numeric video IDs | none |
hashtags | array of strings | Optional | For mode hashtag: hashtag IDs or URLs (https://www.douyin.com/hashtag/1767587367821390) | none |
musics | array of strings | Optional | For mode music: Douyin sound URLs (https://www.douyin.com/music/7482371896877665043) or numeric sound IDs | none |
board | string | Optional | For mode board: videos, topics, risingTopics, rising, city, challenges, hotTotal, lowFanHits, highCompletion, highLikes, followerGrowth, searchRanking, risingSearches, hotWords, hotAccounts, events, eventDetail, hotWordDetail, musicChart, brandChart, creatorHotSpots, creatorTopics, creatorMusic, creatorProps, creatorVideos, douplusVideos or douplusTalents | videos |
timeWindowHours | integer | Optional | For the video, topic, search, word and account boards: how far back to look, in hours. Allowed values: 1, 24, 72 or 168 | 24 |
city | string | Optional | For the city board: Chinese city name (e.g. 杭州) or numeric city code. Empty reads the hot spots of all cities. Required for creatorHotSpots with hotSpotRanking local | none |
creatorCategory | string | Optional | Creator-center boards creatorTopics, creatorMusic, creatorProps, creatorVideos: category code (0 = all, 333 food, 334 travel, 335 cars, 336 tech, 302 games and more, see the input form) | 0 |
rankingPeriod | string | Optional | Creator-center boards (except creatorHotSpots) and douplusVideos: 1 = 24 hours, 2 = 7 days, 3 = 30 days | 24 hours, douplusVideos 7 days |
hotSpotRanking | string | Optional | Board creatorHotSpots: overall, local (needs city) or rising | overall |
douplusDimension | string | Optional | Board douplusVideos: popularity, lowFan, completion, likeRate or followRate | popularity |
douplusCategory | string | Optional | Board douplusVideos: vertical code (601 drama, 606 music, 628 food, 634 entertainment and more, see the input form) | 634 |
talentCategory | string | Optional | Board douplusTalents: creator category in Chinese, e.g. 音乐, 美食, 科技 (34 choices in the input form) | 音乐 |
contentType | string | Optional | Mode search: videos or images (image posts) | videos |
listing | string | Optional | Modes hashtag, music: videos, or detail for one record per hashtag or sound (charged as a detail) | videos |
includeReplies | boolean | Optional | Mode comments: also fetch replies of comments with 2 or more replies; replies count toward maxResults | false |
maxRepliesPerComment | integer | Optional | Mode comments with replies: replies fetched per comment (1 to 500) | 20 |
withPlayCount | boolean | Optional | Mode video: also look up the real play count of each video. Off by default; each count that is found costs one extra run-start fee (see pricing), a video whose count cannot be read costs nothing extra | false |
channel | string | Optional | Mode feed: knowledge, food, game, anime, music or series | knowledge |
channelTagId | integer | Optional | Mode feed: a numeric channel tag; replaces channel when set | none |
mixes | array of strings | Optional | Mode mix: collection URLs (https://www.douyin.com/collection/...) or IDs | none |
seriesIds | array of strings | Optional | Mode series: series IDs (detail and episodes); empty lists the creators' series | none |
uids | array of strings | Optional | Mode profile: numeric Douyin user IDs | none |
douyinIds | array of strings | Optional | Mode profile: custom Douyin IDs | none |
eventIds | array of strings | Optional | Mode board, board eventDetail: calendar event IDs (the eventId of boardEvent rows). Every event after the first also pays one run-start fee | none |
wordIds | array of strings | Optional | Mode board, board hotWordDetail: hot content word IDs (the wordId of boardWord rows from board hotWords; use a fresh one). Every word after the first also pays one run-start fee | none |
dateFrom, dateTo | string | Optional | Boards hotTotal and events: first and last day, e.g. 2026-10-19 | last two days / next two weeks |
contentTag | string | Optional | Boards videos, lowFanHits, highCompletion, highLikes, followerGrowth, topics, risingTopics: only entries of one content vertical, sub-verticals included (38 choices in the input form, e.g. 美食, 旅行, 科技; all = no filter) | all |
hotCategory | string | Optional | Boards hotTotal and events: only one hot topic category (23 choices in the input form, e.g. 美食, 娱乐, 体育; all = no filter) | all |
brandCategory | integer | Optional | Board brandChart: 10 cars, 11 phones, 12 beauty, 34 luxury, 14 food and drink, 28 home appliances, 16 clothing, 20 mother and baby, 13 daily chemicals, 999 games, 27 health, 32 restaurants, 21 hotels and travel | 10 |
maxResults | integer | Optional | Maximum number of items to return in total for this run (1 to 5000). You are charged per item returned | 20 |
An empty input {} reads the hot search board, so you can try the Actor in seconds.
Search videos by keyword:
{"mode": "search","keyword": "美食","maxResults": 50}
A creator's videos:
{"mode": "creator","creators": ["https://www.douyin.com/user/MS4wLjABAAAAvcQlQ5vR2pYV04MZ6EzflPQdWTJbVBNnDQTjKiLoH90"],"maxResults": 40}
Creator profiles:
{"mode": "profile","creators": ["https://www.douyin.com/user/MS4wLjABAAAAvcQlQ5vR2pYV04MZ6EzflPQdWTJbVBNnDQTjKiLoH90"]}
Video comments:
{"mode": "comments","videos": ["https://www.douyin.com/video/7615131515182385640"],"maxResults": 100}
Hashtag videos:
{"mode": "hashtag","hashtags": ["https://www.douyin.com/hashtag/1767587367821390"]}
A creator's followers:
{"mode": "followers","creators": ["https://www.douyin.com/user/MS4wLjABAAAAvcQlQ5vR2pYV04MZ6EzflPQdWTJbVBNnDQTjKiLoH90"],"maxResults": 100}
Videos using a sound:
{"mode": "music","musics": ["7482371896877665043"],"maxResults": 50}
Hot video board for the last 24 hours:
{"mode": "board","board": "videos","timeWindowHours": 24,"maxResults": 50}
Hot videos of the last 7 days in the food vertical, and the hot topics of the sports category:
{"mode": "board", "board": "videos", "timeWindowHours": 168, "contentTag": "美食"}
{"mode": "board", "board": "hotTotal", "hotCategory": "体育"}
A creator given by numeric uid:
{"mode": "creator", "creatorUids": ["98639145193"], "maxResults": 20}
Hot spots of one city:
Creator-center hot videos of the last 7 days in the food category, and DOU+ creators of one category:
{"mode": "board","board": "creatorVideos","creatorCategory": "333","rankingPeriod": "2"}
{"mode": "board","board": "douplusTalents","talentCategory": "美食","maxResults": 20}
{"mode": "board","board": "city","city": "杭州","maxResults": 50}
Output example
The values below are illustrative samples.
A video (search, creator, hashtag, music; video details use "type": "videoDetail"):
{"type": "video","awemeId": "7615131515182385640","url": "https://www.douyin.com/video/7615131515182385640","description": "#红烧牛肉 家常做法,麻辣鲜香又入味 #家常菜","createdAt": "2026-03-09T07:59:00Z","durationSeconds": 189.6,"likeCount": 561,"commentCount": 34,"shareCount": 180,"collectCount": 380,"hashtags": ["红烧牛肉", "家常菜"],"musicId": "7482371896877665043","musicTitle": "原声","musicAuthor": "示例厨房","authorSecUid": "MS4wLjABAAAA_example_sec_uid","authorUid": "10000000001","authorDouyinId": "sample_kitchen","authorNickname": "示例厨房","authorAvatar": "https://p3.douyinpic.com/aweme/1080x1080/aweme-avatar/example.webp","authorGender": "male","authorBio": "每天分享家常菜","authorIpLocation": "重庆","authorRegion": "CN","authorFollowerCount": 125000,"authorVerified": null,"coverUrl": "https://p3.douyinpic.com/example-cover.jpeg","videoUrl": "https://v3.douyinvod.com/example-video.mp4"}
A comment:
{"type": "comment","commentId": "7615200000000000001","awemeId": "7615131515182385640","text": "看着就好吃,周末试试","likeCount": 42,"replyCount": 3,"createdAt": "2026-03-09T10:15:00Z","isPinned": false,"nickname": "示例用户","userId": "10000000002","userSecUid": "MS4wLjABAAAA_example_commenter","userDouyinId": null,"userAvatar": "https://p3.douyinpic.com/aweme/100x100/example.jpeg","userIpLocation": "浙江","userVerified": null}
A creator profile (follower and following entries use the same fields plus ownerSecUid):
{"type": "profile","secUid": "MS4wLjABAAAA_example_sec_uid","uid": "10000000001","douyinId": "sample_kitchen","nickname": "示例厨房","avatarUrl": "https://p3.douyinpic.com/aweme/1080x1080/aweme-avatar/example.webp","gender": "male","ipLocation": "重庆","country": "中国","province": "重庆","city": null,"bio": "每天分享家常菜","followerCount": 125000,"followingCount": 86,"likedCount": 2300000,"videoCount": 412,"verified": null,"url": "https://www.douyin.com/user/MS4wLjABAAAA_example_sec_uid"}
A hot search topic:
{"type": "hotTopic","rank": 1,"word": "示例热搜话题","hotValue": 11800000,"viewCount": 52000000,"videoCount": 320,"sentenceId": "2100000","url": "https://www.douyin.com/search/示例热搜话题"}
A hot topic board entry:
{"type": "boardTopic","board": "topics","rank": 1,"challengeId": "1767587367821390","word": "家常菜","hotValue": 5600000,"viewCount": 890000000,"videoCount": 15000,"avgViewCount": 59000,"createdAt": "2025-11-02T00:00:00Z","trend": [{"date": "2026-03-08", "value": 5200000},{"date": "2026-03-09", "value": 5600000}],"url": "https://www.douyin.com/hashtag/1767587367821390"}
How much does it cost?
The Actor uses pay-per-event pricing: a small start fee per run plus a fee per item returned. Prices in USD:
| Event | When it is charged | Bronze | Silver | Gold, Platinum, Diamond |
|---|---|---|---|---|
run-start | Once per run. A keyword search for videos, hashtags or sounds (modes search, hashtagSearch, musicSearch) is charged the start fee twice; all other modes, including creator search, once | $0.00005 | $0.00005 | $0.00005 |
result | Each video, comment (and reply), hot topic, follower or following entry, creator, hashtag, sound, series or board entry returned (the detail boards eventDetail and hotWordDetail: each record or row, and each ID after the first also pays one run-start fee) | $0.005 | $0.004511 | $0.004076 |
row | Each danmaku returned (mode danmaku). Every video in danmaku mode also pays the run-start fee: the first one with the run, each further video when its lookup starts | $0.002 | $0.001804 | $0.00163 |
detail | Each full video detail (mode video, one lookup per video; with withPlayCount on, a video whose real play count was found is charged one further run-start fee), each hashtag, sound, collection or series detail record | $0.005 | $0.004511 | $0.004076 |
profile | Each creator profile (mode profile). A numeric uid or Douyin ID is looked up with one request when the answer already holds the profile, otherwise with a second one; the price is the same | $0.00552 | $0.00498 | $0.0045 |
The run-start fee is charged when the first request succeeds, even if that request returns nothing. It is not charged when the run fails from the start or rejects the IDs, or when the spending limit cannot cover it.
You never pay for more than maxResults items.
Worked examples:
- 100 comments on a Bronze plan: $0.00005 + 100 × $0.005 = $0.50005, so 100 results cost about $0.50.
- 100 video details on a Gold plan: $0.00005 + 100 × $0.004076 = $0.40765.
- 100 creator profiles on a Silver plan: $0.00005 + 100 × $0.00498 = $0.49805.
- 500 danmaku of one video on a Bronze plan: $0.00005 + 500 × $0.002 = $1.00005. Three videos with 500 each: 3 × $0.00005 + 1,500 × $0.002 = $3.00015.
- 100 video details with real play counts on a Gold plan: $0.00005 + 100 × ($0.004076 + $0.00005) = $0.41265 (without
withPlayCount: $0.40765).
On the free Apify plan you get 2 free trial runs of this Actor with your own input, up to 10 results each, and nothing is charged; after that, runs return a stored sample dataset (a real result of the prefilled input). Use any paid Apify plan for full runs.
Use cases
- Trend and topic research: read the hot search board and the topic and rising boards to see what China is searching for hour by hour, then pull the videos behind each topic.
- Creator and influencer research: compare creators by followers, total likes received, video count and recent video performance before a campaign or partnership.
- Competitor and market monitoring: follow brand hashtags, product keywords and rival accounts on a schedule.
- Sentiment and audience analysis: collect comments in bulk, with commenter IP location, for NLP, translation and market research.
- Sound and content analysis: find which videos use a given sound and how hot videos perform by plays, like rate and follower gain.
- AI and data projects: structured Chinese short-video data for models, dashboards and reports.
Integrations and API
You can start runs through the Apify API, schedule them to run hourly or daily, and connect the results to Apify integrations such as webhooks, Google Sheets, Make or Zapier. Every run stores its items in a dataset that you can read over the API or export in JSON, CSV, Excel and other formats.
Example with the Python apify-client:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("clover_folktale/douyin-scraper").call(run_input={"mode": "comments","videos": ["https://www.douyin.com/video/7615131515182385640"],"maxResults": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Tips and limits
- Search returns about 8-10 videos per page and can go many pages deep.
- Douyin does not publish play counts through these lookups, so videos from search, creator, hashtag, sound and detail modes have likes, comments, shares and saves but no
playCount. Hot video board entries (boardVideo) do carryplayCount. - Video and cover links are temporary CDN links; download what you need soon after the run.
- Hashtag mode needs the hashtag ID (the number in the hashtag page URL); names are not looked up. The
challengeIdof a topic board entry can be passed straight to modehashtag. - Every video carries its
musicId, which you can pass to modemusic. A sound with only a few videos returns just those videos. - Many creators hide their followers and following list. Douyin then shows nothing, so the creator returns no results and you pay nothing for it. Each page holds about 15-20 accounts.
- Creator-center and DOU+ boards are single lists (hot spots 50, topics 20, sounds about 10, props 20, videos 20, DOU+ videos about 38; creators up to 100); a narrow category or period can return fewer.
- Boards hold about 40-50 entries per page. For the city board use a Chinese city name (e.g. 杭州) or a city code; leave it empty for all cities.
- Invalid IDs or links are skipped.
- Numbers such as likes and followers are what Douyin shows at the time of the run.
- Unreadable entries. If one entry of an ID or link list cannot be read (a typo, a stray cell, a link to the wrong kind of page), it is skipped and named in the log, and the status message says how many were skipped; the other entries still run and nothing is charged for a skipped one. Only a list with no readable entry stops the run with an input error.
- Free plan. On the free Apify plan you get 2 free trial runs of this Actor with your own input, up to 10 results each, and nothing is charged; after that, runs return a stored sample dataset (a real result of the prefilled input). Use any paid Apify plan for full runs.
Fields that are often empty
- Comment
userVerifiedis filled only for verified commenters. - Creator videos have no
authorGender. - Profile
city,province,countryandgenderare empty when Douyin doesn't return them for the account. - Follower and following entries usually have no
gender,ipLocation,city,province,countryorverified, and many have no bio. - Creator search entries have only the fields listed above (no user ID or bio).
- Board videos have no author ID.
Privacy
Only public data is returned. Public profile data of every user is included: user IDs, avatar, IP location, gender and verification for video authors, commenters and creator profiles. Birthdays, ages and schools are not included. The bio is returned as published, including any business contact info the creator put there.
FAQ
Do I need a Douyin account, cookies or proxies?
No. You don't need a login, cookies, proxies or a Chinese phone number. You only need an Apify account.
Is it legal to scrape Douyin?
The Actor returns only public data that Douyin shows to any visitor. It does not return private data such as private messages, birthdays, ages or schools. You are responsible for how you use the data, including compliance with privacy laws such as GDPR and with Douyin's terms.
How fresh is the data?
Each run reads Douyin live. Numbers such as likes and followers are what Douyin shows at the time of the run.
Why are some fields empty?
Douyin does not return every field for every account or video. For example, follower entries usually have no gender or IP location, creator videos have no authorGender, and userVerified is filled only for verified commenters. See "Fields that are often empty" above.
How many results can I get?
Up to 5000 items per run with maxResults. Some sources are smaller: a hidden follower list returns nothing, and a sound with few videos returns only those videos.
Can I get play counts?
Yes, in mode video with withPlayCount turned on: the video detail then carries the real playCount. Each video whose count was found costs one extra run-start fee ($0.00005); when the count cannot be read, playCount is null and nothing extra is charged. The hot video boards (boardVideo) carry plays too. Search, creator and hashtag results have likes, comments, shares and saves but no playCount.
Can I schedule runs and export the data?
Yes. You can schedule runs in Apify, start them through the API, and export every dataset to JSON, CSV, Excel and other formats.
What happens with a wrong link or ID?
Invalid IDs or links are skipped. Missing a field or a mode? Open an issue from the Actor page and it will be looked at.
Other tools by Silkline
Every tool below charges per result and needs no login or cookies.
Chinese social media and content
- Xiaohongshu 小红书 RedNote Scraper - Notes, Comments & Replies
- Weibo 微博 Scraper - Hot Search, Posts, Comments & Users
- Bilibili B站 Scraper - Videos, Comments, Danmaku & Subtitles
- WeChat Official Account 公众号 Scraper - Articles & Read Counts
- Zhihu 知乎 Scraper - Answers, Articles, Comments & Hot List
- Kuaishou 快手 Scraper - Videos, Comments, Users & Hot Lists
- Douban 豆瓣 Scraper - Movies, Ratings, Comments & Reviews
- Toutiao 今日头条 Scraper - Articles, Videos & Comments
- Youku 优酷 Scraper - Video Search, Video & Channel Details
- China Social Media Search - Weibo, WeChat, Douyin & More
More from Silkline
- Taobao Tmall 淘宝 Product Scraper - Prices, Sales & Shops (E-commerce)
- TikTok Scraper - Video Search, Hashtags, Profiles & Sounds (Global platforms)
- Douyin Xingtu 巨量星图 KOL Scraper - Rates, CPM & Rankings (Marketing and creator data)