Bilibili Comments Scraper · B站评论 API (WBI-signed)
Pricing
from $20.00 / 1,000 comments
Bilibili Comments Scraper · B站评论 API (WBI-signed)
Scrape comments from any Bilibili video (哔哩哔哩) via the current WBI-signed reply API — the scheme that broke older B站 scrapers. Pass BVIDs/URLs; get author, user level, likes, reply count & ISO timestamp, with optional anonymization. China social-listening, sentiment & creator research. No login.
Pricing
from $20.00 / 1,000 comments
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
1
Bookmarked
39
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Security
Limited permissionsShare
🇨🇳 Bilibili Comments Scraper · B站评论 API (WBI-signed)
Bilibili Comments Scraper is a NexGenData tool on Apify that returns video comments with author, user level, likes, replies and time from Bilibili's WBI-signed reply API.
Scrape comments from any Bilibili video using the platform's current WBI-signed reply API — the signature scheme that broke most older B站 comment scrapers when Bilibili retired its legacy endpoint. Pass BVIDs or video URLs, set how many comments per video, and get clean records with author, user level, likes, reply count and ISO timestamps, with optional username anonymization for shareable datasets. It's purpose-built for China social-listening, video-engagement analysis and sentiment work on Gen-Z China's home platform.
No login, no cookies — the WBI flow works for publicly visible comments without authentication.
📊 Sample Output

