概览
想知道 B 站上搜一个关键词能出来哪些视频、哪些最火?给它一个搜索关键词,它会取回搜索结果中的视频列表,每条带视频标题、播放数、点赞数、弹幕数和 up 主信息,可以直接导出到表格里做内容选题或视频情报分析。
比起在搜索页一条条看,它把关键词下的搜索结果一次拉全,互动数据、发布信息都保留在结果里,适合当作 B 站视频情报与内容分析的原始数据底表。
数据说明
视频数据取自 B 站公开搜索结果页,只覆盖搜索结果返回的视频,已失效或受版权限制的视频不在其中。播放数、点赞数、弹幕数、评论数与收藏数为采集当时页面展示的值,随时间变化;发布时间为页面展示的发布时间,另附发布距采集日的天数。结果按搜索结果顺序返回,不做去重与排序。
结果长什么样
每条记录是一个视频:
| 视频标题 | 播放数 | 点赞数 | 弹幕数 | UP主名称 |
|---|---|---|---|---|
| 人工智能入门到精通 | 1200000 | 85000 | 32000 | 科技漫谈 |
| 十分钟看懂大模型 | 580000 | 42000 | 18000 | AI前沿观察 |
应用场景
- 做内容选题时,把「播放数」「点赞数」按高低排序,找出关键词下最受欢迎的视频,总结选题方向。
- 做竞品监测时,从「视频标题」按 up 主归组,结合「播放数」看哪些 up 主在该话题下有优势。
- 盯热点趋势时,隔几天跑同一个关键词,比对「发布时间」和「播放数」看新视频的起量速度。
适用边界
单次任务对一个关键词的搜索结果翻页采集,结果条数受翻页次数与采集上限控制(默认翻 3 页、最多 1000 条)。
- 适合用于
- 需要按关键词批量获取 B 站搜索结果视频与互动数据时
- 需要对比多个视频的播放、点赞、弹幕表现做内容分析时
- 不要用于
- 需要单个视频的完整弹幕或评论内容时——用弹幕评论采集类 App
- 需要实时观看人数或直播数据时——本 App 覆盖搜索结果页的静态数据
失败处理
作者声明的失败与重试处理方式,接入时建议一并写进系统提示词。
- 1任务失败属可重试错误,可原样重新提交
- 2结果分页返回,条数多时请用 SDK/REST 导出而非反复翻页
输入参数
调用本 App 需要传入的参数,与 manifest.json 的 input.schema 同源。
| 字段名 | 业务名称 | 类型 | 必填 | 默认值 | 枚举 / 约束 | 示例 | 说明 |
|---|---|---|---|---|---|---|---|
| keyword | 搜索关键词 | string | 是 | — | — | 人工智能 | 要在 B 站搜索的视频关键词,填写一个即可,如「人工智能」。一次任务执行一个关键词 |
| max_pages | 翻页次数 | integer | 是 | 3 | 1–100 | — | 搜索结果最多翻几页,默认 3 页,每页约 20 条视频。页数越多耗时和费用越高 |
| max_collected_rows | 采集条数上限 | integer | 否 | 1000 | 1–1000000 | — | 本次任务总共采集的记录条数上限,默认 1000 条。数值越大耗时和费用越高 |
输出数据
单条记录的字段结构,与 manifest.json 的 output.schema 同源。
| 字段名 | 业务名称 | 类型 | 示例 | 说明 |
|---|---|---|---|---|
| likes | 点赞数 | string | — | 视频点赞数(原字段名 点赞数) |
| danmaku_count | 弹幕数 | string | — | 视频弹幕数(原字段名 弹幕数) |
| video_tags | 视频标签 | string | — | 视频标签(原字段名 视频标签) |
| video_bvid | 视频BV号 | string | — | 视频 BV 号,B 站视频唯一标识(原字段名 视频bvid) |
| comment_count | 评论数 | string | — | 视频评论数(原字段名 评论数) |
| video_url | 视频链接 | string | — | 视频播放页链接(原字段名 视频链接) |
| views | 播放数 | string | — | 视频播放量(原字段名 播放数) |
| video_duration | 视频时长 | string | — | 视频时长(原字段名 视频时长) |
| publish_days_ago | 发布距今天数 | string | — | 视频发布距采集日的天数(原字段名 发布时间_天) |
| video_category | 视频类别 | string | — | 视频所属分区类别(原字段名 视频类别) |
| video_cover | 视频封面 | string | — | 视频封面图链接(原字段名 视频封面) |
| up_avatar | UP主头像 | string | — | up 主头像链接(原字段名 up主头像) |
| up_homepage | UP主主页 | string | — | up 主个人主页链接(原字段名 up主主页) |
| keyword | 关键词 | string | — | 本次检索使用的关键词(原字段名 关键词) |
| video_desc | 视频简介 | string | — | 视频简介内容(原字段名 视频简介) |
| up_id | UP主ID | string | — | up 主用户 ID(原字段名 up主id) |
| favorites | 收藏数 | string | — | 视频收藏数(原字段名 收藏数) |
| publish_time | 发布时间 | string | — | 视频发布时间(原字段名 发布时间) |
| video_url2 | 视频链接2 | string | — | 视频备用播放链接(原字段名 视频链接2) |
| video_id | 视频ID | string | — | 视频数字 ID(原字段名 视频id) |
| video_title | 视频标题 | string | — | 视频标题(原字段名 视频标题) |
| up_name | UP主名称 | string | — | up 主昵称(原字段名 up主名称) |
记录 Schema
输出按记录逐条返回。记录主键为 video_bvid,去重、增量、关联以它为准。
{
"type": "object",
"properties": {
"likes": {
"type": "string",
"title": "点赞数",
"description": "视频点赞数(原字段名 点赞数)"
},
"danmaku_count": {
"type": "string",
"title": "弹幕数",
"description": "视频弹幕数(原字段名 弹幕数)"
},
"video_tags": {
"type": "string",
"title": "视频标签",
"description": "视频标签(原字段名 视频标签)"
},
"video_bvid": {
"type": "string",
"title": "视频BV号",
"description": "视频 BV 号,B 站视频唯一标识(原字段名 视频bvid)"
},
"comment_count": {
"type": "string",
"title": "评论数",
"description": "视频评论数(原字段名 评论数)"
},
"video_url": {
"type": "string",
"title": "视频链接",
"description": "视频播放页链接(原字段名 视频链接)"
},
"views": {
"type": "string",
"title": "播放数",
"description": "视频播放量(原字段名 播放数)"
},
"video_duration": {
"type": "string",
"title": "视频时长",
"description": "视频时长(原字段名 视频时长)"
},
"publish_days_ago": {
"type": "string",
"title": "发布距今天数",
"description": "视频发布距采集日的天数(原字段名 发布时间_天)"
},
"video_category": {
"type": "string",
"title": "视频类别",
"description": "视频所属分区类别(原字段名 视频类别)"
},
"video_cover": {
"type": "string",
"title": "视频封面",
"description": "视频封面图链接(原字段名 视频封面)"
},
"up_avatar": {
"type": "string",
"title": "UP主头像",
"description": "up 主头像链接(原字段名 up主头像)"
},
"up_homepage": {
"type": "string",
"title": "UP主主页",
"description": "up 主个人主页链接(原字段名 up主主页)"
},
"keyword": {
"type": "string",
"title": "关键词",
"description": "本次检索使用的关键词(原字段名 关键词)"
},
"video_desc": {
"type": "string",
"title": "视频简介",
"description": "视频简介内容(原字段名 视频简介)"
},
"up_id": {
"type": "string",
"title": "UP主ID",
"description": "up 主用户 ID(原字段名 up主id)"
},
"favorites": {
"type": "string",
"title": "收藏数",
"description": "视频收藏数(原字段名 收藏数)"
},
"publish_time": {
"type": "string",
"title": "发布时间",
"description": "视频发布时间(原字段名 发布时间)"
},
"video_url2": {
"type": "string",
"title": "视频链接2",
"description": "视频备用播放链接(原字段名 视频链接2)"
},
"video_id": {
"type": "string",
"title": "视频ID",
"description": "视频数字 ID(原字段名 视频id)"
},
"video_title": {
"type": "string",
"title": "视频标题",
"description": "视频标题(原字段名 视频标题)"
},
"up_name": {
"type": "string",
"title": "UP主名称",
"description": "up 主昵称(原字段名 up主名称)"
}
},
"required": [],
"additionalProperties": false
}调用方式
本 App 支持通过 MCP、API、SDK 与文件导出方式接入,各接入方式共享同一套能力与计价。所有请求统一使用 Authorization: Bearer 请求头完成身份认证,凭证为 API Key(长期有效,在开放平台创建);MCP 客户端另支持 OAuth 免密钥登录。CLI、Skill 等更多接入方式正在规划中。
通过 MCP(Model Context Protocol)协议,可在 Claude、Cursor 等 AI 客户端中直接调用本 App。选择你的客户端与认证方式,复制下方配置即可接入。
客户端配置
把 Bearer 后替换为长期有效的 API Key 即可,各类客户端与 CI、无浏览器环境通用。
{
"mcpServers": {
"SpiderByte__bilibili-keyword-video-search": {
"type": "http",
"url": "https://mcp-v2.bazhuayu.com?pin=SpiderByte/bilibili-keyword-video-search",
"headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
}
}
}让 AI 自己完成配置
不想手动改配置?复制安装提示词,粘贴到任意 AI 客户端对话框,由它按自身方式完成接入(提示词会让 AI 向你索要 API Key,避免凭证留在对话记录或共享配置里)。
如需在同一个 MCP 连接里指定多个 App,前往 MCP 连接页(已为你指定本 App)。
价格
按实际成功返回的数据条数计费,任务失败不计费。
多个计费事件按各自口径独立累计,具体以每一项说明为准;任务失败不计费。
立即体验
填写参数直接运行,结果来自真实调用。