哔哩哔哩 API
  1. 直播间长连和消息
哔哩哔哩 API
  • 新手指引
    • 平台简介
    • 开发者入驻
    • 应用管理
  • 接入指引
    • 网页应用接入
    • ios应用接入
    • andriod应用接入
    • SDK信息收集告知表
  • 开放能力
    • 账号授权
    • 接口签名实现标准和状态码
    • 权限白名单说明
    • 用户管理
      • 查询用户已授权权限列表
      • 获取用户公开信息
      • 获取用户的 union_id
    • 视频稿件管理
      • 服务端视频稿件投递
        • 接口概览
        • 文件上传预处理
        • 文件分片上传
        • 文件分片合片
        • 封面上传
        • 视频稿件提交
        • 分区查询
        • 单个小视频文件上传
      • 用户端唤起粉段投稿
        • 业务说明
        • 唤起粉端投稿接口说明
      • 视频稿件查询
        • 查询单一视频稿件详情
        • 查询用户视频稿件列表
      • 视频稿件编辑
      • 视频稿件删除
    • 专栏稿件管理
      • 文章管理
        • 查看文章
          • 查询文章详情
          • 查询文章列表
          • 获取文章的分类列表
          • 获取视频、文章卡片信息
        • 文章提交
        • 文章编辑
        • 文章删除
      • 文集管理
        • 文集编辑
          • 文集信息编辑
          • 文集下文章列表修改
        • 查看文集
          • 查询文集列表
          • 查询文集详情
        • 文集提交
        • 文集删除
      • 图片上传
        • 专栏稿件图片上传
    • 账号管理
      • 通过授权码获取access_token
      • 通过刷新令牌续期access_token
    • 数据开放服务
      • 用户数据
        • 获取用户数据
      • 视频数据
        • 获取单个稿件数据
        • 获取整体稿件增量数据
      • 专栏数据
        • 获取单一专栏数据
        • 获取单一专栏数据
    • 直播能力
      • 接入指南
      • 直播间长连和消息
        • 直播间消息websocket协议
        • 长连CMD说明
        • 直播房间长链信息及心跳ID
          POST
        • 直播房间长链心跳
          POST
        • 直播房间批量长链心跳
          POST
      • 开播能力嵌入(一键开播)
        • 一键开播说明
        • 业务流程说明
        • 开播接口列表
          • 开播授权
          • 开始直播
          • 结束直播
      • 获取直播间基础信息
        GET
      • 获取直播间详细信息
        POST
  • WebHooks
    • 概述
    • 事件列表
  • 常见工具
    • 示例代码
    • 沙盒环境
  • 运营指南
    • 运营规范
    • 处罚规则
    • 处罚公告
  • 其他
    • 状态码
    • 联系我们
  1. 直播间长连和消息

长连CMD说明

直播间数据#

直播间数据
获取弹幕信息
获取礼物信息
获取付费留言
付费留言下线
付费大航海
点赞信息
进入房间
关于退出房间
开始直播
结束直播
直播间基础信息变化
用户禁言通知
用户关注通知
直播间警告信息
消息推送结束通知

获取弹幕信息#

当该直播间有人发送弹幕时触发
CMD:OPEN_LIVEROOM_DM
返回字段:
字段名类型描述
unamestring用户昵称
open_idstring用户唯一标识
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
ufacestring用户头像
timestampint64弹幕发送时间秒级时间戳
room_idint64弹幕接收的直播间
msgstring弹幕内容
msg_idstring消息唯一id
guard_levelint64对应房间大航海等级
fans_medal_wearing_statusbool该房间粉丝勋章佩戴情况
fans_medal_namestring粉丝勋章名
fans_medal_levelint64对应房间勋章信息
emoji_img_urlstring表情包图片地址
dm_typeint64弹幕类型 0:普通弹幕 1:表情包弹幕
glory_levelint直播荣耀等级
reply_open_idstring被at用户唯一标识
reply_unamestring被at的用户昵称
is_adminint发送弹幕的用户是否是房管,取值范围0或1,取值为1时是房管
参考json
{
    "cmd":"OPEN_LIVEROOM_DM",
    "data":{
        "room_id":1,//弹幕接收的直播间
        "open_id":"39b8fedb-60a5-4e29-ac75-b16955f7e632",//用户唯一标识
        "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
        "uname":"",//用户昵称
        "msg":"",//弹幕内容
        "msg_id":"",//消息唯一id
        "fans_medal_level":0,//对应房间勋章信息
        "fans_medal_name":"粉丝勋章名",
        "fans_medal_wearing_status": true,//该房间粉丝勋章佩戴情况
        "guard_level":0,//对应房间大航海 1总督 2提督 3舰长
        "timestamp":0,//弹幕发送时间秒级时间戳
        "uface":"",//用户头像   
        "emoji_img_url": "", //表情包图片地址
        "dm_type": 0,//弹幕类型 0:普通弹幕 1:表情包弹幕
        "glory_level": 39,//直播荣耀等级
        "reply_open_id": "39b8fedb-60a5-4e29-ac75-b16955f7e632",//被at用户唯一标识
        "reply_uname": "",//被at的用户昵称
        "is_admin":1//发送弹幕的用户是否为房管
    }
}

