# 知道 BV 号，怎么拿到播放、投币和弹幕数？

> 按 BV 号或链接查 B 站视频，一次拿到播放、点赞、投币、收藏、分享、弹幕数，以及 aid 和 cid。费用说明和批量查询脚本。

网页版：https://okdata.online/zh/answers/bilibili-bv-id-video-stats/

**简短回答：**用 B站视频详情接口，传 BV 号（或视频链接），加上 view=full。一次调用返回播放、点赞、评论、分享、收藏，ext 里还有投币、弹幕数、aid、cid、时长和分区，每次 $0.002。200 个 BV 号一共 $0.40。

投放结案报告发过来，里面是 200 个 BV 号和对应的播放量。验收之前，你想自己核一遍真实数据，顺便看看投币。在 B 站，投币比点赞更能说明观众是真喜欢。每个 BV 号调一次接口，这些数就全有了。

## 用哪个接口

[B站视频详情](/zh/apis/bilibili/videos/get/)传 `id`（BV 号，比如 `BV1xx411c7mD`）或者 `url`（完整的 `bilibili.com/video/...` 链接），二选一。加上 `view=full` 后，各项数据在这些字段里：

| 想要的数 | 字段 |
|---|---|
| 播放 | `metrics.views` |
| 点赞 | `metrics.likes` |
| 投币 | `ext.coins` |
| 收藏 | `metrics.favorites` |
| 分享 | `metrics.shares` |
| 评论 | `metrics.comments` |
| 弹幕数 | `ext.danmaku` |
| aid（以前的 AV 号） | `ext.aid` |
| cid（第一个分 P 的） | `ext.cid` |
| 时长（秒） | `ext.duration_s` |
| 分区 | `ext.section` |

标题、简介、封面、发布时间、UP 主昵称和 mid 也会一起返回。

## 费用

| 规模 | 调用次数 | 费用 |
|---|---|---|
| 一个视频 | 1 | $0.002 |
| 一份 200 个视频的结案报告 | 200 | $0.40 |
| 1,000 个视频 | 1,000 | $2.00 |

视频已删除或设为私密时返回 `not_found`，这种调用不收费。

## 批量查询脚本

把 BV 号一行一个放进 `bvids.txt`：

```python
import csv, os, requests

URL = "https://api.okdata.online/v1/bilibili/videos/get"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

bvids = [line.strip() for line in open("bvids.txt") if line.strip()]
with open("stats.csv", "w", newline="", encoding="utf-8-sig") as f:
    w = csv.writer(f)
    w.writerow(["bvid", "播放", "点赞", "投币", "收藏", "弹幕", "抓取时间"])
    for bv in bvids:
        body = requests.get(URL, headers=H, params={"id": bv, "view": "full"}, timeout=60).json()
        if body["code"] != "ok":
            w.writerow([bv, body["code"]])
            continue
        v = body["data"]["item"]
        w.writerow([bv, v["metrics"]["views"], v["metrics"]["likes"], v["ext"]["coins"],
                    v["metrics"]["favorites"], v["ext"]["danmaku"], body["meta"]["fetched_at"]])
```

## 几点提醒

- 拿到的是抓取那一刻的快照。把 `meta.fetched_at` 一起存下来，热门视频一天之内播放翻倍很常见。
- 多 P 视频共用一个 BV 号，数据是整个视频的合计，`ext.cid` 是第一个分 P 的。
- 完播率、流量来源、观众年龄这些只有 UP 主自己能看，任何公开接口都拿不到。
- 如果你只是想把 BV 号换成 AV 号，用不着调接口。BV 与 AV 的互转算法是公开的，bilibili-API-collect 里有说明，本地几行代码就能算，不花钱。

## 别的办法

只有五个视频的话，打开页面抄一下就行。如果是你自己投的单，让 UP 主导出创作中心的数据，比任何公开数据都全。愿意自己维护代码的话，开源库 bilibili-api 也能免费读到这些公开数据。想把一次性的核查变成持续跟踪，可以看[竞品监测方案](/zh/solutions/competitor-monitoring/)。

## 用到的接口

- [B站视频详情](https://okdata.online/zh/apis/bilibili/videos/get/) `bilibili.videos.get`：$0.002/次

更新于 2026-11-12
