Bilibili Danmaku (Bullet Comment) Extractor avatar

Bilibili Danmaku (Bullet Comment) Extractor

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Bilibili Danmaku (Bullet Comment) Extractor

Bilibili Danmaku (Bullet Comment) Extractor

Extract timed danmaku (bullet comments) from Bilibili videos: resolve a BV id to its cid then pull every comment with its in-video timestamp, color, mode and send-time. By video or trending feed. No login.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Bilibili Danmaku (Bullet Comment) Scraper

Extract every timed danmaku — the "bullet comments" that fly across the screen of a Bilibili video — together with the exact second in the video each one was posted at. It is a crowd-sourced, second-by-second reaction stream with no clean Western equivalent, ideal for sentiment analysis, highlight detection, and engagement research.

Why use this actor

  • No account, no login, no API key — just paste a video id or link and run.
  • A dataset you can't get elsewhere — the flying on-screen comments, each pinned to its moment in the video timeline. Great for spotting the funniest, most-hyped, or most-controversial seconds of a video.
  • Discover what's hot — a "popular" mode that first pulls Bilibili's trending videos, then collects their comments, so you don't need to know video ids in advance.
  • Clean, structured output — one row per comment with its timestamp-in-video, post time, colour, on-screen style, and an anonymized sender tag. Ready for spreadsheets, databases, or pipelines.
  • Runs on a schedule with automatic retries — export to JSON, CSV, or Excel. No scrapers or browsers to babysit.

How it works

  1. Choose a mode: paste your own videos, or let the actor pull the current trending feed.
  2. For each video, the actor looks up the video (including its individual parts, if any).
  3. It collects the full set of on-screen comments for the video and reads out each comment's text, its position in the video timeline, and when it was posted.
  4. Every comment becomes one row in your dataset.

You never manage scrapers, browsers, or blocks — just provide videos and read the results.

Input

Mode: Video (by BV id / link) — you supply the videos.

{
"mode": "video",
"videos": ["BV1juM36LEg6"],
"firstPartOnly": true,
"maxDanmakuPerVideo": 0,
"maxItems": 500
}

Mode: Popular (trending feed) — the actor discovers videos for you.

{
"mode": "popular",
"popularPages": 1,
"pageSize": 20,
"maxItems": 500
}
FieldTypeDescription
modestringvideo (use the videos you provide) or popular (discover trending videos first). Default video.
videosarray of stringsVideo mode. Bilibili BV ids (e.g. BV1juM36LEg6) or full video links (https://www.bilibili.com/video/BV1juM36LEg6). The id is read from a link automatically.
firstPartOnlybooleanMany videos have several parts. true (default) pulls comments from only the first part; false pulls from every part.
popularPagesintegerPopular mode. How many pages of the trending feed to walk (default 1).
pageSizeintegerPopular mode. Videos per trending page (default 20, max 50).
maxDanmakuPerVideointegerCap on comments per video. 0 = no cap.
maxItemsintegerOverall cap on rows for the whole run. 0 = no cap.
proxyConfigurationobjectOptional. Not required; residential proxy support is available if an address gets rate-limited.

Output

One row per comment (the sample below is a real trending video, Chinese text as posted):

{
"_input": "popular:BV1juM36LEg6",
"_scrapedAt": "2026-07-09T11:08:42Z",
"_source": "S1-danmaku-xml",
"bvid": "BV1juM36LEg6",
"aid": 116883726602536,
"cid": 39758924412,
"videoTitle": "再干!",
"part": "再干!",
"page": 1,
"progressSec": 662.138,
"mode": 5,
"fontsize": 25,
"color": 15772458,
"colorHex": "#F0AB2A",
"sendTime": 1783588689,
"sendTimeISO": "2026-07-09T09:18:09Z",
"pool": 0,
"userHash": "68e23934",
"dmid": "2151656896334603776",
"text": "第二天小杨因左脚先踏进办公室而奖励1000"
}
FieldTypeDescription
bvidstringThe video's public id.
aidintegerThe video's numeric id.
cidintegerId of the specific video part these comments belong to.
videoTitlestringTitle of the video.
partstringTitle of the part (for multi-part videos).
pageintegerPart number within the video.
progressSecnumberWhere in the video the comment appears, in seconds.
modeintegerOn-screen style: 1–3 scrolling, 4 bottom, 5 top, 6 reverse, 7 advanced, 8 code, 9 special.
fontsizeintegerComment font size.
color / colorHexinteger / stringComment colour, as a number and as a hex code (#F0AB2A).
sendTime / sendTimeISOinteger / stringWhen the comment was posted (Unix seconds and ISO date).
poolintegerComment pool: 0 normal, 1 subtitle, 2 special.
userHashstringAnonymized tag for the sender (not a real identity).
dmidstringUnique id of the comment.
textstringThe comment itself.

On failure (e.g. a removed or invalid video) the actor writes an error row instead of skipping silently:

{ "_input": "...", "_scrapedAt": "...", "_error": "api_code_-404", "_errorDetail": "...", "bvid": "..." }

Notes & limits

  • For very busy videos Bilibili itself serves a capped sample of roughly 3,600 comments per part — that is a source-side limit, not the actor.
  • No account is required. A proxy is optional; turn on residential proxy support only if an address gets rate-limited.
  • Chinese-language comments are returned exactly as posted (Unicode).