Douyin Comments Scraper - Video Comment Threads & Replies avatar

Douyin Comments Scraper - Video Comment Threads & Replies

Pricing

from $3.00 / 1,000 comment scrapeds

Go to Apify Store
Douyin Comments Scraper - Video Comment Threads & Replies

Douyin Comments Scraper - Video Comment Threads & Replies

Scrape public Douyin (抖音) video comments and nested replies from URLs, share links or aweme IDs, one flat row per comment for China-market social listening. Each row has text, likes, author, IP location and parent ID.

Pricing

from $3.00 / 1,000 comment scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

24 days ago

Last modified

Share

What is Douyin Comments Scraper - Video Comment Threads & Replies?

Douyin Comments Scraper turns public Douyin (抖音) video URLs, v.douyin.com share links or numeric aweme IDs into a dataset with one flat row per visible comment. Each row returns the comment ID, text, like count, reply count, post time, IP 属地 location label, author nickname, author IDs and profile URL, the video's aweme ID and URL, and reply linkage for nested replies. China-market social listening teams, KOL agencies, brand analysts and AI agents use it to read audience reaction to campaign videos and creator content without a Douyin login.

Why social listening teams use this Douyin scraper

  • Paste what you have. Full video URLs, v.douyin.com share links, iesdouyin.com URLs and bare aweme IDs all work.
  • Engagement on every comment. likeCount and replyCount show which reactions resonate and which start conversations.
  • Regional signal. ipLabel carries Douyin's IP 属地 province label, useful for regional sentiment splits.
  • Flat rows for analysis. Comments and replies share one shape; reply rows add isReply and parentCommentId.
  • Two cost caps. maxComments per video and maxVideos per run bound every job.

Best fit for this Actor

Example workflow: from campaign videos to a sentiment brief

A brand analyst starts with five Douyin videos from a product launch. They paste the share links into videoUrls, set maxComments to 100 and keep includeReplies on. The dataset returns text, likeCount, replyCount, ipLabel and createTime for each comment. They feed the text into a Chinese sentiment model, compare positive and negative share by province using ipLabel, sort by likeCount to quote the most-liked reactions, and export the brief for the marketing team. A weekly schedule on the same videos tracks how the conversation develops.

Input

FieldTypeWhat it controls
videoUrlsarrayDouyin video URLs, share links, iesdouyin.com URLs or aweme IDs. Required.
maxCommentsintegerComment and reply rows per video, 1 to 500. Default 50.
maxVideosintegerUnique videos per run, 1 to 20. Default 5.
includeRepliesbooleanSave nested replies as rows with isReply set to true. Default true.
proxyConfigurationobjectDefault Apify Residential with Hong Kong exit IPs, rotating through nearby regions.
{
"videoUrls": [
"https://www.douyin.com/video/7577614489533680959",
"https://v.douyin.com/iAbc123/"
],
"maxComments": 100,
"maxVideos": 5,
"includeReplies": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "HK"
}
}

Output

One row per public comment or reply.

FieldWhat it contains
commentId, textComment ID and visible comment text
likeCount, replyCountLikes and number of replies
createTime, createTimeUnixPost time as ISO 8601 and Unix seconds
ipLabelIP 属地 location label when Douyin shows it
authorNickname, authorUid, authorSecUserId, authorShortIdCommenter display name and IDs
authorAvatarUrl, authorProfileUrl, authorVerifiedAvatar, profile link and verification flag
isReply, parentCommentId, replyIdReply linkage for nested replies
awemeId, videoUrl, inputVideo ID, canonical URL and the value you supplied
proxyCountry, scrapedAtExit region used and collection time
{
"commentId": "7578191179746788145",
"text": "这个老板娘真的很好看,她说出五十岁的时候我真的震惊了[发呆]",
"likeCount": 36374,
"replyCount": 271,
"createTime": "2025-11-29T16:52:14.000Z",
"createTimeUnix": 1764435134,
"ipLabel": "湖南",
"authorNickname": "小橙子",
"authorUid": "10000000001",
"authorSecUserId": "MS4wLjABAAAAexampleSecUserId",
"authorShortId": "100000001",
"authorAvatarUrl": "https://p3-pc.douyinpic.com/aweme/100x100/aweme-avatar/example.jpeg",
"authorProfileUrl": "https://www.douyin.com/user/MS4wLjABAAAAexampleSecUserId",
"authorVerified": false,
"isReply": false,
"awemeId": "7577614489533680959",
"videoUrl": "https://www.douyin.com/video/7577614489533680959",
"input": "https://www.douyin.com/video/7577614489533680959",
"scrapedAt": "2026-10-02T17:04:19.430Z",
"proxyCountry": "HK"
}