bvid | aid | text | timestamp | ctime | scraped_at |
|---|---|---|---|---|---|
| BV1xx411c7mu | 106 | 哦哦哦 审核超快的 | 2009-07-14T11:27:11+00:00 | 1247570831 | 2026-09-25T03:20:58.777525+00:00 |
| BV1xx411c7mu | 106 | 教祖万福!谁把教祖蓝蓝路神迹图贴来? | 2009-07-14T13:39:34+00:00 | 1247578774 | 2026-09-25T03:20:58.844523+00:00 |
| BV1xx411c7mu | 106 | 教主教主蓝蓝路```` | 2009-07-14T11:35:07+00:00 | 1247571307 | 2026-09-25T03:20:58.868592+00:00 |
| BV1xx411c7mu | 106 | ◢◣ 蓝蓝路 ◢◣▉▉◢ ◣▉▉▉▉▉ ▉▉▉◥▉◤ ◥█◤◢▉… | 2009-07-14T15:03:05+00:00 | 1247583785 | 2026-09-25T03:20:58.900617+00:00 |
| BV1xx411c7mu | 106 | = =人家只想知道声音旁边的sm干嘛的 | 2009-07-15T10:26:15+00:00 | 1247653575 | 2026-09-25T03:20:59.028877+00:00 |
Real rows from run PPy5TTOseDafMXbBM on build 0.0.25 (2026-09-25), unedited apart from masked emails/phones and shortened long text; fields the source does not publish are empty.
🧾 JSON sample record
One real record from run PPy5TTOseDafMXbBM (emails/phones masked, long text shortened):
{"bvid": "BV1xx411c7mu","aid": 106,"rpid": 523,"text": "哦哦哦 审核超快的","author": "fooou","user_mid": 193,"user_level": 2,"user_sex": "保密","likes": 272470,"reply_count": 17845,"is_top": false,"timestamp": "2009-07-14T11:27:11+00:00","ctime": 1247570831,"scraped_at": "2026-09-25T03:20:58.777525+00:00"}
💰 Pricing
| Event | Price (USD) | When it is charged |
|---|---|---|
Actor Start (apify-actor-start) | $0.005 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
Comment (apify-default-dataset-item) | $0.02 | Single Bilibili comment with author, likes, timestamp. |
Pay-per-event: you pay only for what the run delivers. A run that delivers nothing bills no result events (only the actor-start event, when the actor defines one). Example: a run that delivers 100 results costs 100 × $0.02 = $2.00 plus the start fee.
🔗 Related Actors
More from the NexGenData China markets family:
- Bilibili Video Search by Keyword · B站视频搜索 (No Login)
- Beijing BSE Stock Screener — 北交所 A股 API
- China A-Share Financials — 财务数据 API
21 more in this family on the NexGenData Store page.
📊 Sample Output
Why the WBI signature matters
Bilibili (哔哩哔哩) deprecated its legacy /x/v2/reply comment endpoint, and most older Bilibili comment scrapers stopped returning data overnight. This actor uses the current WBI-signed /x/v2/reply/wbi/main API — it computes the rotating signature Bilibili now requires, so comments keep flowing. That signing logic is the moat: it's the reason this works when DIY scrapers return nothing.
What you get per comment
Each dataset record is a flat JSON object:
- Identity —
bvid,aid,rpid(comment id) - Content —
text(full UTF-8 Chinese / English / emoji) - Author —
author(username),user_mid,user_level,user_sex - Engagement —
likes,reply_count,is_top(pinned) - Time —
timestamp(ISO 8601, UTC,+00:00offset), rawctime(unix seconds) andscraped_at
Note: the default proxy is Apify datacenter (included in your plan); in our tests it returned full comment pages (600 per video on two videos). If Bilibili ever reports more comments than it returned for a video, the run finishes with a
PARTIAL:status message naming that video — it is never reported as complete. For those videos you can opt in to the RESIDENTIAL proxy, which costs more (billed per GB).
Input
| Input | Type | Description |
|---|---|---|
videos | array | BVIDs or full video URLs (e.g. BV1xx411c7mu or a bilibili.com/video/... URL). Required (or one of the aliases below) — an empty input fails immediately and charges no comments. |
video_urls | array | Alias for videos (merged if both given). |
video | string | A single BVID or URL when you only need one. |
max_comments_per_video | integer | Cap per video (1–2000). The actor paginates the WBI API until the cap, no more comments, or the run's time budget. |
anonymize_users | boolean | Replace usernames with a stable SHA-256 pseudonym and blank user_mid (privacy mode). |
proxyConfiguration | proxy | Apify proxy. Default: datacenter (included in your plan). RESIDENTIAL is an opt-in that costs more (billed per GB). |
Sample input
{"videos": ["BV1xx411c7mu", "https://www.bilibili.com/video/BV1xx411c7mu/"],"max_comments_per_video": 100,"anonymize_users": false,"proxyConfiguration": {"useApifyProxy": true}}
Sample output (JSON)
{"bvid": "BV1xx411c7mu","aid": 106,"rpid": 268543201234,"text": "这个视频太棒了!","author": "用户名","user_mid": 123456789,"user_level": 5,"user_sex": "保密","likes": 1280,"reply_count": 14,"is_top": false,"timestamp": "2026-06-20T11:42:00+00:00","ctime": 1781955720,"scraped_at": "2026-09-03T19:55:12.345678+00:00"}
With anonymize_users: true, author becomes e.g. user_15e2b0d3c338 and user_mid is null.
Run status and time budget
A run has a 300 s time limit. The actor stops fetching new pages 30 s before that limit so every comment already delivered is saved and reported. If any video was cut short — by the time budget, by a later-page block, or because Bilibili returned fewer comments than it reports — the run ends SUCCEEDED with a PARTIAL: status message naming each affected video, how many comments it got and why (e.g. truncated at 340 by time budget). Requesting the maximum for several videos in one run will hit the time budget; split large jobs across runs. A run with no valid videos, or where every video is blocked, ends FAILED with the reason and charges no comments.
Use cases
- Brand & marketing — read audience reaction to your or a competitor's Bilibili videos and campaigns.
- Consumer research — Gen-Z China sentiment and opinion mining from comment threads.
- Social listening — track comment volume and sentiment across a creator's uploads.
- AI / NLP training — build a labeled Chinese-comment corpus, with optional anonymization.
Pricing — pay per comment
- Actor start: $0.005 per run
- Per comment: $0.02 per comment delivered to the dataset
A 100-comment pull on one video = $2.005. You pay only for comments that land in your dataset; a failed run or an empty input charges only the actor start. A run that stops at its time budget charges only the comments it delivered and says so in its PARTIAL: status message.
Quick start (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("nexgendata/bilibili-video-comments").call(run_input={"videos": ["BV1xx411c7mu"],"max_comments_per_video": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["author"], item["text"])
❓ FAQ
Does it need login or cookies? No — the WBI flow works for publicly visible comments without auth.
Why do other Bilibili comment scrapers return nothing now? Bilibili deprecated the legacy /x/v2/reply; this actor uses the current WBI-signed /x/v2/reply/wbi/main.
How many comments per video? Up to 2,000 via pagination, within the run's 300 s time budget (roughly 2,500 comments per run in total). The default datacenter proxy returned full pages in our tests; if a video comes back short, the run reports PARTIAL rather than pretending it was complete, and the RESIDENTIAL opt-in (costs more) is there for those videos.
Can I anonymize usernames? Yes — anonymize_users replaces usernames with a stable SHA-256 pseudonym (user_ + 12 hex chars) and blanks user_mid; the same user always gets the same pseudonym across runs.
Can I pass a URL instead of a BVID? Yes — full video URLs and bare BVIDs both work.
🔗 Related actors — China social
- Bilibili Video Search — search and rank Bilibili videos by view, like and channel
- Weibo Hot Search Tracker — the live Weibo 热搜 leaderboard as structured data
- RedNote (Xiaohongshu) Scraper — China's lifestyle/discovery platform (小红书)
- Douyin Trending Tracker — the China short-video hot board
- Chinese Social Signals MCP — China social signals exposed as MCP tools for LLM agents
Get $5 in Apify credit: https://apify.com/nexgendata
🤖 Use with AI agents
Structured JSON for LLM and agent pipelines (Claude, the OpenAI Agents SDK, n8n or any MCP-aware client).
Sample agent prompt:
Pull the top comments on this Bilibili video with likes and reply counts.