给 AI

B站社交媒体

B站综合热门 API

B站综合热门视频,每页 20 条:标题、简介、UP 主、播放、点赞、投币、收藏、弹幕、时长、分区、IP 属地和推荐理由。

GEThttps://api.okdata.online/v1/bilibili/videos/trending

也叫B站热门视频哔哩哔哩综合热门英文名:Bilibili popular videos API

价格
$0.002约 ¥0.014
/ 次 · 出错和超时不收费
返回
每页约 20 条视频
带翻下一页的游标
调用出错时
不收费
一个数据源出错就换下一个;出错和超时都不扣费。
状态
预览
还可能调整,改动会提前公告。

参数

参数名类型说明
cursorstring上一次返回的 page.next_cursor,原样传回。每翻一页都是一次单独的调用。
viewstringcompactstandardfull返回多少字段。full 会在 ext 里带上平台特有字段。 默认 standard
fieldsstring[]只保留这些字段,按路径写(如 author.name),用来省 token。放在查询参数里时用逗号分隔。

所有接口的 cursor、view、fields 用法一致: 请求说明。

请求示例

cURL

curl "https://api.okdata.online/v1/bilibili/videos/trending" \
  -H "Authorization: Bearer $OKDATA_API_KEY"

Python

import os
import requests

resp = requests.get(
    "https://api.okdata.online/v1/bilibili/videos/trending",
    headers={"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"},
    params={},
    timeout=60,
)
body = resp.json()
if body["code"] != "ok":
    raise RuntimeError(f"{body['code']}: {body['message']} (charged: {body['charged']})")

for row in body["data"]["items"]:
    print(row["id"], row["metrics"]["likes"], row["text"][:60])
print("cost: $" + body["meta"]["billing"]["amount"])

TypeScript

const url = new URL('https://api.okdata.online/v1/bilibili/videos/trending');

const res = await fetch(url, {
  headers: {
    Authorization: `Bearer ${process.env.OKDATA_API_KEY}`,
  },
});
const body = await res.json();
if (body.code !== 'ok') throw new Error(`${body.code}: ${body.message}`);

for (const row of body.data.items) {
  console.log(row.id, row.metrics.likes, row.text.slice(0, 60));
}
console.log('cost: $' + body.meta.billing.amount);

MCPtools/call

{
  "name": "call",
  "arguments": {
    "capability": "bilibili.videos.trending"
  }
}

返回示例

200 · application/jsonmeta.billing.amount = 0.002
{
  "code": "ok",
  "request_id": "0f6c2a8e-4b1d-4e0a-9a51-3c7d2b9e1f20",
  "data": {
    "items": [
      {
        "id": "BV1Gx4y1H7kQ",
        "url": "https://www.bilibili.com/video/BV1Gx4y1H7kQ",
        "type": "video",
        "title": "用 Claude Code 半小时做完一个爬虫面板",
        "text": "从零开始,全程不写一行 CSS。",
        "lang": "zh",
        "published_at": "2026-11-02T09:30:00Z",
        "author": {
          "id": "3546581234567890",
          "username": null,
          "name": "周末写代码",
          "avatar_url": "https://cdn.example.com/avatar/trailkit.jpg",
          "followers": 88100,
          "verified": true
        },
        "metrics": {
          "views": 1250000,
          "likes": 48200,
          "comments": 1312,
          "shares": 2210,
          "favorites": 9650,
          "reposts": null
        },
        "images": null,
        "hashtags": [
          "编程",
          "AI"
        ]
      }
    ]
  },
  "page": {
    "next_cursor": "eyJvIjoyMH0",
    "has_more": true
  },
  "warnings": [],
  "meta": {
    "capability": "bilibili.videos.trending",
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    },
    "unavailable": {
      "metrics.reposts": "platform"
    },
    "cached": false,
    "replayed": false,
    "fetched_at": "2026-11-11T08:00:00Z"
  }
}

在线调试

这会向 https://api.okdata.online 发送一次真实调用,正常计费:最多 $0.002。失败的调用不扣费。key 只会发往这个地址,本站不保存。

已知限制

  • 每页约 20 条视频,条数由平台决定,没有每页条数参数。
  • 翻下一页时把 page.next_cursor 作为 cursor 传回。游标 24 小时内有效。page.has_more 为 false 时就没有下一页了。
  • Post 有 1 个字段这个接口给不了

返回字段

data.items 是一组 Post。

字段类型视图说明
idstringcompact内容在平台上的 ID。
urlstringcompact内容链接。
typestringcompact内容类型。
titlestring | nullcompact标题(视频、笔记、文章才有)。
textstringcompact文案、正文或简介,纯文本;文章为 Markdown。长文本:view=compact 可能截短。
langstring | nullstandard语言代码,平台给出或检测得到。
展开全部 12 个字段收起其余 6 个
字段类型视图说明
published_atstring | nullcompact发布时间,ISO 8601,UTC;只有数据源不给时间时为 null(wechat_mp.articles.metrics、wechat_channels.videos.metrics、youtube.channels.videos.list 取 Shorts 时),并列在 meta.unavailable 里。
authorAccountRefcompact发布者。
metricsMetricscompact抓取时的数据;平台不公开的为 null。
imagesstring[] | nullstandard图文内容的图片地址。
hashtagsstring[] | nullstandard话题标签,不带 #。
extobjectfull平台特有字段,只在 view=full 时返回。

