Bilibili (哔哩哔哩) Danmaku Scraper - Bullet Comments & Timeline avatar

Bilibili (哔哩哔哩) Danmaku Scraper - Bullet Comments & Timeline

Pricing

from $0.15 / 1,000 danmakus

Go to Apify Store
Bilibili (哔哩哔哩) Danmaku Scraper - Bullet Comments & Timeline

Bilibili (哔哩哔哩) Danmaku Scraper - Bullet Comments & Timeline

Extract Bilibili (哔哩哔哩) danmaku (bullet comments) by video URL or BV id: comment text, timeline position, color, mode, send time, and sender hash. Export to JSON, CSV, or Excel.

Pricing

from $0.15 / 1,000 danmakus

Rating

0.0

(0)

Developer

Zen Studio

Zen Studio

Maintained by Community

Actor stats

0

Bookmarked

22

Total users

0

Monthly active users

6 days ago

Last modified

Share

Bilibili Danmaku Scraper (哔哩哔哩 / B站) | Bullet Comments with Timeline, Color & Sender (2026)

Bilibili Danmaku: viewer reactions, exact video moments. Timestamped comments, colors and display modes.

From Zen Studio, creators of Douyin Search and RedNote Search, with 120,000+ runs across those two actors.

Why choose this Danmaku scraper?

  • Match reactions to exact video moments. Get each bullet comment’s text and precise position in seconds, plus a readable timestamp. Find the scenes viewers respond to and align reactions with your video analysis.
  • Keep 22 fields per comment. Preserve color, font size, scrolling, top or bottom display mode, send date, sender hash and relevance weight. Multi-part videos include the part number and title on every row.
  • Focus on the segment you need. Choose a start and end time, then optionally keep the highest-weight reactions. A video URL or BV ID is enough to get started.

Get timestamped Bilibili reactions

Try a one-minute segment

{
"videoUrls": [
"BV1DYjA6KEJ7"
],
"startSec": 60,
"endSec": 120,
"maxDanmaku": 100
}

Open actor input and paste the example. It collects up to 100 reactions between 1:00 and 2:00; replace the video ID or change the time window. Export JSON, CSV or Excel.

The actor collects Bilibili’s current public display pool, not a complete historical archive. Set maxDanmaku to 0 to collect all available reactions in your selected window. Sender hashes are included; commenter names and profiles are not.

Zen Studio · Chinese Video & Social
 Danmaku
You are here
 Bilibili Video
Videos & creators
 Douyin
Video discovery
 RedNote
Posts & creators
 Xigua
Video search

Copy to your AI assistant

zen-studio/bilibili-danmaku-scraper on Apify. Scrapes Bilibili (哔哩哔哩) danmaku (bullet comments) from videos, with each comment's timeline position, color, display mode, send time, and sender hash. Call ApifyClient("TOKEN").actor("zen-studio/bilibili-danmaku-scraper").call(run_input={"videoUrls": ["BV1DYjA6KEJ7"]}), then client.dataset(run["defaultDatasetId"]).list_items().items. Optional fields: maxDanmaku (cap per video), startSec / endSec (time window). Full spec: GET https://api.apify.com/v2/acts/zen-studio~bilibili-danmaku-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. 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 Bilibili Danmaku

Paste one or more videos into videoUrls and run. Each video can be a full URL, a BV id, or an av number.

Basic: one video

{
"videoUrls": ["https://www.bilibili.com/video/BV1DYjA6KEJ7"]
}

Several videos at once

{
"videoUrls": ["BV1DYjA6KEJ7", "av116770799295304", "https://www.bilibili.com/video/BV16D7T6AEP7"]
}

Cap the danmaku per video

{
"videoUrls": ["BV1DYjA6KEJ7"],
"maxDanmaku": 500
}

Only a time window (e.g. the first two minutes)

{
"videoUrls": ["BV1DYjA6KEJ7"],
"startSec": 0,
"endSec": 120
}

Input Parameters

ParameterTypeDefaultDescription
videoUrlsstring[]["https://www.bilibili.com/video/BV1DYjA6KEJ7"]One or more Bilibili videos. Accepts a full bilibili.com/video/... URL, a BV id, or an av number.
maxDanmakuinteger0Max danmaku per video. 0 = all available. When capped, the most relevant (highest-weight) danmaku are kept, then restored to timeline order.
startSecinteger0Only danmaku at or after this many seconds into the video.
endSecinteger0Only danmaku at or before this many seconds into the video. 0 = no upper limit.

What Data Can You Extract from Bilibili Danmaku?

