B站视频弹幕发送接口详解:哔哩哔哩-API收集整理中的实时互动功能

B站视频弹幕发送接口详解:哔哩哔哩-API收集整理中的实时互动功能

【免费下载链接】bilibili-API-collect 哔哩哔哩-API收集整理【不断更新中....】 【免费下载链接】bilibili-API-collect 项目地址: https://gitcode.com/GitHub_Trending/bi/bilibili-API-collect

弹幕(Danmaku)是哔哩哔哩(B站)最具特色的实时互动功能之一,允许用户在观看视频时发送滚动文字评论,形成独特的社区观影体验。本文将详细解析B站视频弹幕发送接口的技术细节,帮助开发者和运营人员快速理解如何通过API实现弹幕功能的集成与应用。

弹幕功能概述

B站弹幕系统支持多种互动形式,包括普通滚动弹幕、顶部/底部固定弹幕、彩色弹幕以及高级互动弹幕(如UP主头像弹幕、关联视频弹幕等)。这些功能通过统一的API接口实现,开发者可根据需求选择合适的接口进行调用。

项目中提供了丰富的弹幕相关文档,完整接口定义可参考弹幕操作文档。弹幕功能的视觉呈现可参考B站官方图标:

弹幕图标

核心弹幕发送接口详解

基础弹幕发送接口

最常用的弹幕发送接口为https://api.bilibili.com/x/v2/dm/post,支持发送普通、顶部、底部等基础类型弹幕。

请求参数说明

URL参数: | 参数名 | 类型 | 内容 | 必要性 | 备注 | | --- | --- | --- | --- | --- | | web_location | str | 普通视频: 1315873 | 不必要 | | | csrf | str | CSRF Token (即 Cookie 中 bili_jct) | Cookie 方式必要 | | | w_rid | str | Wbi 签名 | 必要 | 参见 Wbi 签名 | | wts | str | UNIX 秒级时间戳 | 必要 | 参见 Wbi 签名 |

正文参数: | 参数名 | 类型 | 内容 | 必要性 | 备注 | | --- | --- | --- | --- | --- | | type | num | 弹幕类选择 | 必要 | 1:视频弹幕
2:漫画弹幕 | | oid | num | 视频 cid | 必要 | | | msg | str | 弹幕内容 | 必要 | 长度小于 100 字符 | | bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid 任选一个 | | aid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 | | progress | num | 弹幕出现时间 | 非必要 | 单位为毫秒,默认为0 | | color | num | 弹幕颜色 | 非必要 | 十进制 RGB888 值,如16777215为白色 | | fontsize | num | 弹幕字号 | 非必要 | 默认为 25,可选12-64 | | pool | num | 弹幕池选择 | 非必要 | 0:普通池
1:字幕池
2:特殊池 | | mode | num | 弹幕类型选择 | 必要 | 1:普通
4:底部
5:顶部
7:高级
9:BAS弹幕 |

发送示例

以下是发送一条普通滚动弹幕的curl示例:

curl 'https://api.bilibili.com/x/v2/dm/post' \
    --data-urlencode 'type=1' \
    --data-urlencode 'oid=62131' \
    --data-urlencode 'msg=前来考古' \
    --data-urlencode 'aid=2' \
    --data-urlencode 'progress=5000' \
    --data-urlencode 'color=16777215' \
    --data-urlencode 'fontsize=25' \
    --data-urlencode 'pool=0' \
    --data-urlencode 'mode=1' \
    --data-urlencode 'rnd=3456789987654321' \
    --data-urlencode 'csrf=xxx' \
    -b 'SESSDATA=xxx'
响应示例

成功发送后返回:

{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "action": "",
        "dmid": 32161968826613767,
        "dmid_str": "32161968826613767",
        "visible": true
    }
}

互动弹幕发送接口

互动弹幕接口https://api.bilibili.com/x/v2/dm/command/post支持UP主头像弹幕、关联视频弹幕等高级互动形式。

主要参数说明
参数名类型内容必要性备注
typenum互动弹幕类型必要1:UP主头像弹幕
2:关联视频弹幕
5:引导关注按钮
aidnum稿件avid必要
cidnum视频cid必要
progressnum出现时间非必要单位为毫秒
platnum平台标识必要1:web端
2:安卓端
8:视频管理页
datastr弹幕数据必要json序列
典型应用场景

UP主头像弹幕

curl 'https://api.bilibili.com/x/v2/dm/command/post' \
--data-urlencode 'type=1' \
--data-urlencode 'aid=201947622' \
--data-urlencode 'cid=230709860' \
--data-urlencode 'progress=5000' \
--data-urlencode 'plat=1' \
--data-urlencode 'data={"msg":"测试UP主头像弹幕"}' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'

关联视频弹幕

curl 'https://api.bilibili.com/x/v2/dm/command/post' \
--data-urlencode 'type=2' \
--data-urlencode 'aid=201947622' \
--data-urlencode 'cid=230709860' \
--data-urlencode 'progress=5000' \
--data-urlencode 'plat=1' \
--data-urlencode 'data={"bvid":"BV1kz4y1X7XP","msg":"测试关联视频弹幕"}' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'

常见错误码及解决方案

弹幕发送常见错误码说明:

错误码含义解决方案
-101账号未登录检查Cookie或access_key是否有效
-111CSRF校验失败确保csrf参数与Cookie中的bili_jct一致
36701弹幕包含违规内容修改弹幕文本,避免敏感词
36702弹幕长度超限缩短至100字符以内
36703发送频率过快添加rnd参数可将冷却时间从90s缩短至5s
36708等级不足升级账号等级或开通会员

高级功能:弹幕撤回与管理

弹幕撤回接口

使用https://api.bilibili.com/x/dm/recall接口可撤回2分钟内发送的弹幕:

curl 'https://api.bilibili.com/x/dm/recall' \
--data-urlencode 'cid=168901231' \
--data-urlencode 'dmid=32310301474947077' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'

高级弹幕权限购买

发送高级弹幕需购买权限(2硬币/次):

curl 'https://api.bilibili.com/x/dm/adv/buy' \
--data-urlencode 'cid=168901231' \
--data-urlencode 'mode=sp' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'

接口调用最佳实践

  1. 签名处理:Wbi签名是必选参数,实现方式详见Wbi签名文档
  2. 频率控制:添加rnd参数可降低发送间隔至5秒
  3. 错误处理:完善错误码处理逻辑,特别是36703(频率过快)和36701(内容违规)
  4. 权限检查:发送彩色弹幕和高级弹幕需会员或特定等级,提前检查用户权限

总结

B站弹幕API为开发者提供了丰富的实时互动功能,从基础的滚动弹幕到高级的UP主互动弹幕,覆盖了视频内容互动的多种场景。通过本文介绍的接口参数、调用示例和最佳实践,开发者可以快速集成弹幕功能,为用户打造更丰富的视频互动体验。

完整的API文档和更多高级功能请参考项目中的弹幕操作文档,如有疑问可查阅项目贡献指南获取帮助。

B站logo

【免费下载链接】bilibili-API-collect 哔哩哔哩-API收集整理【不断更新中....】 【免费下载链接】bilibili-API-collect 项目地址: https://gitcode.com/GitHub_Trending/bi/bilibili-API-collect

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值