Douyin 抖音 Comments Scraper - Comments & Replies avatar

Douyin 抖音 Comments Scraper - Comments & Replies

Pricing

from $5.99 / 1,000 comments

Go to Apify Store
Douyin 抖音 Comments Scraper - Comments & Replies

Douyin 抖音 Comments Scraper - Comments & Replies

Collect Douyin (抖音) comments and reply text, with replies grouped under their parent comments. Get author names, likes, dates and available public locations. Accepts video URLs or IDs. Reply collection requires a paid Apify plan.

Pricing

from $5.99 / 1,000 comments

Rating

0.0

(0)

Developer

Zen Studio

Zen Studio

Maintained by Community

Actor stats

2

Bookmarked

692

Total users

188

Monthly active users

4 days ago

Last modified

Share

Douyin Comments Scraper (抖音) | Comments, Replies, Author Profiles & Engagement (2026)

600 comments. 857 replies beneath them. Authors, likes and locations. Source-inspired Douyin comments artwork.

From Zen Studio. Creators of Douyin Search and RedNote Search, which have ranked #1 for “douyin” and “rednote”, respectively, in Apify Store relevance results, with 100,000+ combined lifetime runs.

Why choose this actor?

  • Get reply text, already grouped by comment. One recorded run returned 600 comments and 857 nested replies across 10 videos. Replies stay attached to the comment they answer, so you can read questions and follow-up reactions together.
  • See who replied, with likes and public locations. Get author names, dates and like counts alongside the text. Available location labels, such as Guangdong or Shanghai, help you compare audience reactions by region.
  • Collect replies without connecting a Douyin account. Enable Include replies, set separate limits for comments and replies, and collect from a list of videos. Each parent comment and its collected replies arrive together in one dataset row.

Collect your replies →

Try a reply thread

Replies require a paid Apify plan. Open the actor’s input page, switch to JSON and paste this. It requests up to 10 comments and 5 replies per comment from one video.

{
"awemeUrls": [
"https://www.douyin.com/video/7577614489533680959"
],
"maxCommentsPerAweme": 10,
"includeReplies": true,
"maxRepliesPerComment": 5
}

Comment and reply charges: $5.99 per 1,000 collected items. Each parent comment and each nested reply counts as one item. Standard Apify charges also apply.

After the run, open Storage → Dataset. Expand replies on a comment to read its collected responses, or export JSON to keep the nesting. Replace the example URL with your own full Douyin video URL.

Apify Free plan: up to 15 small preview runs, one video at a time, with replies disabled. Collected counts depend on available public content and your limits; threads may be partial and locations may be absent. The hero’s numbers describe a recorded batch, not a guaranteed result from this trial.

Zen Studio · Douyin research suite
  Comments & Replies
You are here
  Douyin Search
Find videos by keyword.
  Creator Profiles
Profile details and published posts.
  Video Downloader
Save MP4s and post details.

Copy to your AI assistant

zen-studio/douyin-comments-scraper on Apify. Accepts awemeUrls: full douyin.com/video URLs, legacy iesdouyin.com/share/video URLs or numeric video IDs; short v.douyin.com links are unsupported. One dataset row per parent comment, with text, author identity, dates, likeCount and available public region. includeReplies=true collects replies nested in replies[]; requires a paid Apify plan. maxCommentsPerAweme defaults to 100 and caps at 5000; maxRepliesPerComment defaults to 100 and caps at 2000. Actual coverage may be partial. replyCount is the displayed total, replies.length is the collected count. Missing region is unknown, not overseas. Free plan: 15 small lifetime preview runs, one video, replies disabled. Comment and reply charges: $5.99 per 1000 items, each nested reply is one billable item; standard Apify charges apply. Call ApifyClient("TOKEN").actor("zen-studio/douyin-comments-scraper").call(run_input={...}), then read defaultDatasetId. Full spec: GET https://api.apify.com/v2/acts/zen-studio~douyin-comments-scraper/builds/default (Bearer TOKEN). Token: https://console.apify.com/account/integrations To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.

