# B站有 API 吗？用 Python 拉取视频和评论（2026）

B 站开放平台给 UP 主管理自己的频道，权限里没有搜索；网页上的接口要 wbi 签名，频率一高就返回 412。要用程序搜视频、读评论，用第三方数据接口。下面用 DataXAPI 的 Python SDK 演示，免费试用，最多 333 次。 用 2 个接口：B站视频搜索 → B站视频评论。下面的示例一共 11 次调用，合计 $0.0220；失败的调用不收费。

更新于 2026-11-06

按关键词搜一页 B 站视频，取播放最多的 10 个的热门评论，写进一张 CSV：BV 号、标题、播放数、评论正文、评论点赞数。

## 一步一步做

### 第 1 步：B站视频搜索

按搜索词取一页视频，`sort` 可按最新或播放最多。每条的 `id` 是 BV 号，`metrics.views` 是播放数。（[B站视频搜索](https://dataxapi.com/zh/apis/bilibili/videos/search/)，$0.0020 / 一次）

cURL

```bash
curl -G "https://api.dataxapi.com/v1/bilibili/videos/search" \
  --data-urlencode "query=机械键盘" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
```

Python

```python
# pip install dataxapi
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.bilibili.videos.search(query="机械键盘")
print(result["data"]["items"])
```

TypeScript

```typescript
// npm i @dataxapi/sdk
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.bilibili.videos.search({ query: "机械键盘" });
console.log(result.data.items);
```

命令行

```bash
dataxapi call bilibili.videos.search 'query=机械键盘'
```

录制的返回：取自 2026-10-12 18:47 UTC 录下的真实返回。名字、正文和编号是示例，链接也是，都不是录到的原文（页面不展示任何人的个人信息）；数字是原样。长列表做了截断。请求号、游标和余额是示意。

```jsonc
{
  "code": "ok",
  "request_id": "dee21d14-3682-420a-acad-8806b2d59dfe",
  "data": {
    "items": [
      {
        "id": "BV1M05Rhoe4r",
        "url": "https://www.bilibili.com/video/BV1M05Rhoe4r",
        "type": "video",
        "title": "实测一个月机械键盘，结论有点意外",
        "text": null,
        "published_at": "2026-09-30T08:55:00.000Z",
        "author": {
          "id": "585724901",
          "name": "阿杰爱折腾",
          "avatar_url": "https://i0.hdslb.com/bfs/face/17a7658e63c84808ef09bb48.jpg"
        },
        "metrics": {
          "likes": 237,
          "comments": 64,
          "favorites": 169,
          "views": 35706
        },
        "hashtags": [
          "户外生活",
          "好物分享",
          // … 另有 8 条
        ]
      },
      // … 另有 19 条
    ]
  },
  "page": {
    "next_cursor": "c1.72NAeDsxx6zMLTUXCjX2T5Su39puxExBbLOvdWBm",
    "cursor_expires_at": "2026-10-12T19:47:48.000Z",
    "has_more": true,
    "returned": 20
  },
  "warnings": [],
  "meta": {
    "capability": "bilibili.videos.search",
    "result_status": "complete",
    "fetched_at": "2026-10-12T18:47:48.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": {
      "lang": "capability",
      "author.username": "platform",
      "author.verified": "capability",
      "author.followers": "capability",
      "metrics.shares": "capability",
      "metrics.reposts": "platform",
      "images": "platform",
      "mentions": "capability",
      "is_pinned": "capability",
      "post_id": "platform",
      "parent_id": "platform",
      "root_id": "platform"
    },
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    }
  }
}
```

### 第 2 步：B站视频评论

把 BV 号放进 `id`，取一页评论，热门的在前，约 20 条；下一页用 `page.next_cursor`。（[B站视频评论](https://dataxapi.com/zh/apis/bilibili/videos/comments/list/)，$0.0020 / 一次）

cURL

```bash
curl -G "https://api.dataxapi.com/v1/bilibili/videos/comments/list" \
  --data-urlencode "id=BV1ECeJ65EZS" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
```

Python

```python
# pip install dataxapi
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.bilibili.videos.comments.list(id="BV1ECeJ65EZS")
print(result["data"]["items"])
```

TypeScript

```typescript
// npm i @dataxapi/sdk
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.bilibili.videos.comments.list({ id: "BV1ECeJ65EZS" });
console.log(result.data.items);
```

命令行

```bash
dataxapi call bilibili.videos.comments.list id=BV1ECeJ65EZS
```

录制的返回：取自 2026-10-12 18:43 UTC 录下的真实返回。名字、正文和编号是示例，链接也是，都不是录到的原文（页面不展示任何人的个人信息）；数字是原样。长列表做了截断。请求号、游标和余额是示意。

```jsonc
{
  "code": "ok",
  "request_id": "ffe3c01c-df20-4815-8524-b01f20752e0e",
  "data": {
    "items": [
      {
        "id": "284891776844",
        "text": "终于有人讲清楚了，谢谢博主",
        "published_at": "2026-10-09T09:14:53.000Z",
        "author": {
          "id": "555745700",
          "username": null,
          "name": "认真生活的阿雅",
          "avatar_url": "https://i0.hdslb.com/bfs/face/4dcb12b520f2d37bad6e39ea.jpg"
        },
        "metrics": { "likes": 730, "comments": 16 },
        "post_id": "BV1D1g8QchPg",
        "parent_id": null,
        "root_id": null
      },
      // … 另有 19 条
    ]
  },
  "page": {
    "next_cursor": "c1.6b2UBLUHWAibmZ7ga14nI9P9jZqzDeOQTFrW_ENB",
    "cursor_expires_at": "2026-10-12T19:43:21.000Z",
    "has_more": true,
    "returned": 20
  },
  "warnings": [],
  "meta": {
    "capability": "bilibili.videos.comments.list",
    "result_status": "complete",
    "fetched_at": "2026-10-12T18:43:21.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": { "url": "platform" },
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    }
  }
}
```

## 示例花多少钱

一页搜索结果，再取 10 个视频各一页评论

| 接口 | 调用次数 | 单价 | 小计 |
| --- | --- | --- | --- |
| [B站视频搜索](https://dataxapi.com/zh/apis/bilibili/videos/search/) | 1 | $0.0020 | $0.0020 |
| [B站视频评论](https://dataxapi.com/zh/apis/bilibili/videos/comments/list/) | 10 | $0.0020 | $0.0200 |
| 合计 | 11 |  | $0.0220 |

价格是生成本页时的现行价格。失败的调用不收费。

## 在 AI 里做（MCP）

把 DataXAPI 接进你的 AI 客户端，只要接一次。之后直接说要什么，代理自己找到这些接口、看好价格，用你的余额调用。

这样说：在 B 站搜“机械键盘”，挑播放最多的 10 个视频，把它们的热门评论整理成一张表。

代理发给 call 工具的参数：

```json
{
  "capability": "bilibili.videos.search",
  "query": "机械键盘",
  "idempotency_key": "<a new UUID>"
}
```

[了解 MCP 服务](https://dataxapi.com/zh/mcp/)

## 用 Skill 做

“评论与口碑”这个 Skill 把这件事做成了现成的任务，带花费上限。 “用户在这条内容下面夸什么、骂什么？” 它的示例运行：3 次调用，最多 $0.0060。 [评论与口碑](https://dataxapi.com/zh/skills/comments/)

## 为什么用 DataXAPI

- 稳定：近 30 天接口可用 100%，状态页公开，可以自己核对。
- 快：近 7 天付费调用的中位耗时 1.6 秒（2026-11-06 统计）。
- 省 token：B站的 9 个接口各取一份录制的真实返回，平台原始 JSON 合计 47.7 万 token，AI 通过 DataXAPI 的 MCP 读到的只有 2.1 万 token，少 96%；直接调接口拿到的 JSON 也少 95%（2026-11-06 统计）。所有平台同一种格式：作者在 `author`，互动数在 `metrics`，翻页用 `page.next_cursor`，换平台不用重写解析。
- 先看再用：每个接口的页面上都有一份录制的真实返回，字段一目了然。
- 花钱可控：失败不收费；每把 Key 能设金额上限，`X-Max-Price` 限定一次最多花多少，同一个 `Idempotency-Key` 24 小时内不重复扣费。
- 接 AI 方便：远程 MCP 服务已在 MCP 官方登记处登记（`com.dataxapi/mcp`），Claude、Cursor、ChatGPT 都能直接用。
- 免费试用，最多 333 次，不用绑卡。

## 要知道的

- 不用 B 站账号和 Cookie，也不用处理 wbi 签名。
- UP 主的投稿用 `bilibili.users.videos.list`，传 mid（空间链接里的数字）。
- 不写代码也行：把 DataXAPI 接进 Claude 或 ChatGPT，用下面“在 AI 里做”的那句话。

## 完整脚本

上面这件事写成一个能直接跑的脚本：Python，用 SDK，Key 从 DATAXAPI_API_KEY 读。它写出一个 CSV 文件，最后打印调了几次、取到几条、扣了多少。

```python
# pip install dataxapi
# export DATAXAPI_API_KEY=dx_...   (your key)
import csv
from decimal import Decimal
from dataxapi import DataXAPI

dx = DataXAPI()
calls, fetched, charged = 0, 0, Decimal("0")

def run(capability, params):
    """One call; counts it and what it was charged."""
    global calls, charged
    result = dx.call(capability, params)
    calls += 1
    charged += Decimal(str(result["meta"]["billing"]["amount"]))
    return result

QUERY = "机械键盘"
VIDEOS = 10

# 1. A page of videos for the search terms; the most played first.
videos = run("bilibili.videos.search", {"query": QUERY})["data"]["items"]
videos = sorted(videos, key=lambda each: -(each["metrics"].get("views") or 0))[:VIDEOS]

# 2. The first page of comments under each, the most popular first.
rows = []
for video in videos:
    for comment in run("bilibili.videos.comments.list", {"id": video["id"]})["data"]["items"]:
        rows.append([video["id"], video.get("title"), video["metrics"].get("views"), comment.get("text"), comment["metrics"].get("likes")])

fetched = len(rows)
with open("bilibili-comments.csv", "w", newline="", encoding="utf-8") as file:
    csv.writer(file).writerows([["bvid", "title", "plays", "comment", "comment_likes"], *rows])

print(f"calls: {calls}, items: {fetched}, charged: ${charged}")
```

## 用到的接口

- [B站视频搜索](https://dataxapi.com/zh/apis/bilibili/videos/search/)
- [B站视频评论](https://dataxapi.com/zh/apis/bilibili/videos/comments/list/)

## B站的更多内容

- [B站 API](https://dataxapi.com/zh/apis/bilibili/)
- [B站 API 有哪些？视频、评论、UP 主数据怎么取（2026）](https://dataxapi.com/zh/answers/bilibili-data-apis/)
- [B站 MCP：在 Claude、Cursor 里查 B站视频和评论（2026）](https://dataxapi.com/zh/answers/bilibili-mcp/)
- [B站 BV 号、av 号、mid 是什么？怎么从链接里拿（2026）](https://dataxapi.com/zh/answers/bilibili-bv-aid-mid/)

---

目录修订号 9d3b7fa5a896745d。 [网页版](https://dataxapi.com/zh/guides/bilibili-api-python/)