Every danmaku row includes:

  • Content: the comment text (HTML entities decoded).
  • Timeline: exact position in the video as seconds (videoTimeOffset) and as mm:ss (videoTimeFormatted).
  • Appearance: display mode and a readable modeLabel (scroll, top, bottom, reverse, advanced, code), color as hex and decimal, and fontSize.
  • Origin: send time as ISO date and epoch, an anonymized senderHash, the weight (Bilibili's relevance / quality score), the pool and poolLabel (normal, subtitle, special), and the danmakuId.
  • Source video: videoBvid, videoAid, cid, partIndex, and partTitle.

Fields a danmaku does not provide are returned as null rather than dropped, so the column set stays stable across every row.

Output Example

A full danmaku row (every field shown):

{
"type": "danmaku",
"videoBvid": "BV1DYjA6KEJ7",
"videoAid": 116770799295304,
"cid": 39216154197,
"partIndex": 1,
"partTitle": "《原神》「『空月之歌·谐谑』映夏!归乡?千灵节!」前瞻特别节目",
"danmakuId": 2136548701387831040,
"text": "前排提醒:請不要刷cp",
"videoTimeOffset": 0.0,
"videoTimeFormatted": "0:00",
"mode": 5,
"modeLabel": "top",
"fontSize": 25,
"color": "#E70012",
"colorDecimal": 15138834,
"sendTimestamp": 1781787652,
"sendDate": "2026-06-18T13:00:52+00:00",
"pool": 0,
"poolLabel": "normal",
"senderHash": "1c7dbf4b",
"weight": 10,
"scrapedAt": "2026-06-25T08:48:31+00:00"
}

Advanced Usage

Ready-made configurations for content research, sentiment analysis, and highlight detection.

The opening minute of a premiere

{
"videoUrls": ["BV1DYjA6KEJ7"],
"endSec": 60
}

Top 1,000 danmaku across several videos

{
"videoUrls": ["BV1DYjA6KEJ7", "BV16D7T6AEP7"],
"maxDanmaku": 1000
}

Reactions around a key moment (e.g. minute 10 to 12)

{
"videoUrls": ["BV1DYjA6KEJ7"],
"startSec": 600,
"endSec": 720
}

Pricing: Pay Per Event (PPE)

You pay per danmaku returned, plus a small base fee for each video that returns danmaku and a fixed fee when a run starts. A video whose danmaku are all filtered out by your time window is not charged the video fee.

EventPricePer 1,000
Danmaku$0.00015$0.15
Video (base fee, per video with danmaku)$0.00999$9.99

Free tier: 10 lifetime runs, up to 100 danmaku per run. No credit card required.

FAQ

What is danmaku (弹幕)? Danmaku are the user comments that scroll across a Bilibili video as it plays, anchored to a moment in the timeline. They are central to Bilibili's culture. This actor returns each individual danmaku message with its exact position, appearance, and send time.

How is this different from the Bilibili Video Scraper? The Bilibili Video Scraper returns the danmaku count per video as one engagement metric. This actor returns the individual danmaku messages themselves, one row each, with their timeline position and styling.

How many danmaku will I get per video? Bilibili serves a rolling display pool per video, typically up to a few thousand depending on the video's length. This actor returns that current pool. Use maxDanmaku to cap it, or startSec / endSec to slice a window.

Does it support multi-part videos? Yes. Every part (P1, P2, ...) is resolved, and each danmaku row carries its partIndex and partTitle.

Do I need a Bilibili account or cookies? No. Provide video URLs or BV ids and run. No account, cookie export, or QR login is involved.

How fresh is the data? Live. Every run fetches the current danmaku for each video at request time.

How do I export the data? JSON, CSV, Excel, XML, or HTML from the run's Storage tab, or via the Apify API.

What is a BV id, and where do I find it? The BV id is the unique code in a video's URL, for example BV1DYjA6KEJ7 in bilibili.com/video/BV1DYjA6KEJ7. Paste either the full URL, the BV id, or the av number into videoUrls.

Why is the sender shown as a hash? Bilibili identifies danmaku senders by an anonymized hash, not a username. The actor returns that hash as-is; it is a pseudonymous source identifier, not a verified identity.

What's the free tier? 10 runs total per account, up to 100 danmaku each. No credit card required.

Is it legal to scrape Bilibili data? This actor extracts only publicly available data, nothing behind a login. You are responsible for complying with Bilibili's terms of service and applicable data-protection law (GDPR, CCPA, and China's PIPL).

Support

  • Bugs: Issues tab
  • Features: Issues tab

Extracts publicly available data. Users must comply with Bilibili terms and data protection regulations (GDPR, CCPA, PIPL).

More Zen Studio scrapers for Chinese platforms

🎬 Short-video & social

🛒 E-commerce

🏠 Real estate & autos

✈️ Travel & stays

🧭 Travel & maps


Scrape Bilibili (哔哩哔哩) danmaku (bullet comments) by video URL or BV id, with each comment's timeline position, color, mode, send time, and sender in structured JSON.