How to Scrape Douyin Comments (抖音评论)

Basic: one video, top 100 comments

{
"awemeUrls": ["https://www.douyin.com/video/7577614489533680959"],
"maxCommentsPerAweme": 100
}

Up to 500 comments with replies (paid plans)

{
"awemeUrls": ["https://www.douyin.com/video/7577614489533680959"],
"maxCommentsPerAweme": 500,
"includeReplies": true,
"maxRepliesPerComment": 200
}

Batch: many videos at once, comments only

{
"awemeUrls": [
"https://www.douyin.com/video/7577614489533680959",
"https://www.douyin.com/video/7579679818335175483",
"7610711200906065509",
"https://www.iesdouyin.com/share/video/7584089129034761019/"
],
"maxCommentsPerAweme": 250
}

Input Parameters

ParameterTypeDefaultDescription
awemeUrlsstring[]requiredDouyin video URLs or aweme IDs. See accepted formats below.
maxCommentsPerAwemeinteger100Top-level comments to fetch per video (1–5,000). Cost scales with the number of unique comments delivered.
includeRepliesbooleanfalseCollect available replies under each top-level comment, up to your reply limit. Requires a paid Apify plan. Replies are nested inside replies[] on the parent row and billed at the same per-item price.
maxRepliesPerCommentinteger100Cap on replies fetched under each top-level comment (1–2,000). Only effective when includeReplies is on.

Accepted aweme formats

FormatExample
Browser address barhttps://www.douyin.com/video/7577614489533680959
Legacy share linkhttps://www.iesdouyin.com/share/video/7577614489533680959/
Bare numeric aweme ID7577614489533680959

Short app share links like https://v.douyin.com/iAbc123/ are not supported. Open them in a browser first and paste the full douyin.com/video/<id> URL.

Duplicate aweme IDs (across formats) are deduped automatically, so you never pay twice for the same video's comments.

What Data Can You Extract from Douyin Comments (抖音评论)?

One row per top-level comment. Each row carries 14 top-level fields including the commenter's user object (4 fields nested under user). On paid plans, includeReplies adds collected replies under replies[], with text, author details, dates, likes and available regions. Threads may be partial.

Output Example

Every top-level field is shown below. Long avatar URLs and the reply array are trimmed with ….

{
"id": "7578047136747717434",
"text": "猪蹄爆米花,他们这么这么会吃[懵]",
"createTime": 1764401595,
"createDate": "2025-11-29",
"likeCount": 429409,
"replyCount": 8165,
"isAuthorLiked": false,
"isLiked": false,
"region": null,
"user": {
"id": "74136233600",
"secUid": "MS4wLjABAAAAXX8Vg_PQJIvUQivRx6JFGTQrI45qmEi7UZJSgb6dwlk",
"nickname": "aiqi",
"avatarUrl": "https://p11.douyinpic.com/aweme-avatar/tos-cn-i-0813c000-ce_oYItx6w3nEABEAJpA4AaQoIlfGAEeCEoXD39kF~tplv-dy-shrink:64:64.jpeg?from=2956013662"
},
"replies": [
{
"id": "7580014842238174006",
"text": "[泪奔]也不是卤鸭脖卤鸭头",
"createTime": 1764859738,
"createDate": "2025-12-04",
"likeCount": 2624,
"replyCount": 0,
"isAuthorLiked": false,
"isLiked": false,
"region": null,
"user": {
"id": "94540959329",
"secUid": "MS4wLjABAAAA8fN97d6ydIoiGVTCU2_yv8gZWjNAaECgm-21MiXqPsU",
"nickname": "_ 雷小姐",
"avatarUrl": "https://p26.douyinpic.com/aweme-avatar/tos-cn-i-0813c001_740645b1532d4fc88fbcadc6585267cd~tplv-dy-shrink:64:64.jpeg?from=2956013662"
}
},
{
"id": "7606775985363927848",
"text": "更不是干噎酸奶僵尸肉巨大串串[黑脸]",
"createTime": 1771090555,
"createDate": "2026-02-14",
"likeCount": 748,
"replyCount": 0,
"isAuthorLiked": false,
"isLiked": false,
"region": null,
"user": {
"id": "102079005652",
"secUid": "MS4wLjABAAAAlQzbs1EDN7DefE-lGo0SSUSd8oPkfUeq02PqOD38gtU",
"nickname": "Cheese",
"avatarUrl": "https://p26.douyinpic.com/aweme-avatar/tos-cn-i-0813_o0BZ1NvoAM4V0iAAgi2CA3CCifIAaEpge9DA5z~tplv-dy-shrink:64:64.jpeg?from=2956013662"
}
}
],
"awemeId": "7579679818335175483",
"awemeUrl": "https://www.douyin.com/video/7579679818335175483",
"inputUrl": "https://www.douyin.com/video/7579679818335175483"
}