获取礼物信息#

当该直播间有人赠送礼物时触发
CMD:OPEN_LIVEROOM_SEND_GIFT
返回字段:
字段名类型描述
room_idint64房间号
open_idstring送礼用户唯一标识
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
unamestring送礼用户昵称
ufacestring送礼用户头像
gift_idint64道具id(盲盒:爆出道具id)
gift_namestring道具名(盲盒:爆出道具名)
gift_numint64赠送道具数量
priceint64礼物爆出单价,(1000 = 1元 = 10电池),盲盒:爆出道具的价值
r_priceint64实际价值(1000 = 1元 = 10电池),盲盒:爆出道具的价值
paidbool是否是付费道具
fans_medal_levelint64实际送礼人的勋章信息
fans_medal_namestring粉丝勋章名
fans_medal_wearing_statusbool该房间粉丝勋章佩戴情况
guard_levelint64大航海等级
timestampint64收礼时间秒级时间戳
anchor_infoanchor_info结构体主播信息
msg_idstring消息唯一id
gift_iconstring道具icon
combo_giftbool是否是combo道具
combo_infocombo_info结构体连击信息
blind_giftblind_gift结构体盲盒信息
anchor_info结构体类型描述
uidint64收礼主播uid
unamestring收礼主播昵称
ufacestring收礼主播头像
combo_info类型描述
combo_base_numint64每次连击赠送的道具数量
combo_countint64连击次数
combo_idstring连击id
combo_timeoutint64连击有效期秒
blind_gift类型描述
blind_gift_idint64盲盒id
statusbool是否是盲盒
参考json
{
    "cmd":"OPEN_LIVEROOM_SEND_GIFT",
    "data":{
        "room_id":1,//直播间(演播厅模式则为演播厅直播间,非演播厅模式则为收礼直播间)
        "open_id":"39b8fedb-60a5-4e29-ac75-b16955f7e632",//用户唯一标识
        "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
        "uname":"",//送礼用户昵称
        "uface":"",//送礼用户头像
        "gift_id":0,//道具id(盲盒:爆出道具id)
        "gift_name":"",//道具名(盲盒:爆出道具名)
        "gift_num":0,//赠送道具数量
        "price":0,//礼物单价(1000 = 1元 = 10电池),盲盒:爆出道具的价值
        "paid":false,//是否是付费道具
        "fans_medal_level":0,//对应房间勋章信息
        "fans_medal_name":"粉丝勋章名", //粉丝勋章名
        "fans_medal_wearing_status": true,//该房间粉丝勋章佩戴情况
        "guard_level":0,//room_id对应的大航海等级
        "timestamp":0,//收礼时间秒级时间戳
        "msg_id":"",//消息唯一id
        "anchor_info":{
            "uid":0,//收礼主播UID(废弃)
            "open_id":"39b8fedb-60a5-4e29-ac75-b16955f7e632",//主播唯一标识            
            "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识
            "uname":"",//收礼主播昵称
            "uface":"http://i0.hdslb.com/bfs/face/4add3acfc930fcd07d06ea5e10a3a377314141c2.jpg"//收礼主播头像
        },
        "gift_icon":"http://i1.hdslb.com/dksldksldksld.jpg", //道具icon  (新增)
        "combo_gift":true,//是否是combo道具
        "combo_info":{ //ex:连击次数100,每个连击是批量送5个 既  5 * 100
            "combo_base_num": 5,//每次连击赠送的道具数量
            "combo_count":100,//连击次数
            "combo_id":"xxxxxx",//连击id
            "combo_timeout": 3,//连击有效期秒
        },
        "blind_gift": 
        {
            "blind_gift_id": 10086,//盲盒id
            "status": true,//是否是盲盒
        }
    }
:::

获取付费留言#

当该直播间有人发送付费留言时触发
CMD:OPEN_LIVEROOM_SUPER_CHAT
返回字段:
字段名类型描述
room_idint64直播间id
open_idstring用户唯一标识
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
unamestring购买的用户昵称
ufacestring购买用户头像
message_idint64留言id(风控场景下撤回留言需要)
messagestring留言内容
rmbint64支付金额(元)
timestampint64赠送时间秒级
start_timeint64生效开始时间
end_timeint64生效结束时间
guard_levelint64对应房间大航海等级
fans_medal_levelint64对应房间勋章信息
fans_medal_namestring对应房间勋章名字
fans_medal_wearing_statusbool该房间粉丝勋章佩戴情况
msg_idstring消息唯一id
参考json
{
    "cmd":"OPEN_LIVEROOM_SUPER_CHAT",
    "data":{
        "room_id":1,//直播间id
        "open_id":"39b8fedb-60a5-4e29-ac75-b16955f7e632",//购买用户唯一标识
        "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
        "uname":"",//购买的用户昵称
        "uface":"",//购买用户头像
        "message_id":0,//留言id(风控场景下撤回留言需要)
        "message":"",//留言内容
        "msg_id":"",//消息唯一id
        "rmb":0,//支付金额(元)
        "timestamp":0,//赠送时间秒级
        "start_time":0,//生效开始时间
        "end_time":0,//生效结束时间
        "guard_level": 2, //对应房间大航海登记    (新增) 
        "fans_medal_level": 26, //对应房间勋章信息  (新增) 
        "fans_medal_name": "aw4ifC", //对应房间勋章名字  (新增) 
        "fans_medal_wearing_status": true //该房间粉丝勋章佩戴情况   (新增)
    }
}

付费留言下线#

当该直播间有付费留言被下线时触发
CMD:OPEN_LIVEROOM_SUPER_CHAT_DEL
返回字段:
字段名类型描述
room_idint64直播间id
message_ids[]int64留言id
msg_idstring消息唯一id
参考json
{
    "cmd":"OPEN_LIVEROOM_SUPER_CHAT_DEL",
    "data":{
        "room_id":1,//直播间id
        "message_ids":[1,2],// 留言id
        "msg_id":""//消息唯一id
    }
}

付费大航海#

当该直播间有人上舰时触发
CMD:OPEN_LIVEROOM_GUARD
返回字段:
字段名类型描述
user_infouser_info结构体用户信息
guard_levelint64大航海等级
guard_numint64大航海数量
guard_unitstring大航海单位(正常单位为“月”,如为其他内容,无视guard_num以本字段内容为准,例如*3天)
priceint64大航海金瓜子
fans_medal_levelint64粉丝勋章等级
fans_medal_namestring粉丝勋章名
fans_medal_wearing_statusbool该房间粉丝勋章佩戴情况
room_idint64房间号
msg_idstring消息唯一id
timestampint64上舰时间秒级时间戳
user_info结构体类型描述
open_idstring用户唯一标识
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
unamestring用户昵称
ufacestring用户头像
参考json
{
    "cmd": "OPEN_LIVEROOM_GUARD",
    "data": {
        "user_info": {
            "open_id":"39b8fedb-60a5-4e29-ac75-b16955f7e632",//用户唯一标识
            "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
            "uname":"",//用户昵称
            "uface": "http://i0.hdslb.com/bfs/face/4add3acfc930fcd07d06ea5e10a3a377314141c2.jpg" //用户头像
        },
        "guard_level": 3, //对应的大航海等级 1总督 2提督 3舰长
        "guard_num": 1,
        "guard_unit": "月", // 正常单位为“月”,如为其他内容,无视`guard_num`以本字段内容为准,例如`*3天`
        "price":198000,
        "fans_medal_level": 24, //粉丝勋章等级
        "fans_medal_name": "aw4ifC", //粉丝勋章名
        "fans_medal_wearing_status": false, //该房间粉丝勋章佩戴情况
        "timestamp": 1653555128,
        "room_id": 460695,
        "msg_id":""//消息唯一id
    }
}

点赞信息#

该直播间有用户在移动端双击直播画面点赞时触发
请注意:
只有房间处于开播中,才会触发点赞事件。
对单一用户最近2秒聚合发送一次点赞次数。
CMD:OPEN_LIVEROOM_LIKE
返回字段:
字段名类型描述
unamestring用户昵称
open_idstring用户唯一标识
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
ufacestring用户头像
timestampint64时间秒级时间戳
room_idint64发生的直播间
like_textstring点赞文案( “xxx点赞了”)
like_countint64对单个用户最近2秒的点赞次数聚合
fans_medal_wearing_statusbool该房间粉丝勋章佩戴情况
fans_medal_namestring粉丝勋章名
fans_medal_levelint64对应房间勋章信息
参考json
{
    "data": {
        "uname": "哔哩哔哩直播",
        "open_id":"39b8fedb-60a5-4e29-ac75-b16955f7e632",//用户唯一标识
        "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
        "uface": "https://i0.hdslb.com/bfs/face/8f6a614a48a3813d90da7a11894ae56a59396fcd.jpg",
        "timestamp": 1685946262,
        "like_text": "为主播点赞了",
        "like_count":114,
        "fans_medal_wearing_status": false,
        "fans_medal_name": "",
        "fans_medal_level": 0,
        "msg_id": "57a7c676-ff00-4967-bb09-03e800ab0f4d",
        "room_id": 1
    },
    "cmd": "OPEN_LIVEROOM_LIKE"
}

进入房间#

该直播间有观众进入直播间时触发
请注意:如果单个直播间每秒进入人数超过R个人,那么会被限制每秒推送数量,其中R由当前服务的负载动态决定(最低不会低于10 QPS)
CMD:OPEN_LIVEROOM_LIVE_ROOM_ENTER
字段名类型描述
room_idint64发生的直播间
ufacestring用户头像
unamestring用户昵称
open_idstring用户唯一标识
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
timestampint64发生的时间戳
{
    "cmd":"OPEN_PLATFORM_LIVE_ROOM_ENTER",
    "data":{
        "room_id":1,
        "uface":"", // 头像
        "uname":"",// 昵称
        "open_id":"39b8fedb-60a5-4e29-ac75-b16955f7e632",//用户唯一标识
        "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
        "timestamp":0, //时间戳
    }
}

关于退出房间#

由于没有明确的退出事件触发和标志,在包括但不限于以下情况都下可能会触发“退出房间”事件:
标签页后台挂起,被浏览器冻结或终止。
直播间检测到无响应(确认弹窗超时)后主动断开连接。
网络不良导致的断续重连。
关闭直播间后服务器推送消息超时。
其他未列出的情况
以上这些情况通常在服务器异步调用情况下被发现是连接不可达,系统会猜测用户已退出房间。因此,在数据不可信且存在大量重复无意义数据的情况下,未提供明确的退出房间事件。

开始直播#

该直播间开始直播时触发
CMD:OPEN_LIVEROOM_LIVE_START
字段名类型描述
room_idint64发生的直播间
open_idstring用户唯一标识
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
timestampint64发生的时间戳
area_namestring开播二级分区名称
titlestring开播时刻,直播间的标题
{
    "cmd": "OPEN_PLATFORM_LIVE_START",
    "data": {
        "area_name": "户外",
        "open_id": "useropenidabcdefghigklmnopqrstuvwxyz",
        "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
        "room_id": 22018648,
        "timestamp": 1732175513,
        "title": "标题"
    }
}

结束直播#

该直播间停止直播时触发
CMD:OPEN_LIVEROOM_LIVE_END
字段名类型描述
room_idint64发生的直播间
open_idstring用户唯一标识
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
timestampint64发生的时间戳
area_namestring开播二级分区名称
titlestring开播时刻,直播间的标题
{
    "cmd": "OPEN_PLATFORM_LIVE_END",
    "data": {
        "area_name": "户外",
        "open_id": "useropenidabcdefghigklmnopqrstuvwxyz",
        "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
        "room_id": 22018648,
        "timestamp": 1732175513,
        "title": "标题"
    }
}

直播间基础信息变化#

当直播间修改标题或开播分区等基本信息时触发
CMD:OPEN_LIVEROOM_ROOM_CHANGE
字段名类型描述
area_namestring开播二级分区名称
msg_idstring推送消息的唯一ID
parent_area_namestring开播一级分区名称
room_idint64发生的直播间
timestampint64发生的时间戳
titlestring直播间的标题
{
    "cmd": "OPEN_LIVEROOM_ROOM_CHANGE",
    "data": {
        "area_name": "虚拟日常",
        "msg_id": "834c7954-4c10-411d-99e8-92bd639716cb",
        "parent_area_name": "虚拟主播",
        "room_id": 9617619,
        "timestamp": 1734674745,
        "title": "直播间标题"
    }
}

用户禁言通知#

当自己的直播间中有用户被禁言时触发
CMD:OPEN_LIVEROOM_ROOM_BLOCK_MSG
字段名类型描述
block_expiredint64禁言结束时间戳(UTC+8,秒)
msg_idstring推送消息的唯一ID
open_idstring被禁言的用户open_id
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
room_idint64发生的直播间
unamestring被禁言的用户昵称
{
    "cmd": "OPEN_LIVEROOM_ROOM_BLOCK_MSG",
    "data": {
        "block_expired": 1734682380,
        "msg_id": "319a642a-cbbf-4e00-890a-593d03f7e7a6",
        "open_id": "693778416f9243cc97738b59a744d256",
        "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
        "room_id": 9617619,
        "uname": "哔哩哔哩开放平台"
    }
}

用户关注通知#

当在直播间中有用户关注主播后触发
CMD:OPEN_LIVEROOM_INTERACT_WORD
字段名类型描述
msg_idstring推送消息的唯一ID
open_idstring进行关注操作的用户open_id
union_idstring用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
room_idint64发生的直播间
timestampint64发生的时间戳
unamestring进行关注操作的用户昵称
{
    "cmd": "OPEN_LIVEROOM_INTERACT_WORD",
    "data": {
        "msg_id": "663a231e-eea4-4e96-846e-07f0272fa4c4",
        "open_id": "a8417dc6988440abba38b7284d80fc4c",
        "union_id":"U_05ad57b6655a44528cb95a892c491232",//用户在同一个开发者下的唯一标识(默认为空,根据业务需求单独申请开通)
        "room_id": 9617619,
        "timestamp": 1734675235,
        "uname": "哔哩哔哩开放平台"
    }
}

直播间警告信息#

当主播自己的直播间触发直播警告信息时触发
CMD:OPEN_LIVEROOM_WARNING
字段名类型描述
msgstring警告信息内容
msg_idstring推送消息的唯一ID
room_idint64发生的直播间
timestampint64发生的时间戳
{
    "cmd": "OPEN_LIVEROOM_WARNING",
    "data": {
        "msg": "禁止挂机直播",
        "msg_id": "7574114c-6e60-43bc-a6aa-4be8733e1ee7",
        "room_id": 9617619,
        "timestamp": 1734675337
    }
}

消息推送结束通知#

当对应长连由于任何原因停止推送时触发
当收到该cmd消息后则代表对应的conn_id已失效,不会再收到消息推送。失效的原因一般是由于心跳过期或者主动调用END,具体错误请开发者监听API和心跳返回信息。
CMD:OPEN_LIVEROOM_INTERACTION_END
字段名类型描述
conn_idstring结束消息推送的conn_id
timestampint64发生的时间戳
{
    "cmd": "OPEN_LIVEROOM_INTERACTION_END",
    "data": {
        "conn_id": "f0423922-60e9-4f8c-b5f3-6ad2cb888a22",
        "timestamp": 1714113037
    }
}

【哔哩哔哩】API开发者 微信交流群

用微信扫右侧二维码,加入【哔哩哔哩】API开发者 交流群,互助沟通

扫码加入交流群
修改于 2025-10-13 06:50:51
上一页
直播间消息websocket协议
下一页
直播房间长链信息及心跳ID
Built with