Top-level comments are the core of each dataset and always carry replyCount. Reply rows appear when Douyin's public web view exposes the reply thread, and they carry isReply, parentCommentId and replyId. Each run also writes OUTPUT and RUN_SUMMARY records with the outcome and saved-row counts.

Pricing

This Actor uses Pay per event plus Apify platform usage. You pay one Comment scraped event per comment or reply row saved to the dataset and one small Actor Start event per run, and Apify platform usage, including residential proxy, is billed on top. The live Pricing tab on this page shows the current event prices.

Worked example: five videos with maxComments set to 100 save at most five hundred rows, so the run costs up to that many comment events, one start event and its platform usage. Set includeReplies to false to bill top-level comments only.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~douyin-comments-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"videoUrls": ["7577614489533680959"], "maxComments": 30, "includeReplies": false}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("khadinakbar/douyin-comments-scraper").call(run_input={
"videoUrls": ["https://www.douyin.com/video/7577614489533680959"],
"maxComments": 50,
})
for c in client.dataset(run["defaultDatasetId"]).iterate_items():
print(c["likeCount"], c["ipLabel"], c["text"][:60])

Use with AI agents (MCP)

Connect the Actor to Claude, ChatGPT, Cursor or any MCP client through Apify MCP, then ask:

Collect the top 50 public comments on Douyin video 7577614489533680959, translate the ten most-liked ones into English and summarize the overall sentiment by province.

The agent calls the Actor with videoUrls and maxComments, reads rows with get-dataset-items, sorts by likeCount and groups by ipLabel. OUTPUT.outcome tells it whether the run was complete or empty, and videoUrl plus scrapedAt give provenance. Cost scales with saved rows, capped by maxComments.

Best results

Starting situationHelpful actionExpected outcome
Share links from the Douyin appPaste the v.douyin.com links as they areLinks are resolved to videos
Aweme IDs from a spreadsheetPaste the bare numeric IDsDirect video matches
Sentiment on top-level reactionsSet includeReplies to falseLean rows of main comments
Conversation depthKeep includeReplies on and raise maxCommentsReplies where Douyin shows them publicly
Regional analysisGroup rows by ipLabelProvince-level splits
Steady accessKeep the default residential proxy in nearby regionsPages served as the public web view

Builder's note

I built this for China-market listening, where Douyin share links and aweme IDs are what teams actually pass around, so every common identifier format is accepted. I designed every comment and reply as one flat row with the same fields, because sentiment tools and spreadsheets work more smoothly without nested threads. I found the IP 属地 label to be one of the most useful fields for brand teams, so it sits on every row next to the text and likes.

FAQ

Do I need a Douyin account?

No. The Actor reads the public web view of each video with no login.

douyin.com/video/ URLs, v.douyin.com share links, iesdouyin.com share URLs and bare aweme IDs.

Can I collect every comment on a viral video?

The Actor collects the comments Douyin shows publicly, up to maxComments per video, which is ideal for sampling the top of the conversation.

Responsible use

This Actor collects public Douyin comments. Commenter nicknames and IDs are personal data under laws such as China's PIPL and the GDPR, so process them only with a lawful basis, aggregate where you can, and respect Douyin's terms. Douyin is a trademark of its owner; this independent Actor is not affiliated with or endorsed by Douyin or ByteDance. For questions or bugs, open a ticket in the Issues tab.