Douyin Danmaku Scraper
Pricing
from $1.60 / 1,000 results
Douyin Danmaku Scraper
Collect the scrolling on-video comments (danmaku) Douyin viewers post while watching, from any public Douyin video's URL or ID. Each row returns the danmaku text, its timestamp in the video, like count, and poster's user ID. Most videos carry none -- an empty result is normal, not a failure.
Pricing
from $1.60 / 1,000 results
Rating
0.0
(0)
Developer
ToolzerHub
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Collect the scrolling on-video comments (danmaku) Douyin viewers post while watching, timestamped to the moment they appear, from a public video's URL or ID.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
aweme_id | string | — | Required. A Douyin video URL or numeric ID. |
duration | integer | — | Video length in milliseconds. Leave it empty and the Actor looks it up for you — one extra request. |
start_time | integer | 0 | Start of the danmaku window, in milliseconds. |
end_time | integer | — | End of the danmaku window, in milliseconds. Defaults to the video's full duration. |
maxItems | integer | 100 | Rows to save. 0 collects the whole window. |
{ "aweme_id": "https://www.douyin.com/video/7448118827402972455" }
Output
| Field | Contents |
|---|---|
danmaku_id | Danmaku comment ID |
text | Danmaku text |
offset_time | Position in the video this danmaku appears at, milliseconds |
digg_count | Likes on this danmaku |
user_id | Poster's account ID |
source_aweme_id | The video this row was collected from |
Questions
Why did my run return zero rows? Most Douyin videos carry no danmaku at all — an ordinary video tested live returned nothing across its entire duration. A zero-row dataset here is a normal, successful run, not a fault. Danmaku shows up mainly on videos with a large, actively engaged audience: a video with about 1.4 million likes returned 743 danmaku in the same test, 594 of them in the first ~32-second window alone. Try a video with high engagement before assuming the Actor is broken.
Why does the run make an extra request before it collects any danmaku?
Douyin's danmaku endpoint requires the video's duration in milliseconds, but a normal caller rarely has that number to hand. When you don't supply duration, the Actor fetches it from the video's own detail first — one extra request, billed the same as any other. Pass duration yourself, for example from a prior Douyin Video Scraper run, to skip it.
How wide is one danmaku "window", and why does that matter for start_time/end_time?
Douyin serves a fixed roughly-32-second slice per call no matter how wide an end_time you request, so the Actor loops windows internally to cover start_time through end_time (or the full video, when end_time is left empty). You don't need to manage the windowing yourself — just set the range you want covered.
Related Actors
| Actor | Use when |
|---|---|
| Douyin Comments Scraper | You want the actual comment section, a different thing from danmaku |
| Douyin Video Scraper | You want the video's duration up front, to skip this Actor's extra lookup |
| Douyin Video Downloader | You want a playable URL for the video itself |
Support
Questions, bugs, or feature requests: contact@toolzerhub.com
Browse the rest: apify.com/toolzerhub