“视图”一列是字段最早出现的 view:compact 只返回 compact 字段,standard 再加上 standard 字段,full 返回全部。默认是 standard。

这个接口给不了的

Post 的这些字段在这里返回 null,meta.unavailable 会逐个列出原因。

  • metrics.reposts平台不展示

什么时候收费

每次调用 $0.002,返回一页,约 20 条视频。抓 1,000 条视频大约要 50 次调用,合计 $0.10。每翻一页是一次单独的调用;失败的调用不扣费。

返回了数据$0.002,每次调用收一次

参数不合法、出错、超时不收费

情况收费
每翻一页另算一次调用:$0.002
单次最高扣费$0.002
空结果$0.002
参数不合法、出错、超时不收费
24 小时内带同一个 Idempotency-Key 重试只扣一次

调用失败不收费;空结果收 $0.002;查无此项不收费。

价格取自价目表版本 1b273c48fea9634e。 这个平台的全部价格 →

常见报错

所有错误同一种结构,并写明是否扣费。这个接口可能返回的:

状态码代码含义是否扣费
400invalid_params参数缺失、类型或取值不对,或者请求方法不对。problems 列出每一处问题,param 是第一个出错的参数。能否重试:修正后重试否
400cursor_mismatchcursor 发到了别的接口,或者参数和它所在那一页不一样(view 和 fields 可以变)。能否重试:修正后重试否
401unauthorizedKey 缺失、格式不对、已撤销、已停用或已过期(知道原因时 reason 会写明)。能否重试:不要重试否
402insufficient_balance余额(available)不够这次调用的最高费用(required)。能否重试:修正后重试否
410cursor_expiredcursor 超过了这个接口的有效期(page.cursor_expires_at 写了到期时间)。能否重试:不要重试否
429rate_limited账号这一分钟请求太多(reason: rate),或同时进行的调用太多(reason: concurrency)。能否重试:可以重试否
500settlement_unknown数据已返回,但没能确认是否扣费。能否重试:用同一个 Idempotency-Key 重试查询后才知道
502upstream_failed这个接口的所有数据源这次都失败了。能否重试:可以重试否
503capability_paused这个接口暂时停用了,这次没有执行。能否重试:可以重试否
504timeout数据没有及时返回。预扣已退回,这次没有扣费。能否重试:可以重试否

全部错误码 →

常见问题

B站综合热门接口多少钱?

每次调用 $0.002,返回一页,约 20 条视频。抓 1,000 条视频大约要 50 次调用,合计 $0.10。每翻一页是一次单独的调用;失败的调用不扣费。

怎么翻页?

把返回里的 page.next_cursor 原样作为 cursor 参数传回去。page.has_more 为 false 时就没有下一页了。每一页都是一次 $0.002 的调用。

需要B站账号、Cookie 或扫码登录吗?

不需要。只要带上 okdata 的 API key。返回的是B站上的公开数据,不会用到你自己的B站账号。

调用失败会扣费吗?

不会。所有错误都会返回 charged: false;只有超时返回 charged: null,表示结果还没确定。带同一个 Idempotency-Key 重发,绝不会重复扣费。

B站不展示某个字段怎么办?

这个字段会是 null,meta.unavailable 里会列出它和原因:platform(平台本来就不展示)或 capability(我们暂时取不到)。

在你的 AI 里用

复制这段话贴给 Claude、ChatGPT、Cursor 或任何能打开网页的智能体。它会读这个接口的说明,再用你的 key 调用。

先读 https://okdata.online/zh/apis/bilibili/videos/trending.md,再用 okdata 帮我调这个接口,key 在环境变量 OKDATA_API_KEY 里。用「B站综合热门」找出点赞最多的五条内容,附链接。

接好 MCP 服务后,直接问: 用「B站综合热门」找出点赞最多的五条内容,附链接。

其他平台的同类数据

其他平台的同一类数据,返回同样的 Post 结构:

放在一起比较:热门内容接口 →

B站的全部 9 个接口

B站 API 总览 →B站 API 价格 →

名称和编号

名称
B站综合热门 API · Bilibili popular videos API
简称
B站综合热门
编号
bilibili.videos.trending
地址
GET /v1/bilibili/videos/trending
也叫
B站热门视频、哔哩哔哩综合热门
数据类型
热门内容接口
返回
Post[]:12 个字段

接上一次,以后直接问 AI。

新 key 自带 $0.10 试用额度。贴一句话,就能接进你的智能体。

免费开始
一句话接进你的 AI

把这句话发给你的智能体

读一下 https://okdata.online/zh/agents.md,帮我把 okdata 配好;我的 key 在环境变量 OKDATA_API_KEY 里。

Claude Code、Cursor、Codex 等能打开网址的智能体,读完会自己配好。

MCP 地址https://api.okdata.online/mcp