Douyin Comments Scraper
Pricing
from $0.60 / 1,000 comments
Douyin Comments Scraper
Collect public comments and replies from the Douyin post links you add. Each row has the comment text, post ID, comment time, and like and reply counts. No Douyin login is needed, and you can set a total limit for each run.
Pricing
from $0.60 / 1,000 comments
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
💬 Collect public Douyin comments and replies from the posts you choose
This Actor helps researchers, marketers, and developers collect comments from public Douyin posts. Each comment comes back with its text, post ID, comment time, and like and reply counts. You do not need a Douyin account or login, and you do not need to copy comments by hand.
Use it to
- Collect public comments from a post with Douyin Comments Scraper.
- Find the comments that got the most replies with Douyin Most Replied Comments.
- Gather the top comments on a post with Douyin Top Comments.
- See the newest comments on a post with Douyin Latest Comments.
- Read the replies under each comment with Douyin Comment Replies Scraper.
- Review the comments that Douyin marks as hot, along with their like and reply counts.
- See where commenters are from when Douyin shows a region for them.
📋 What each comment row includes
Each row is one public comment or reply. It includes the post ID, so you can match every comment to the post it belongs to. Replies also include the ID of the comment they answer. Commenter names and regions appear when Douyin shows them.
▶️ Run it on your Douyin posts
Quick start
- Open this Actor in Apify Console.
- Paste one or more Douyin post links or video IDs. The form starts with a sample video link, so replace it with your own post.
- Turn on reply comments or set limits if you need them.
- Start the run, then open the dataset to see the rows.
You can also start runs and read results through the Apify API.
⚙️ Input
Fill in the form in Apify Console, or send the same fields as JSON through the API.
Input fields
| Field | Type | What it does |
|---|---|---|
postUrls | list of text | The Douyin post links or video IDs to collect comments from. Add one full link for each public video or image post. For a video, you can also add its numeric ID, such as 7577614489533680959. Numeric IDs are read as videos, so use the full link for image posts. |
includeReplies | true or false | Adds public replies as separate comment rows. Replies are charged at the same rate as top-level comments. The default is false. |
commentOrder | text | Sets the order for each post. Choose source, likes (most likes first), newest, oldest, or replies (most replies first). The default is source. |
maxComments | whole number | Stops the run after this many comment rows in total. Requested replies count too. The form starts at 50. Leave it empty to return all available results until the source is exhausted. |
maxCommentsPerPost | whole number | Stops after this many comment rows from each post. Requested replies count too. Leave it empty to return all available results for each post until the source is exhausted. |
maxRepliesPerComment | whole number | Keeps at most this many public replies under each comment when includeReplies is on. Leave it empty to return all available results for each comment until the source is exhausted. |
Douyin also limits what visitors who are not logged in can see. On image posts, they see fewer comments. The list stops at a login prompt, even when the limit fields are empty. They also see up to about three replies under each comment.
Example input
{"postUrls": ["https://www.douyin.com/video/7686432847778982833"],"includeReplies": false,"commentOrder": "source","maxComments": 50}
🧾 Output
Each result is one row in the dataset. Replies use the same fields as top-level comments. A reply's parentCommentId shows the comment it answers. Top-level comments do not have this field.
Output fields
| Field | Type | What it does |
|---|---|---|
commentId | text | The source ID that identifies the comment. |
text | text | The text written in the comment. |
postId | text | The ID of the Douyin post the comment belongs to. |
parentCommentId | text | For a reply, the source ID of the comment it answers. |
createdAt | text (date and time) | The time Douyin says the comment was posted. |
likeCount | whole number | The number of likes Douyin shows for the comment. |
replyCount | whole number | The number of replies Douyin shows for the comment. |
isHot | true or false | Whether Douyin marks the comment as hot. |
isPinned | true or false | Whether the post author has pinned the comment. |
commenter.userId | text | The source ID of the commenter. |
commenter.displayName | text | The name Douyin shows for the commenter. |
commenter.avatarUrl | text (link) | A link to the commenter's public profile image. |
commenter.profileUrl | text (link) | A link to the commenter's public Douyin profile. |
commenter.region | text | The region Douyin shows for the commenter. |
post.caption | text | The text Douyin shows with the post. |
post.publishedAt | text (date and time) | The time Douyin says the post was published. |
post.creator.userId | text | The source ID of the post creator. |
post.creator.displayName | text | The name Douyin shows for the post creator. |
post.engagement.likeCount | whole number | The number of likes Douyin shows for the post. |
post.engagement.commentCount | whole number | The number of comments Douyin shows for the post. |
post.engagement.shareCount | whole number | The number of shares Douyin shows for the post. |
post.engagement.saveCount | whole number | The number of saves Douyin shows for the post. |
media | list of text | Links to public images attached to the comment. Only some comments have it. |
Example row
A real row from a recent successful run, shown in full.
{"commentId": "7687804581959009065","text": "唯独音乐没有亏待我们90后","postId": "7686432847778982833","post": {"caption": "当你在2026年再次听到这首歌(第5集)#ladygaga #pokerface #高中生","creator": {"userId": "85020314682","displayName": "拉小提琴的王主任🎻"},"publishedAt": "2026-09-17T09:40:14.000Z","engagement": {"likeCount": 8136378,"commentCount": 71192,"shareCount": 1477276,"saveCount": 521170}},"createdAt": "2026-09-21T02:14:21.000Z","likeCount": 1144,"replyCount": 9,"isHot": true,"isPinned": false,"commenter": {"userId": "96924266142","displayName": "豆虾包","avatarUrl": "https://p3-pc.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_e4eefffef2c6b2c791d0e3a65cb851c5.jpeg?from=2064092626","profileUrl": "https://m.douyin.com/share/user/MS4wLjABAAAAnmfRgd3zEJwYm8IgTDQdgQveuM32uSU5yKhUynTY4lE?scene_from=douyin_h5_search","region": "四川"}}
💳 Pricing
How you are charged
You are charged for each successfully collected comment. Public replies use the same rate when you include them. Your price per comment depends on your Apify plan, and the Store page shows the current price.
🔌 Integrations
Results are saved to an Apify dataset. You can view them in Apify Console, or read them with the Apify API from your own tools.
Video
❓ FAQ
Do I need a Douyin login or account?
No. You do not need to give the Actor a Douyin account or login. Douyin still limits what visitors who are not logged in can see. On image posts, they see fewer comments, and the list can stop at a login prompt.
Can I get replies too?
Yes. Turn on Include reply comments to add public replies as separate rows. Each reply includes parentCommentId, the ID of the comment it answers. Use Max replies per comment to limit how many replies you get under each comment.
Why did a run return fewer comments than I expected?
The Actor can only collect the public comments that Douyin returns. On image posts, visitors who are not logged in see fewer comments, and the list stops at a login prompt. Your own limits can also stop a run early.
Can I limit how many comments I get?
Yes. Max comments stops a run after a set number of comment rows. Max comments per post sets a limit for each post. Leave either field empty to return all available results until the source is exhausted.
Can it search Douyin for posts?
No. It works from the post links or video IDs you give it. To find posts by keyword first, use Douyin Search Scraper, which is listed under Related Actors.
Do I need to write code?
No. You can run the Actor from the Apify Console form. Developers can also start runs and read the dataset with the Apify API.
📝 Changelog
v0.0 (16-10-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Douyin Search Scraper: Find public Douyin posts by keyword or hashtag, then add their links here to collect comments.
- Douyin Analytics Scraper: Check current public Douyin hot-search topics for social listening.
- Instagram Reels Comments Scraper: Collect top-level comments from public Instagram Reels for the same kind of audience feedback.
- Threads Replies Scraper: Collect public replies from Threads posts to see how people respond.
- Reddit Comments Search Scraper: Search public Reddit comments for brand mentions and customer feedback.
Made with ❤️ by Maxime Dupré