# Bilibili Scraper - Videos, Creators, Danmaku $4/1K (`om_kh/bilibili-scraper`) Actor

Bilibili (B站) scraper by keyword, video link, creator or the popular board: views, likes, coins, favorites, shares, danmaku and comment counts, tags, creator followers and verified title, top comments and danmaku bullet comments. No login. $4 per 1,000 videos.

- **URL**: https://apify.com/om_kh/bilibili-scraper.md
- **Developed by:** [Khandji Omar](https://apify.com/om_kh) (community)
- **Categories:** Social media, Videos, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 videos

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Bilibili Scraper - Videos, Creators, Danmaku $4/1K

Get **Bilibili (哔哩哔哩, B站)** data without a login: search videos by keyword, read any video link, take the **popular now** board, look up **creators (UP主)** by UID, link or keyword, and download **danmaku (弹幕)** bullet comments. **$4 per 1,000 videos or creators**, $0.20 per 1,000 danmaku.

- **Video search** with Bilibili's own sort (relevance, most views, newest, most danmaku, most favorites) and length filter, up to 1,000 videos per keyword.
- **Every counter:** views, likes, **coins**, favorites, **shares**, comments, danmaku count, plus duration, publish date, category, tags, original or repost, number of parts.
- **Creator data on each video:** followers, uploads, total likes, verified title (e.g. "bilibili 知名科技UP主").
- **Creators (UP主):** followers, following, uploads, articles, likes, level, bio (often with business contact), verified title, avatar. Find them by keyword for influencer lists.
- **Top comments:** the hottest comments of each video with likes, replies, date and author.
- **Danmaku:** each bullet comment with its time in the video, posting date, position and colour.
- No cookie, no account, no Chinese phone number. Titles and text stay in Chinese, exactly as on Bilibili.

### Free tier — 10 results free on every run

**The first 10 results of every run are free**, on every run you ever make — not a one-off trial. One guard: the free allowance never covers more than half of a run, so the offer stays sustainable.

### Price

| Row | Price |
|---|---|
| Video (with full details and top comments) | **$4 per 1,000** ($0.004 each) |
| Creator | **$4 per 1,000** ($0.004 each) |
| Danmaku (bullet comment) | **$0.20 per 1,000** ($0.0002 each) |

The first 10 videos or creators of each run are free. Set **Max cost per run** and the run stops before it spends more.

The most-used Bilibili Actor in Apify Store (zhorex/bilibili-scraper) sells every row at **$20 per 1,000** (read on 2026-10-18): this Actor is 5 times cheaper.

### Measured, not promised

Run on Apify on 2026-10-18: keywords 数码测评 and 原神 sorted by views (100 each), the popular board (40), full details, top comments, 20 danmaku per video, plus 20 creators for 美食: **240 videos, 20 creators and 2,500 danmaku in 174 seconds**, every row delivered.

| Field | Videos with it |
|---|---|
| Views, likes, coins, favorites, shares, comments, danmaku count, tags | 240 of 240 |
| Creator followers, uploads and likes | 240 of 240 |
| Top comments | 240 of 240 |

Bilibili shows only **3 comments per video** to visitors who are not logged in; this Actor never logs in, so that is what it delivers. Videos whose page Bilibili refuses are delivered with their search counters and a `detailsError` note.

### Input example

```json
{
  "keywords": ["数码测评", "iPhone 17"],
  "sortBy": "views",
  "maxVideosPerKeyword": 200,
  "includeDetails": true,
  "includeTopComments": true,
  "maxDanmakuPerVideo": 50,
  "creatorKeywords": ["美食"]
}
```

### Output example (video)

```json
{
  "type": "video",
  "bvid": "BV1dLbAehE4A",
  "title": "带着华为 Mate XT 非凡大师出门是种什么体验（请不要叫我测评君出品）",
  "url": "https://www.bilibili.com/video/BV1dLbAehE4A",
  "durationSeconds": 372,
  "publishedAt": "2024-09-20T14:14:49Z",
  "category": "数码",
  "tags": ["华为", "数码", "苹果", "手机", "华为三折叠", "Mate XT"],
  "isOriginal": true,
  "views": 24869180,
  "likes": 202955,
  "coins": 11135,
  "favorites": 105441,
  "shares": 9289,
  "comments": 5436,
  "danmakuCount": 7425,
  "creatorName": "请不要叫我测评君",
  "creatorUrl": "https://space.bilibili.com/18937162",
  "creatorFollowers": 594087,
  "creatorVideos": 869,
  "creatorLikes": 4305427,
  "creatorVerifiedTitle": "bilibili 知名科技UP主"
}
```

### Output example (creator)

```json
{
  "type": "creator",
  "creatorId": "491461718",
  "creatorName": "吮指美食研究员",
  "creatorUrl": "https://space.bilibili.com/491461718",
  "creatorFollowers": 213500,
  "creatorVideos": 34,
  "creatorLevel": 6,
  "creatorVerifiedTitle": "美食运营官方账号"
}
```

### Output example (danmaku)

```json
{
  "type": "danmaku",
  "bvid": "BV1YMnM6aEMT",
  "text": "终于等到这期了",
  "videoTimeSeconds": 1.01,
  "postedAt": "2026-10-18T03:43:13Z",
  "position": "scroll",
  "color": "#ffffff"
}
```

### Use cases

- **China market research:** what Gen Z watches and says about a brand, a product or a game, with coins and favorites as real engagement signals.
- **Influencer marketing:** creators (UP主) by niche with followers, verified title and the business contact many write in their bio.
- **Brand monitoring:** schedule a keyword with sort "newest" and get every new video about your brand.
- **AI and NLP:** danmaku and comments as a Chinese-language sentiment corpus, time-coded to the video.

### Why use it

1. **Try before you pay.** The first 10 results of every run are free.
2. **Pay only for data delivered.** Failed inputs and pages that refuse the visit are never billed.
3. **Hard cost cap.** Set `maxTotalChargeUsd` and a run never costs more than you allow.
4. **Ready to use.** JSON, CSV or Excel, the Apify API, n8n, Make, Zapier, or as an MCP tool for AI agents.

### How to use it in 3 steps

1. Click **Try for free**; the form opens with a ready example in **Search keywords**.
2. Optional: change the other fields; every one has a description and a sensible default.
3. Click **Start** and download the results as JSON, CSV or Excel, or read them from the API.

### FAQ

**Do I need a Bilibili account, cookie or VPN?** No.

**Why only 3 comments per video?** Bilibili shows 3 comments to visitors who are not logged in. This Actor does not log in.

**Can I get a creator's full upload list?** Not at the moment: Bilibili protects that page for visitors. Search the creator's name as a keyword, or pass the video links.

**Can I call it from code?** Yes: Apify API, Python and JavaScript clients, Make, Zapier, n8n, or as an MCP tool.

# Actor input Schema

## `keywords` (type: `array`):

Search Bilibili videos for these words (Chinese or English): 数码测评, 原神, iPhone... Up to 1,000 videos per keyword.

## `sortBy` (type: `string`):

Bilibili's own sort for keyword searches.

## `duration` (type: `string`):

Bilibili's duration filter for keyword searches.

## `maxVideosPerKeyword` (type: `integer`):

Bilibili shows at most 1,000 videos for one search.

## `videoUrls` (type: `array`):

Optional. bilibili.com/video/BV... links, BV ids or av ids.

## `popular` (type: `boolean`):

Also get Bilibili's 'popular now' (热门) videos.

## `maxPopularVideos` (type: `integer`):

How many videos of the popular board.

## `creators` (type: `array`):

Optional. Creator UIDs or space.bilibili.com links: followers, following, uploads, likes, level, bio, verified title.

## `creatorKeywords` (type: `array`):

Optional. Search Bilibili creators (UP主) for these words, for influencer lists.

## `maxCreatorsPerKeyword` (type: `integer`):

How many creators per creator keyword.

## `includeDetails` (type: `boolean`):

Read each video page: coins, shares, parts, original or repost, and the creator's followers, uploads and likes. Included in the price.

## `includeTopComments` (type: `boolean`):

Add the hottest comments of each video (Bilibili shows 3 to visitors who are not logged in). Included in the price.

## `maxDanmakuPerVideo` (type: `integer`):

Bullet comments (弹幕) to deliver per video, with their time in the video and posting date. 0 = none. Priced per danmaku.

## `maxTotalChargeUsd` (type: `number`):

The run delivers no more rows than this amount pays for.

## Actor input object example

```json
{
  "keywords": [
    "数码测评"
  ],
  "sortBy": "relevance",
  "duration": "any",
  "maxVideosPerKeyword": 100,
  "popular": false,
  "maxPopularVideos": 100,
  "maxCreatorsPerKeyword": 20,
  "includeDetails": true,
  "includeTopComments": false,
  "maxDanmakuPerVideo": 0
}
```

# Actor output Schema

## `report` (type: `string`):

A visual summary of delivery, charges, changes, and source issues.

## `results` (type: `string`):

Business-ready results in a sortable table. No JSON knowledge required.

## `csv` (type: `string`):

Results ready for spreadsheets, CRMs, and analytics tools.

## `excel` (type: `string`):

Results as an Excel workbook for non-technical teams.

## `runSummary` (type: `string`):

Machine-readable delivery, billing, and source diagnostics.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "数码测评"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("om_kh/bilibili-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": ["数码测评"] }

# Run the Actor and wait for it to finish
run = client.actor("om_kh/bilibili-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "数码测评"
  ]
}' |
apify call om_kh/bilibili-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,om_kh/bilibili-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/pkrzJn3l9h8f3VcI5/builds/AYHCEwozfpmw8hmRH/openapi.json
