# Bilibili Search Scraper - Videos with Full Stats (`gio21/bilibili-scraper`) Actor

Search Bilibili by keyword and get video results with title, uploader, views, danmaku, likes, coins, favorites, shares, comments, duration, cover and URL. No login required.

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

## Pricing

$10.00 / 1,000 video scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Bilibili Search Scraper

Search **Bilibili** (bilibili.com) by keyword and get structured video results with full engagement stats. No login, no cookies, no API key.

### Features

- Search any keyword (Chinese or English) and get every matching video
- Full stats per video: views, danmaku, likes, coins, favorites, shares, comments
- Uploader info: name, user id, channel URL, avatar
- Title, description, duration, publish date, cover image and video URL
- Sort by relevance, views, newest, danmaku, favorites or comments
- Fast direct API access, automatic pagination

### Input

| Field | Type | Description |
|-------|------|-------------|
| `keyword` | string | Search term, e.g. `genshin impact`, `美食`. Required. |
| `sortBy` | select | `relevance`, `click` (most viewed), `pubdate` (newest), `danmaku`, `favorites`, `comments`. Default `relevance`. |
| `maxItems` | integer | Max videos to return (default 30, max 300). |
| `proxyConfiguration` | object | Apify Proxy recommended (default). |

#### Example input

```json
{ "keyword": "genshin impact", "sortBy": "click", "maxItems": 50 }
```

### Output

```json
{
  "bvid": "BV1xx411c7mD",
  "aid": 2,
  "title": "Example video title",
  "url": "https://www.bilibili.com/video/BV1xx411c7mD",
  "description": "Video description",
  "durationSeconds": 214,
  "publishedAt": "2024-06-26T00:00:00.000Z",
  "coverUrl": "https://i0.hdslb.com/bfs/archive/....jpg",
  "category": "游戏",
  "authorName": "UploaderName",
  "authorMid": 123456,
  "authorUrl": "https://space.bilibili.com/123456",
  "authorAvatar": "https://i1.hdslb.com/bfs/face/....jpg",
  "views": 1234567,
  "danmaku": 8901,
  "likes": 45678,
  "coins": 12345,
  "favorites": 23456,
  "shares": 3456,
  "comments": 6789
}
```

### Common use cases

- Track trending topics and creators on Bilibili
- Competitor and influencer research in the Chinese market
- Content and market research, sentiment via engagement ratios
- Feed dashboards and spreadsheets with video metrics

### Pricing

Pay per result: a small fee per video returned. Errors are never charged.

### FAQ

**What is danmaku?** Bilibili's on-screen scrolling comments; the count is a strong engagement signal unique to the platform.

**Is this affiliated with Bilibili?** No. This is an independent tool for extracting publicly available data. Please respect Bilibili's terms of service.

# Actor input Schema

## `keyword` (type: `string`):

What to search for on Bilibili, e.g. "genshin impact", "美食", "unboxing".

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

Order of the search results.

## `maxItems` (type: `integer`):

Maximum number of videos to return.

## `proxyConfiguration` (type: `object`):

Proxy used for requests. Apify Proxy is enabled by default and recommended (Bilibili rate-limits by IP).

## Actor input object example

```json
{
  "keyword": "genshin impact",
  "sortBy": "relevance",
  "maxItems": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All scraped Bilibili videos - title, uploader, views, danmaku, likes, favorites, comments, duration and URL.

# 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 = {
    "keyword": "genshin impact"
};

// Run the Actor and wait for it to finish
const run = await client.actor("gio21/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 = { "keyword": "genshin impact" }

# Run the Actor and wait for it to finish
run = client.actor("gio21/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 '{
  "keyword": "genshin impact"
}' |
apify call gio21/bilibili-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gio21/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/bHgwK0UYyzsGG5sjh/builds/aFgNvZOHnVJowplMN/openapi.json
