Douyin 抖音 Scraper - Videos, Comments, Profiles & Hot Search avatar

Douyin 抖音 Scraper - Videos, Comments, Profiles & Hot Search

Pricing

from $4.08 / 1,000 results

Go to Apify Store
Douyin 抖音 Scraper - Videos, Comments, Profiles & Hot Search

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

Silkline

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

5 hours ago

Last modified

Security

Limited permissions

Share

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.

ModeGive itRecord typeYou get
hotnothinghotTopicThe current Douyin hot search board: rank, topic, heat value, view and video counts, search link
searcha keywordvideoVideos (or, with contentType = images, image posts with imageUrls) matching the keyword, with engagement counts, hashtags, music, author data, cover and video links
creatorprofile URLs, share links or sec_uids (or creatorUids)videoA creator's videos, newest first, in the same format as search
videovideo URLs, share links or video IDsvideoDetailFull details of each video (same fields, one lookup per video). With withPlayCount on, also the real playCount (extra fee, see pricing)
profileprofile URLs, share links, sec_uids, numeric uids or Douyin IDs (douyinIds)profileNickname, user IDs, avatar, gender, IP location, country/province/city, bio, followers, following, total likes received, video count, verification text
commentsvideo URLs, share links or video IDscommentComment 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)
hashtaghashtag IDs or hashtag URLsvideo, hashtagDetailThe videos posted under a hashtag; with listing = detail, one record per hashtag with participants, views and creation time
followersprofile URLs, share links or sec_uids (or creatorUids)followerThe accounts that follow a creator, each with its public profile
followingprofile URLs, share links or sec_uids (or creatorUids)followingThe accounts a creator follows, same fields as followers
usersa keyworduserCreator search: matching accounts with nickname, avatar, followers, likes received, video count and category
musicsound URLs or sound IDsvideo, musicDetailThe videos that use a sound, in the same format as search; with listing = detail, one record per sound
danmakuvideo URLs, share links or video IDsdanmakuThe 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
feeda channel (knowledge, food, game, anime, music, series) or a channel tag IDvideo, seriesA recommendation feed: fresh videos per request (series: recommended short dramas)
hashtagSearcha keywordhashtagHashtags matching the keyword, with participants and views; pass challengeId to mode hashtag
musicSearcha keywordmusicSounds matching the keyword, with author, length and number of videos made with them
mixcollection URLs or collection IDsmixDetail, videoA video collection: its detail record, then its videos numbered by episode
seriesseries IDs, or creatorsseriesDetail, video, seriesWith series IDs: the series detail and its numbered episodes. With creators: their short dramas
relatedvideo URLs, share links or video IDsvideoVideos related to a video
homeFeednothingvideoThe 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
experienceSearcha keywordvideoExperience 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
boarda 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, boardRelatedWordThe 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)

FieldDescription
awemeIdDouyin video ID
urlLink to the video page
descriptionVideo caption as published
createdAtPublish time
likeCount, commentCount, shareCount, collectCountLikes, comments, shares and saves
durationSecondsVideo length in seconds
hashtagsHashtags in the caption
musicId, musicTitle, musicAuthorThe sound used; pass musicId to mode music
authorUidAuthor's numeric Douyin user ID
authorSecUidAuthor's sec_uid
authorDouyinIdAuthor's custom Douyin ID
authorNicknameAuthor's nickname
authorIpLocationAuthor's IP location (province or country) shown on the video
authorRegionAuthor's country or region code, e.g. CN
authorGendermale or female; null when not shown
authorBioAuthor's bio as published
authorFollowerCountAuthor's follower count
authorVerifiedAuthor's verification text
authorAvatarAuthor's avatar image URL (largest available)
coverUrl, videoUrlCover image and video file links (temporary CDN links)
imageUrlsPictures of an image post (null for a video; the url then points to /note/)
playCountOnly on videoDetail (and collection records): real play count; null unless you turn withPlayCount on and the count could be read
collectionId, episodeOnly on videos of modes mix and series: the collection and the episode number

Douyin comments (comment)

FieldDescription
textComment text
commentIdComment ID
awemeIdID of the video the comment belongs to
likeCount, replyCountLikes and number of replies
createdAtComment time
isPinnedWhether the comment is pinned
parentCommentIdFor a reply: the comment it answers; null for a top-level comment
nicknameCommenter's nickname
userIdCommenter's numeric Douyin user ID
userSecUidCommenter's sec_uid
userDouyinIdCommenter's custom Douyin ID when set
userIpLocationCommenter's IP location (province or country) shown under the comment
userAvatarCommenter's avatar image URL
userVerifiedCommenter's verification text