Field reference

FieldTypeNotes
idstringComment ID (Douyin cid). Stable across runs.
textstringComment body (评论内容), including emoji codes like [流泪] Douyin renders as stickers.
createTimeintegerUnix seconds.
createDatestringISO date (YYYY-MM-DD) derived from createTime.
likeCountintegerNumber of likes on this comment.
replyCountintegerServer-reported total replies on this comment. May exceed replies.length when a thread is long or rate-shaped by Douyin.
isAuthorLikedbooleanTrue when the video's creator liked this comment.
isLikedbooleanReflects a viewer's own like state on the comment, which doesn't apply to extracted data, so effectively always false.
regionstring | nullPublic province or country label, when available. null means unavailable; it does not identify an overseas commenter.
user.idstringCommenter's numeric Douyin user ID.
user.secUidstringCommenter's stable sec_uid (use this as the cross-actor key; feeds into the Douyin Profile Scraper).
user.nicknamestringDisplay name.
user.avatarUrlstringSigned CDN URL for the commenter's avatar (≈64×64). Short-lived; see FAQ.
repliesobject[]Nested array of replies (回复) in exactly the same shape as the parent row. Empty when includeReplies is off or the comment has none.
awemeIdstringParent video's aweme ID.
awemeUrlstringCanonical video URL (https://www.douyin.com/video/<id>), or the original URL you supplied if it was already a full one.
inputUrlstringThe exact string you supplied; useful for joining results back to your source list.

Advanced Usage

Tracking the conversation under a viral video

{
"awemeUrls": ["https://www.douyin.com/video/7579679818335175483"],
"maxCommentsPerAweme": 5000,
"includeReplies": true,
"maxRepliesPerComment": 200
}

Collect available comments and replies up to your chosen limits. A true isAuthorLiked flag identifies comments marked as liked by the video creator. It does not classify the rest of the discussion.

Sentiment / topic mining across a creator's catalog

{
"awemeUrls": [
"https://www.douyin.com/video/7577614489533680959",
"https://www.douyin.com/video/7579679818335175483",
"https://www.douyin.com/video/7584089129034761019",
"https://www.douyin.com/video/7610711200906065509",
"..."
],
"maxCommentsPerAweme": 500
}

Up to 10 videos run in parallel. Each row carries awemeId so you can group by video downstream. Pair with the Profile scraper to enumerate a creator's catalog first.

Audience location: who's commenting from where

{
"awemeUrls": ["https://www.douyin.com/video/7577614489533680959"],
"maxCommentsPerAweme": 2000
}

Group comments with a populated region to compare reactions across public province or country labels. A missing label means unknown location; it is not evidence of overseas engagement.

Author engagement signal: what does the creator like back?

{
"awemeUrls": ["https://www.douyin.com/video/7577614489533680959"],
"maxCommentsPerAweme": 1000,
"includeReplies": false
}

Filter rows where isAuthorLiked === true to find comments marked as liked by the creator. This is a source-reported flag, not a sentiment classification.

Cross-actor pipeline: comments → commenter profiles

{
"awemeUrls": ["https://www.douyin.com/video/7577614489533680959"],
"maxCommentsPerAweme": 500
}

Take user.secUid from every row and feed it into the Douyin Profile Scraper to enrich each commenter with follower count, bio, total likes received, gender, IP location, and verified status. The secUid is the canonical cross-actor key.

Pricing: Pay Per Event (PPE)

$5.99 per 1,000 items. Each top-level comment counts as one item. Each reply nested under a comment counts as one item too. Standard Apify charges also apply.

Comment/reply eventPer itemPer 1,000 items
result (one comment OR one reply)$0.00599$5.99

Because replies are delivered inside the parent row's replies[] array (not as separate dataset rows), your dataset row count will be lower than your billed item count when replies are on. Set a per-run charge cap on your Apify run to control spend.

Free tier

Up to 15 small preview runs over the account lifetime, limited to the first video with replies disabled. The number of available comments varies. A paid Apify plan enables replies and larger collections.

FAQ

What is Douyin (抖音)? Douyin is ByteDance's Chinese short-video platform, the domestic counterpart of TikTok: same company and format, separate app and catalogue. Its comment sections are where Chinese audiences react, ask, and debate, which is exactly what this actor collects.

How many fields are returned per comment? 14 top-level fields per row, with user containing 4 fields nested (id, secUid, nickname, avatarUrl). On paid plans, includeReplies adds reply objects containing text, author details, dates, likes and available regions. Replies are nested under the parent and do not repeat its video context fields.

How many comments can I expect per video? Set a limit of up to 5,000 comments per video. The actual collection may be smaller than that limit or the count displayed by Douyin. Availability varies by video; a requested limit is not a guarantee of complete coverage.

Are pinned comments included? Pinned comments may appear among the comments returned by Douyin. The actor does not identify pinned status or guarantee their position.

Are likes-on-replies returned? Yes. Each collected reply has its own likeCount. Replies sit in the parent comment’s replies[] array; reply objects do not contain another replies array.

Does the order of comments matter? Comments are returned in the order Douyin surfaces them, typically a mix of recency, like count, and platform signals. The exact algorithm is server-side and not documented; if you need a strict sort, do it client-side after collection using likeCount or createTime.

Can I get the full commenter profile (followers, bio, etc.)? Not from this actor. Each row carries the commenter's user.secUid and user.id; feed secUid into the Douyin Profile Scraper to collect available profile details such as followers and bio. Availability varies by account.

How fresh is the data? Collection happens when the actor runs. Available comments, replies and counters can change between runs.

Are the avatar URLs permanent? No. user.avatarUrl is a short-lived signed CDN URL that typically expires within 7–14 days. If you need long-term avatars, copy user.secUid and use the Douyin Profile Scraper, which returns multiple avatar size variants per run, or download the image bytes during your own pipeline.

Do I need a Douyin account or cookies? No. Paste video URLs or aweme IDs and run; no account, cookie export, or QR login is involved.

How do I export the comments? The dataset downloads as JSON, CSV, Excel, XML, or HTML from the run's Storage tab, or via the Apify API. JSON preserves the nested replies[] threads best.

Can I scrape direct messages / private comments? No. Public top-level comments and their replies only: anything publicly visible on the video page.

Is it legal to scrape Douyin comments? The actor collects publicly visible comments only, nothing behind a login. You are responsible for complying with Douyin's terms of service and applicable data protection law (GDPR, CCPA, PIPL); comments carry personal data such as nicknames and province-level region.

What's the maximum maxCommentsPerAweme? 5,000 per video on paid plans. Available public comments and your spending limit may produce a smaller collection.

Does the actor work for any Douyin video? Any public video. Private videos, age-gated content, and region-restricted videos may return zero or partial results depending on public availability.

More Zen Studio scrapers for Chinese platforms

🎬 Short-video & social

🛒 E-commerce

🏠 Real estate & autos

🧭 Travel & maps

Support

  • Bugs: Issues tab
  • Features: Issues tab

Extracts publicly available data from Douyin (抖音). Users must comply with Douyin's terms of service and applicable data protection regulations (GDPR, CCPA, PIPL).


Douyin comments with author names, likes, available public regions and optional nested replies. One dataset row per parent comment.