Douyin profiles, followers and following (profile, follower, following)

FieldDescription
nicknameAccount nickname
uidNumeric Douyin user ID
secUidThe account's sec_uid
douyinIdCustom Douyin ID
followerCount, followingCountFollowers and accounts followed
likedCountTotal likes received
videoCountNumber of videos
ipLocationIP location shown on the profile, without the label prefix
country, province, cityLocation shown on the profile
gendermale or female; null when not shown
bioBio as published
verifiedVerification text
avatarUrlAvatar image URL (largest available)
urlLink to the profile
ownerSecUidOnly 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).

  • boardVideo adds awemeId, 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, coverUrl and url. It has no heat history. Boards lowFanHits, highCompletion, highLikes and followerGrowth use this record.
  • boardTopic adds challengeId (hashtag ID; pass it to mode hashtag), word, hotValue, viewCount, videoCount, avgViewCount (average views per video under the topic) and a daily trend as {date, value}.
  • boardHotspot adds word, hotValue, rankChange (rank movement since the previous snapshot), videoCount, category (Douyin's tag for the hot spot), sentenceId, cityCode and an hourly trend as {time, hotValue}. Boards challenges and hotTotal use this record too.
  • boardWord (boards searchRanking, risingSearches, hotWords) adds word, wordId, hotValue, url and a daily trend.
  • boardAccount (board hotAccounts) adds secUid, nickname, followerCount, likedCount, videoCount, followerGain, newLikeCount, followRate and a trend.
  • boardEvent (board events) adds eventId, word, category, startDate, endDate, coverUrl.
  • boardEventDetail (board eventDetail, one record per ID in eventIds; take the IDs from boardEvent rows) adds eventId, 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 a challengeId to mode hashtag) and exampleVideos ({awemeId, url, description, createdAt, coverUrl}). An ID the calendar does not know returns nothing.
  • Hot word detail (board hotWordDetail, one lookup per ID in wordIds; take the IDs from boardWord rows of board hotWords) returns, for each word, one boardWordDetail record (word, wordId, hotValue, url, daily trend of the word's heat, daily contentTrend, commentTrend, likeTrend, shareTrend, and windows: totals for the last 1, 7, 30 and 60 days) followed by up to 30 boardWordVideo rows (awemeId, url, description, createdAt, durationSeconds, coverUrl, likeCount, commentCount, shareCount, authorNickname, authorAvatar) and up to 9 boardRelatedWord rows (word, wordId, hotValue, url, trend). Rows carry relatedTo and relatedToId (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): creatorHotSpots returns boardHotspot (word, hotValue, rankChange, category, queryId, coverUrl, url; hotSpotRanking overall, local or rising); creatorTopics returns boardTopic (word, queryId, playCount, likeCount, commentCount, shareCount, videoCount, publisherCount, coverUrl); creatorMusic returns boardMusic (musicTitle, queryId, hotValue, playCount, likeCount, commentCount, shareCount, videoCount); creatorProps returns boardProp (word, queryId, playCount, videoCount, shootCount, exposureCount, collectCount, likeCount); creatorVideos returns boardVideo (awemeId, url, description, hotValue, playCount, likeCount, commentCount, shareCount, durationSeconds, authorNickname). queryId is the board's own ID, not a Douyin hashtag or sound ID. Topic, sound and prop entries carry no url, hashtag ID or sound ID. A heat value of 0 from Douyin is returned as null.
  • DOU+ boards: douplusVideos returns boardVideo for the ranking period (playCount, likeCount, likeRate, followerGain, followRate, completionRate (share watched to the end), score (popularity index), createdAt, authorNickname, authorFollowerCount); douplusTalents returns boardAccount (secUid, url, nickname, douyinId, followerCount, avatarUrl) for one creator category.
  • boardMusic (board musicChart) has the sound fields plus hotValue; boardBrand (board brandChart) adds brandId, word, hotValue, heatChange, rankChange, secUid.

How to use Douyin Scraper

  1. Open Douyin Scraper on Apify and go to the Input tab.
  2. Choose a Mode, for example "Search videos by keyword" or "Video comments".
  3. Fill the input for that mode: a keyword, creator links, video links, hashtag IDs, sound IDs or a board name.
  4. Set Max results to the number of items you want.
  5. Click Start and wait for the run to finish.
  6. Open the dataset, pick a view (Videos, Comments, Creator profiles or Hot search board) and export to JSON, CSV, Excel or another format.

Input

FieldTypeRequiredWhat it doesDefault
modestringYesWhat to scrape: hot, search, creator, video, profile, hashtag, comments, followers, following, users, music, board, danmaku, feed, hashtagSearch, musicSearch, mix, series, related, homeFeed or experienceSearchhot
keywordstringOptionalSearch 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)美食
creatorsarray of stringsOptionalFor modes creator, profile, followers, following, series: Douyin profile URLs (https://www.douyin.com/user/MS4w...), v.douyin.com share links or sec_uid valuesnone
creatorUidsarray of stringsOptionalFor 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
videosarray of stringsOptionalFor modes video, comments, danmaku and related: Douyin video URLs, v.douyin.com share links or numeric video IDsnone
hashtagsarray of stringsOptionalFor mode hashtag: hashtag IDs or URLs (https://www.douyin.com/hashtag/1767587367821390)none
musicsarray of stringsOptionalFor mode music: Douyin sound URLs (https://www.douyin.com/music/7482371896877665043) or numeric sound IDsnone
boardstringOptionalFor 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 douplusTalentsvideos
timeWindowHoursintegerOptionalFor the video, topic, search, word and account boards: how far back to look, in hours. Allowed values: 1, 24, 72 or 16824
citystringOptionalFor 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 localnone
creatorCategorystringOptionalCreator-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
rankingPeriodstringOptionalCreator-center boards (except creatorHotSpots) and douplusVideos: 1 = 24 hours, 2 = 7 days, 3 = 30 days24 hours, douplusVideos 7 days
hotSpotRankingstringOptionalBoard creatorHotSpots: overall, local (needs city) or risingoverall
douplusDimensionstringOptionalBoard douplusVideos: popularity, lowFan, completion, likeRate or followRatepopularity
douplusCategorystringOptionalBoard douplusVideos: vertical code (601 drama, 606 music, 628 food, 634 entertainment and more, see the input form)634
talentCategorystringOptionalBoard douplusTalents: creator category in Chinese, e.g. 音乐, 美食, 科技 (34 choices in the input form)音乐
contentTypestringOptionalMode search: videos or images (image posts)videos
listingstringOptionalModes hashtag, music: videos, or detail for one record per hashtag or sound (charged as a detail)videos
includeRepliesbooleanOptionalMode comments: also fetch replies of comments with 2 or more replies; replies count toward maxResultsfalse
maxRepliesPerCommentintegerOptionalMode comments with replies: replies fetched per comment (1 to 500)20
withPlayCountbooleanOptionalMode 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 extrafalse
channelstringOptionalMode feed: knowledge, food, game, anime, music or seriesknowledge
channelTagIdintegerOptionalMode feed: a numeric channel tag; replaces channel when setnone
mixesarray of stringsOptionalMode mix: collection URLs (https://www.douyin.com/collection/...) or IDsnone
seriesIdsarray of stringsOptionalMode series: series IDs (detail and episodes); empty lists the creators' seriesnone
uidsarray of stringsOptionalMode profile: numeric Douyin user IDsnone
douyinIdsarray of stringsOptionalMode profile: custom Douyin IDsnone
eventIdsarray of stringsOptionalMode board, board eventDetail: calendar event IDs (the eventId of boardEvent rows). Every event after the first also pays one run-start feenone
wordIdsarray of stringsOptionalMode 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 feenone
dateFrom, dateTostringOptionalBoards hotTotal and events: first and last day, e.g. 2026-10-19last two days / next two weeks
contentTagstringOptionalBoards 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
hotCategorystringOptionalBoards hotTotal and events: only one hot topic category (23 choices in the input form, e.g. 美食, 娱乐, 体育; all = no filter)all
brandCategoryintegerOptionalBoard 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 travel10
maxResultsintegerOptionalMaximum number of items to return in total for this run (1 to 5000). You are charged per item returned20

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:

EventWhen it is chargedBronzeSilverGold, Platinum, Diamond
run-startOnce 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
resultEach 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
rowEach 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
detailEach 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
profileEach 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 ApifyClient
client = 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 carry playCount.
  • 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 challengeId of a topic board entry can be passed straight to mode hashtag.
  • Every video carries its musicId, which you can pass to mode music. 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 userVerified is filled only for verified commenters.
  • Creator videos have no authorGender.
  • Profile city, province, country and gender are empty when Douyin doesn't return them for the account.
  • Follower and following entries usually have no gender, ipLocation, city, province, country or verified, 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.

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.

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

More from Silkline