From ced669e01e372b698bd85e351af9d80d08848648 Mon Sep 17 00:00:00 2001 From: MoRanYue <2627706725@qq.com> Date: Tue, 17 Jan 2023 20:00:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E6=95=B0=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=90=8D=E7=A7=B0=E3=80=81=E5=AE=8C=E5=96=84=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E3=80=81=E6=B7=BB=E5=8A=A0=E7=9B=AE=E5=BD=95=20(#586)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Create README.md * Update message_stream.md * Update message_stream.md * Update message_stream.md * Update message_stream.md * Update message_stream.md * Update message_stream.md * 修改了直播信息流文档 * message_stream * 更改数据类型名称、完善直播信息流文档 * message_stream.md --- live/message_stream.md | 1034 +++++++++++++++++++++++++++++++++++----- 1 file changed, 915 insertions(+), 119 deletions(-) diff --git a/live/message_stream.md b/live/message_stream.md index 541168e..7e5be5b 100644 --- a/live/message_stream.md +++ b/live/message_stream.md @@ -1,6 +1,13 @@ # 直播间信息流 - [获取信息流认证秘钥](#获取信息流认证秘钥) +- [数据包格式](#数据包格式) +- [数据包](#数据包) + - [认证包](#认证包) + - [认证包回复](#认证包回复) + - [心跳包](#心跳包) + - [心跳包回复](#心跳包回复人气值) + - [普通包](#普通包) --- @@ -100,7 +107,7 @@ curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo' \ ## 数据包格式 -数据包为MQ(消息队列)使用websocket或tcp作为通道,具体格式为头部数据+正文数据 +数据包为MQ(Message Queue,消息队列)使用Websocket或TCP连接作为通道,具体格式为头部数据+正文数据 操作流程: @@ -128,6 +135,8 @@ curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo' \ *普通包可能包含多条命令,每个命令有一个头部,指示该条命令的长度等信息* +## 数据包 + ### 认证包 方式:(上行) @@ -185,8 +194,8 @@ json格式 示例: ``` -00000000 00 00 00 1a 00 10 00 01 00 00 00 08 00 00 00 01 |................| -00000010 7b 22 63 6f 64 65 22 3a 30 7d |{"code":0}| +00000000: 0000 001a 0010 0001 0000 0008 0000 0001 ................ +00000001: 7b22 636f 6465 223a 307d {"code":0} ``` @@ -225,10 +234,10 @@ json格式 ``` 00000000: 0000 0014 0010 0001 0000 0003 0000 0000 ................ 00000001: 0000 09a2 5b6f 626a 6563 7420 4f62 6a65 ....[object Obje -00000002: 6374 5d +00000002: 6374 5d ct] ``` -可见房间内人气值为2466(0x000009a2) +可见房间内人气值为2466(0x000009a2) ### 普通包 @@ -254,6 +263,38 @@ json格式 00000008: bf87 227d 7d03 .."}}. ``` +--- + +- [弹幕](#弹幕) +- [进场或关注消息](#进场或关注消息) +- [送礼](#送礼) +- [礼物星球点亮](#礼物星球点亮) +- [礼物连击](#礼物连击) +- [通知消息](#通知消息) +- [主播准备中](#主播准备中) +- [直播开始](#直播开始) +- [主播信息更新](#主播信息更新) +- [直播间高能榜](#直播间高能榜) +- [直播间高能用户数量](#直播间高能用户数量) +- [用户到达直播间高能榜前三名的消息](#用户到达直播间高能榜前三名的消息) +- [直播间用户点赞](#直播间用户点赞) +- [直播间点赞数](#直播间点赞数) +- [直播间发红包弹幕](#直播间发红包弹幕) +- [直播间红包](#直播间红包) +- [直播间抢到红包的用户](#直播间抢到红包的用户) +- [直播间看过人数](#直播间看过人数) +- [用户进场特效](#用户进场特效) +- [直播间在所属分区的排名改变](#直播间在所属分区的排名改变) +- [直播间在所属分区排名提升的祝福](#直播间在所属分区排名提升的祝福) +- [直播间信息更改](#直播间信息更改) +- [醒目留言按钮](#醒目留言按钮) +- [顶部横幅](#顶部横幅) +- [下播的直播间](#下播的直播间) +- [未知消息](#未知消息) + +--- + + #### 弹幕 当收到弹幕时接收到此条消息 @@ -263,7 +304,69 @@ json格式 | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ------ | --------- | | cmd | str | "DANMU_MSG" | 如果是弹幕消息,内容则是"DANMU_MSG" | -| info | array | 单条弹幕的用户、内容、粉丝勋章等各种信息 | 待补 | +| info | array | 这条弹幕的用户、内容与粉丝勋章等各种信息 | 待调查其中每个数据的含义 | + + + + +
查看消息示例: @@ -274,76 +377,81 @@ json格式 "info": [ [ 0, - 4, + 1, 25, - 5566168, - 1644559560263, - 1644558747, + 16777215, + 1673789362967, + 1673770572, 0, - "998a531f", + "81240bc1", 0, 0, - 5, - "#1453BAFF,#4C2263A2,#3353BAFF", + 0, + "", 0, "{}", "{}", { "mode": 0, "show_player_type": 0, - "extra": "" + "extra": "{\"send_from_me\":false,\"mode\":0,\"color\":16777215,\"dm_type\":0,\"font_size\":25,\"player_mode\":1,\"show_player_type\":0,\"content\":\"测试文本\",\"user_hash\":\"2166623169\",\"emoticon_unique\":\"\",\"bulge_display\":0,\"recommend_score\":8,\"main_state_dm_color\":\"\",\"objective_state_dm_color\":\"\",\"direction\":0,\"pk_direction\":0,\"quartet_direction\":0,\"anniversary_crowd\":0,\"yeah_space_type\":\"\",\"yeah_space_url\":\"\",\"jump_to_url\":\"\",\"space_type\":\"\",\"space_url\":\"\",\"animation\":{},\"emots\":null}" + }, + { + "activity_identity": "", + "activity_source": 0, + "not_show": 0 } ], "测试文本", [ - 1850091, - "Jannchie见齐", + 50500335, + "属官一号", 0, 0, 0, 10000, 1, - "#00D1F1" + "" ], [ - 21, - "観測者", - "Jannchie见齐", - 422915, - 1725515, + 5, + "小纸鱼", + "薄海纸鱼", + 706667, + 6126494, "", 0, - 6809855, - 1725515, - 5414290, - 3, - 1, - 1850091 + 12632256, + 12632256, + 12632256, + 0, + 0, + 1837617 ], [ - 20, 0, - 6406234, - "u003e50000", - 3 + 0, + 9868950, + ">50000", + 2 ], [ "", "" ], 0, - 3, + 0, null, { - "ts": 1644559560, - "ct": "59DEA791" + "ts": 1673789362, + "ct": "A4721FE3" }, 0, 0, null, null, 0, - 210 + 21 ] } ``` @@ -351,8 +459,6 @@ json格式 #### 进场或关注消息 -方式:(下行) - 有用户进入直播间或关注主播时触发 json格式 @@ -445,102 +551,102 @@ data字段 | 字段 | 类型 | 内容 | 备注 | | ---- | -------- | ------ | --------- | -| action | string | 礼物操作,一般为"投喂" | | -| batch_combo_id | string | 待调查 | 有时为空字符串 | +| action | str | 礼物操作,一般为"投喂" | | +| batch_combo_id | str | 待调查 | 有时为空字符串 | | batch_combo_send | obj | 待调查 | 有时为null | -| beatId | string | 待调查 | | -| biz_source | string | 待调查 | | +| beatId | str | 待调查 | | +| biz_source | str | 待调查 | | | blind_gift | | 待调查 | | -| broadcast_id | number | 待调查 | | -| coin_type | string | 待调查 | | -| combo_resources_id | number | 待调查 | | +| broadcast_id | num | 待调查 | | +| coin_type | str | 待调查 | | +| combo_resources_id | num | 待调查 | | | combo_send | | 待调查 | | -| comber_stay_time | number | 待调查 | | -| combo_total_coin | number | 待调查 | | -| crit_prob | number | 待调查 | | -| demarcation | number | 待调查 | | -| discount_price | number | 待调查 | | -| dmscore | number | 待调查 | | -| draw | number | 待调查 | | -| effect | number | 待调查 | | -| effect_block | number | 待调查 | | -| face | string | 一段URL | 礼物投喂者的头像URL | -| face_effect_id | number | | | -| face_effect_type | number | | | -| float_sc_resource_id | number | | | -| giftId | number | 待调查 | | -| giftName | string | 礼物名称 | | -| giftType | number | 待调查 | | +| comber_stay_time | num | 待调查 | | +| combo_total_coin | num | 待调查 | | +| crit_prob | num | 待调查 | | +| demarcation | num | 待调查 | | +| discount_price | num | 待调查 | | +| dmscore | num | 待调查 | | +| draw | num | 待调查 | | +| effect | num | 待调查 | | +| effect_block | num | 待调查 | | +| face | str | 礼物投喂者的头像URL | | +| face_effect_id | num | 待调查 | | +| face_effect_type | num | 待调查 | | +| float_sc_resource_id | num | 待调查 | | +| giftId | num | 礼物ID | | +| giftName | str | 礼物名称 | | +| giftType | num | 待调查 | | | gold | number | 待调查 | | -| guard_level | number | 待调查 | | +| guard_level | num | 待调查 | | | is_first | bool | 待调查 | | | is_join_receiver | bool | 待调查 | | | is_naming | bool | 待调查 | | -| is_special_batch | number | 待调查 | | -| magnification | number | 待调查 | | +| is_special_batch | num | 待调查 | | +| magnification | num | 待调查 | | | medal_info | obj | 礼物投喂者粉丝奖牌信息 | | -| name_color | string | 待调查 | | +| name_color | str | 待调查 | | | num | number | 该次投喂的礼物数量 | | -| original_gift_name | string | 待调查 | | -| price | number | 待调查 | | -| rcost | number | 待调查 | | +| original_gift_name | str | 待调查 | | +| price | num | 待调查 | | +| rcost | num | 待调查 | | | receive_user_info | obj | 礼物接收者信息,一般是主播 | | -| remain | number | 待调查 | | -| rnd | number | 礼物发送时的时间戳,以及后面9位未知数字 | | +| remain | num | 待调查 | | +| rnd | num | 礼物发送时的时间戳,以及后面9位未知数字 | | | send_master | | 待调查 | | -| silver | number | 待调查 | | -| super | number | 待调查 | | -| super_batch_gift_num | number | 待调查 | | -| super_gift_num | number | 待调查 | | -| svga_block | number | 待调查 | | +| silver | num | 待调查 | | +| super | num | 待调查 | | +| super_batch_gift_num | num | 待调查 | | +| super_gift_num | num | 待调查 | | +| svga_block | num | 待调查 | | | switch | bool | 待调查 | | -| tag_image | string | 待调查 | | -| tid | number | 礼物发送时的时间戳,以及后面9位未知数字 | 似乎与rnd字段相同 | -| timestamp | number | 礼物发送时的时间戳 | | +| tag_image | str | 待调查 | | +| tid | num | 礼物发送时的时间戳,以及后面9位未知数字 | 似乎与rnd字段相同 | +| timestamp | num | 礼物发送时的时间戳 | | | top_list | | 待调查 | | -| total_coin | number | 待调查 | | -| uid | number | 礼物投喂者的UID | | -| uname | string | 礼物投喂者的名称 | | +| total_coin | num | 待调查 | | +| uid | num | 礼物投喂者的UID | | +| uname | str | 礼物投喂者的名称 | | batch_combo_send字段 | 字段 | 类型 | 内容 | 备注 | | ---- | -------- | ------ | --------- | -| action | string | 礼物操作,一般为"投喂" | | -| batch_combo_id | string | 待调查 | | -| batch_combo_num | number | 待调查 | | +| action | str | 礼物操作,一般为"投喂" | | +| batch_combo_id | str | 待调查 | | +| batch_combo_num | num | 待调查 | | | blind_gift | | 待调查 | | -| gift_id | number | 待调查 | | -| gift_name | string | 投喂的礼物名称 | 待调查 | -| gift_num | number | 投喂礼物数量 | 待调查 | +| gift_id | num | 待调查 | | +| gift_name | str | 投喂的礼物名称 | 待调查 | +| gift_num | num | 投喂礼物数量 | 待调查 | | send_master | | 待调查 | | -| uid | number | 礼物投喂者的UID | | -| uname | string | 礼物投喂者的名称 | | +| uid | num | 礼物投喂者的UID | | +| uname | str | 礼物投喂者的名称 | | medal_info字段 | 字段 | 类型 | 内容 | 备注 | | ---- | -------- | ------ | --------- | -| anchor_roomid | number | 待调查 | | -| anchor_uname | string | 待调查 | | -| guard_level | number | 待调查 | | -| icon_id | number | 待调查 | | -| is_lighted | number | 待调查 | | -| medal_color | number | 礼物投喂者的粉丝奖牌颜色 | 十六进制颜色值转为了十进制表示 | -| medal_border_color | number | 礼物投喂者的粉丝奖牌边框颜色 | 十六进制颜色值的十进制表示 | -| medal_color_end | number | 待调查 | | -| medal_color_start | number | 待调查 | | -| medal_level | number | 礼物投喂者的粉丝奖牌等级 | | -| medal_name | string | 礼物投喂者的粉丝奖牌名称 | | -| special | string | 待调查 | | -| target_id | number | 待调查 | | +| anchor_roomid | num | 待调查 | | +| anchor_uname | str | 待调查 | | +| guard_level | num | 待调查 | | +| icon_id | num | 待调查 | | +| is_lighted | num | 待调查 | | +| medal_color | num | 礼物投喂者的粉丝奖牌颜色 | 十六进制颜色值转为了十进制表示 | +| medal_border_color | num | 礼物投喂者的粉丝奖牌边框颜色 | 十六进制颜色值的十进制表示 | +| medal_color_end | num | 待调查 | | +| medal_color_start | num | 待调查 | | +| medal_level | num | 礼物投喂者的粉丝奖牌等级 | | +| medal_name | str | 礼物投喂者的粉丝奖牌名称 | | +| special | str | 待调查 | | +| target_id | num | 待调查 | | receive_user_info字段 | 字段 | 类型 | 内容 | 备注 | | ---- | -------- | ------ | --------- | -| uid | number | 礼物接收者的UID | 一般为主播的UID | -| uname | string | 礼物接收者的名称 | 一般为主播的名称 | +| uid | num | 礼物接收者的UID | 一般为主播的UID | +| uname | str | 礼物接收者的名称 | 一般为主播的名称 |
查看消息示例: @@ -648,13 +754,135 @@ receive_user_info字段 ```
+#### 礼物星球点亮 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "GIFT_STAR_PROCESS" | 主播的礼物星球其一点亮之后,则内容为"GIFT_STAR_PROCESS" | +| data | obj | 消息文本 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| status | num | 待调查 | | +| tip | str | 点亮礼物星球的消息文本 | | + +
+查看消息示例: + +```json +{ + "cmd": "GIFT_STAR_PROCESS", + "data": { + "status": 1, + "tip": "情书已点亮" + } +} +``` +
+ +#### 礼物连击 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "COMBO_SEND" | | +| data | obj | 礼物投喂者、礼物信息等 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| action | str | 礼物操作,一般为"投喂" | | +| batch_combo_id | str | 待调查 | | +| batch_combo_num | num | 连击礼物数量 | | +| combo_id | str | 待调查 | | +| combo_num | str | 连击礼物数量 | | +| combo_total_coin | num | 待调查 | | +| dmscore | num | 待调查 | | +| gift_id | num | 待调查 | | +| gift_name | str | 连击礼物的名称 | | +| gift_num | num | 0 | | +| is_join_receiver | bool | 待调查 | | +| is_naming | bool | 待调查 | | +| is_show | num | 待调查 | | +| medal_info | obj | 礼物投喂者的粉丝勋章信息 | | +| name_color | str | 待调查 | | +| r_uname | str | 主播的名称 | | +| receive_user_info | obj | 主播的UID和名称 | | +| ruid | num | 主播的UID | | +| send_master | | 待调查 | | +| total_num | num | 连击礼物数量 | | +| uid | num | 礼物投喂者的UID | | +| uname | str | 礼物投喂者的名称 | | + +receive_user_info字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| uid | number | 礼物接收者的UID | 一般为主播的UID | +| uname | string | 礼物接收者的名称 | 一般为主播的名称 | + +
+查看消息示例: + +```json +{ + "cmd": "COMBO_SEND", + "data": { + "action": "投喂", + "batch_combo_id": "batch:gift:combo_id:3493090830584635:29857468:31036:1673774515.6190", + "batch_combo_num": 2, + "combo_id": "gift:combo_id:3493090830584635:29857468:31036:1673774515.6180", + "combo_num": 2, + "combo_total_coin": 200, + "dmscore": 112, + "gift_id": 31036, + "gift_name": "小花花", + "gift_num": 0, + "is_join_receiver": false, + "is_naming": false, + "is_show": 1, + "medal_info": { + "anchor_roomid": 0, + "anchor_uname": "", + "guard_level": 0, + "icon_id": 0, + "is_lighted": 1, + "medal_color": 6067854, + "medal_color_border": 6067854, + "medal_color_end": 6067854, + "medal_color_start": 6067854, + "medal_level": 3, + "medal_name": "爱珞珞", + "special": "", + "target_id": 3493076559465366 + }, + "name_color": "", + "r_uname": "露萌不要雨草", + "receive_user_info": { + "uid": 29857468, + "uname": "露萌不要雨草" + }, + "ruid": 29857468, + "send_master": null, + "total_num": 2, + "uid": 3493090830584635, + "uname": "DOC-Neo" + } +} +``` +
+ + #### 通知消息 @@ -789,15 +1017,62 @@ data字段 #### 主播准备中 +json格式 +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "PREPARING" | | +| round | num | 轮播状态:
1正在轮播
0未轮播 | | +| roomid | num | 直播间ID | 未知是真实ID还是短号 | | + +
+查看消息示例: + +```json +{ + "cmd": "PREPARING", + "round": 1, + "roomid": "8618057" +} +``` + +
#### 直播开始 +#### 主播信息更新 -#### 直播状态更新 +json格式 +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "ROOM_REAL_TIME_MESSAGE_UPDATE" | | +| data | obj | 房间ID、主播粉丝数等 | | +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| roomid | num | 直播间ID | 未知是真实ID还是短号 | | +| fans | num | 主播当前粉丝数 | | +| red_notice | num | 待调查 | | +| fans_club | num | 主播粉丝团人数 | | + +
+查看消息示例: + +```json +{ + "cmd": "ROOM_REAL_TIME_MESSAGE_UPDATE", + "data": { + "roomid": 8618057, + "fans": 136, + "red_notice": -1, + "fans_club": 8 + } +} +
#### 直播间高能榜 @@ -821,7 +1096,7 @@ list数组中的对象 | ---- | ---- | ------ | --------- | | uid | num | 用户UID | | | face | str | 用户头像URL | | -| score | num | 该用户的贡献值 | | +| score | str | 该用户的贡献值 | | | uname | str | 用户名称 | | | rank | num | 该用户在高能榜中的排名 | | | guard_level | num | 待调查 | | @@ -897,6 +1172,50 @@ data字段
+#### 用户到达直播间高能榜前三名的消息 + + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "ONLINE_RANK_TOP3" | | +| data | obj | 消息内容、高能榜排名等 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| dmscore | num | 待调查 | | +| list | array | 消息内容和高能榜排名 | | + +list数组中的对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| msg | str | 消息内容 | | +| rank | num | 该用户的高能榜排名 | | + +
+查看消息示例: + +```json +{ + "cmd": "ONLINE_RANK_TOP3", + "data": { + "dmscore": 112, + "list": [ + { + "msg": "恭喜 <%你干嘛哈哈哎哟%> 成为高能用户", + "rank": 1 + } + ] + } +} +``` + +
+ #### 直播间用户点赞 json格式 @@ -993,11 +1312,273 @@ data字段 +#### 直播间发红包弹幕 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "POPULARITY_RED_POCKET_START" | | +| data | obj | 送红包的老板的信息、里面的礼物信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| lot_id | num | 发送的红包的ID | | +| sender_uid | num | 发送者的UID | | +| sender_name | str | 发送者的名称 | | +| sender_face | str | 发送者的头像的URL | | +| join_requirement | num | 待调查 | | +| danmu | str | 用户参与红包时自动发送的弹幕内容 | | +| current_time | num | 服务器发送数据包的Unix时间戳 | | +| start_time | num | 可以开始抢红包的Unix时间戳 | | +| end_time | num | 抢红包的结束时间Unix时间戳 | | +| last_time | num | 红包的持续时间(秒) | start_time - end_time | +| remove_time | num | 待调查 | | +| replace_time | num | 待调查 | | +| lot_status | num | 待调查 | | +| h5_url | str | 红包页面的URL | | +| user_status | num | 用户参与状态,但是不知道是哪个用户 | 1已参与
2未参与 | +| awards | array | 红包内包含的礼物的信息 | | +| lot_config_id | num | 待调查 | | +| total_price | num | 红包总价格 | | +| wait_num | num | 待调查 | | + +awards数组中的对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| gift_id | num | 礼物ID | | +| gift_name | str | 礼物名称 | | +| gift_pic | str | 礼物图标URL | | +| num | num | 该礼物的数量 | | + + +
+查看消息示例: + +```json +{ + "cmd": "POPULARITY_RED_POCKET_START", + "data": { + "lot_id": 8445764, + "sender_uid": 38554435, + "sender_name": "我的0019", + "sender_face": "https://i1.hdslb.com/bfs/face/282c3055de94c74d69094fad91a56f9ed73a270a.jpg", + "join_requirement": 1, + "danmu": "点点红包,关注主播抽礼物~", + "current_time": 1673684632, + "start_time": 1673684631, + "end_time": 1673684811, + "last_time": 180, + "remove_time": 1673684826, + "replace_time": 1673684821, + "lot_status": 1, + "h5_url": "https://live.bilibili.com/p/html/live-app-red-envelope/popularity.html?is_live_half_webview=1&hybrid_half_ui=1,5,100p,100p,000000,0,50,0,0,1;2,5,100p,100p,000000,0,50,0,0,1;3,5,100p,100p,000000,0,50,0,0,1;4,5,100p,100p,000000,0,50,0,0,1;5,5,100p,100p,000000,0,50,0,0,1;6,5,100p,100p,000000,0,50,0,0,1;7,5,100p,100p,000000,0,50,0,0,1;8,5,100p,100p,000000,0,50,0,0,1\&hybrid_rotate_d=1&hybrid_biz=popularityRedPacket&lotteryId=8445764", + "user_status": 2, + "awards": [ + { + "gift_id": 31212, + "gift_name": "打call", + "gift_pic": "https://s1.hdslb.com/bfs/live/461be640f60788c1d159ec8d6c5d5cf1ef3d1830.png", + "num": 2 + }, + { + "gift_id": 31214, + "gift_name": "牛哇", + "gift_pic": "https://s1.hdslb.com/bfs/live/91ac8e35dd93a7196325f1e2052356e71d135afb.png", + "num": 3 + }, + { + "gift_id": 31216, + "gift_name": "i了i了", + "gift_pic": "https://s1.hdslb.com/bfs/live/1157a445487b39c0b7368d91b22290c60fa665b2.png", + "num": 3 + } + ], + "lot_config_id": 3, + "total_price": 1600, + "wait_num": 0 + } +} +``` + +
+ + +#### 直播间红包 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "POPULARITY_RED_POCKET_NEW" | 与“直播间发红包弹幕”不同
那个是发红包的弹幕信息
这个则和“送礼”的信息相似,但也有前者的一些字段 | +| data | obj | 发送者信息和红包(礼物)信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| lot_id | num | 发送的红包的ID | | +| start_time | num | 开始抢红包的Unix时间戳 | | +| current_time | num | 服务器发送数据包的Unix时间戳 | | +| wait_num | num | 待调查 | | +| uname | str | 发送者的名称 | | +| uid | num | 发送者的UID | | +| action | str | 礼物操作 | | +| num | num | 礼物数量 | | +| gift_name | str | "红包" | | +| gift_id | num | 礼物ID | | +| price | num | 待调查 | | +| name_color | str | 发送者的名称的颜色 | | +| medal_info | obj | 发送者的粉丝勋章信息 | | + + +
+查看消息示例: + +```json +{ + "cmd": "POPULARITY_RED_POCKET_NEW", + "data": { + "lot_id": 8445764, + "start_time": 1673684631, + "current_time": 1673684631, + "wait_num": 0, + "uname": "我的0019", + "uid": 38554435, + "action": "送出", + "num": 1, + "gift_name": "红包", + "gift_id": 13000, + "price": 20, + "name_color": "", + "medal_info": { + "target_id": 400963649, + "special": "", + "icon_id": 0, + "anchor_uname": "", + "anchor_roomid": 0, + "medal_level": 21, + "medal_name": "憨憨酥", + "medal_color": 1725515, + "medal_color_start": 12632256, + "medal_color_end": 12632256, + "medal_color_border": 12632256, + "is_lighted": 0, + "guard_level": 0 + } + } +} +``` +
+ + +#### 直播间抢到红包的用户 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "POPULARITY_RED_POCKET_WINNER_LIST" | | +| data | obj | 抢到红包的用户信息、红包内的礼物信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| lot_id | num | 该红包的ID | | +| total_num | num | 该红包内所有礼物的总数 | | +| winner_info | array | 抢到红包的用户的信息
抢到的礼物ID等 | | +| awards | obj | 该红包内的礼物信息 | | +| version | num | 待调查 | | + +winner_info数组中的数组 + +| 索引 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| 0 | num | 该抢到红包的用户的UID | | +| 1 | str | 该抢到红包的用户的名称 | | +| 2 | num | 待调查 | | +| 3 | num | 该用户抢到的礼物的ID | | + +awards字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| 礼物ID | obj | 礼物信息 | | +| ... | obj | | | + +礼物ID 对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| award_type | num | 待调查 | | +| award_name | str | 该礼物的名称 | | +| award_pic | str | 该礼物的图标URL | | +| award_big_pic | str | 该礼物的高分辨率图标URL | | +| award_price | num | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "POPULARITY_RED_POCKET_WINNER_LIST", + "data": { + "lot_id": 8445764, + "total_num": 8, + "winner_info": [ + [ + 38554435, + "我的0019", + 4581509, + 31212 + ], + [ + 516174930, + "云来海遛鸟大爷", + 4606389, + 31212 + ] + ], + "awards": { + "31212": { + "award_type": 1, + "award_name": "打call", + "award_pic": "https://s1.hdslb.com/bfs/live/461be640f60788c1d159ec8d6c5d5cf1ef3d1830.png", + "award_big_pic": "https://i0.hdslb.com/bfs/live/9e6521c57f24c7149c054d265818d4b82059f2ef.png", + "award_price": 500 + }, + "31214": { + "award_type": 1, + "award_name": "牛哇", + "award_pic": "https://s1.hdslb.com/bfs/live/91ac8e35dd93a7196325f1e2052356e71d135afb.png", + "award_big_pic": "https://i0.hdslb.com/bfs/live/3b74c117b4f265edcea261bc5608a58d3a7c300a.png", + "award_price": 100 + }, + "31216": { + "award_type": 1, + "award_name": "i了i了", + "award_pic": "https://s1.hdslb.com/bfs/live/1157a445487b39c0b7368d91b22290c60fa665b2.png", + "award_big_pic": "https://i0.hdslb.com/bfs/live/cfb9c3d9bdd2c25c95b7d859ebaa590ca9362adb.png", + "award_price": 100 + } + }, + "version": 1 + } +} +``` +
+ + + #### 直播间看过人数 -该数据包的正文中,前19位的信息未知。 - -前19位信息示例: +该数据包的正文中,前19字节的信息未知。 + +前19字节信息示例: ``` 00000001: 8b38 8000 0000 7200 1000 0000 0000 0500 .8....r......... 00000002: 0000 00 ... @@ -1117,7 +1698,7 @@ data字段 -#### 直播间在所属分区排名改变 +#### 直播间在所属分区的排名改变 json格式 @@ -1133,7 +1714,7 @@ data字段 | conf_id | num | 待调查 | | | rank_name | str | 排行榜名称 | | | uid | num | 主播的UID | | -| rank | num | 直播间在分区的排名 | | +| rank | num | 直播间在分区的排名 | 若没有上榜则为0 | | icon_url_blue | str | 蓝色排名图标URL | | | icon_url_pink | str | 粉色排名图标URL | | | icon_url_grey | str | 灰色排名图标URL | | @@ -1303,6 +1884,175 @@ danmaku_style字段 + +#### 直播间信息更改 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "ROOM_CHANGE" | 例如直播间标题更改、直播间分区更改 | +| data | obj | | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| title | str | 直播间标题 | | +| area_id | num | 当前直播间所属分区的ID | | +| parent_area_id | num | 待调查 | | +| area_name | str | 当前直播间所属分区的名称 | | +| parent_area_name | str | 待调查 | | +| live_key | str | 待调查 | | +| sub_session_key | str | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "ROOM_CHANGE", + "data": { + "title": "开始白给CS", + "area_id": 371, + "parent_area_id": 9, + "area_name": "虚拟主播", + "parent_area_name": "虚拟主播", + "live_key": "320830629635915849", + "sub_session_key": "320830629635915849sub_time:1673690546" + } +} +``` +
+ + +#### 醒目留言按钮 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "SUPER_CHAT_ENTRANCE" | 不知道有什么意义 | +| data | obj | 醒目留言按钮的信息 | | +| roomid | num | 直播间ID | 未知是短号还是真实ID | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| status | num | 待调查 | | +| jump_url | str | 按下“醒目留言”按钮后弹出小窗的页面URL | | +| icon | str | “醒目留言”按钮图标的URL | | +| broadcast_type | num | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "SUPER_CHAT_ENTRANCE", + "data": { + "status": 1, + "jump_url": "https://live.bilibili.com/p/html/live-app-superchat2/index.html?is_live_half_webview=1&hybrid_half_ui=1,3,100p,70p,ffffff,0,30,100;2,2,375,100p,ffffff,0,30,100;3,3,100p,70p,ffffff,0,30,100;4,2,375,100p,ffffff,0,30,100;5,3,100p,60p,ffffff,0,30,100;6,3,100p,60p,ffffff,0,30,100;7,3,100p,60p,ffffff,0,30,100", + "icon": "https://i0.hdslb.com/bfs/live/0a9ebd72c76e9cbede9547386dd453475d4af6fe.png", + "broadcast_type": 1 + }, + "roomid": "8618057" +} +``` +
+ +#### 顶部横幅 + +网页端在直播间标题下面的横幅 + +例如“限时任务”等 + +json格式 + + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "WIDGET_BANNER" | | +| data | obj | 横幅信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| timestamp | num | 服务器发送数据包时的Unix时间戳 | | +| widget_list | obj | 横幅信息 | 待调查 | + +widget_list字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| 横幅ID | obj | 横幅信息 | | +| ... | obj | | | + +横幅ID 字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| id | num | 横幅ID | | +| title | str | 待调查 | | +| cover | str | 待调查 | | +| web_cover | str | 待调查 | | +| tip_text | str | 待调查 | | +| tip_text_color | str | 待调查 | | +| tip_bottom_color | str | 待调查 | | +| jump_url | str | 点击横幅后出现小窗的页面的URL | | +| url | str | 待调查 | | +| stay_time | num | 待调查 | | +| site | num | 待调查 | | +| platform_in | array | 待调查 | | +| type | num | 待调查 | | +| band_id | num | 待调查 | | +| sub_key | str | 待调查 | | +| sub_data | str | 横幅数据 | | +| is_add | bool | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "WIDGET_BANNER", + "data": { + "timestamp": 1673684868, + "widget_list": { + "308": { + "id": 308, + "title": "一月限时任务", + "cover": "", + "web_cover": "", + "tip_text": "限时任务", + "tip_text_color": "", + "tip_bottom_color": "", + "jump_url": "https://live.bilibili.com/activity/live-activity-battle/index.html?app_name=time_limited_task_jan_2023&is_live_half_webview=1&hybrid_rotate_d=1&hybrid_half_ui=1,3,100p,70p,0,0,0,0,12,0;2,2,375,100p,0,0,0,0,12,0;3,3,100p,70p,0,0,0,0,12,0;4,2,375,100p,0,0,0,0,12,0;5,3,100p,70p,0,0,0,0,12,0;6,3,100p,70p,0,0,0,0,12,0;7,3,100p,70p,0,0,0,0,12,0;8,3,100p,70p,0,0,0,0,12,0&room_id=8618057&uid=29857468#/", + "url": "", + "stay_time": 5, + "site": 1, + "platform_in": [ + "live", + "blink", + "live_link", + "web", + "pc_link" + ], + "type": 1, + "band_id": 101558, + "sub_key": "", + "sub_data": "%7B%22task_status%22%3A0%2C%22current_val%22%3A10%2C%22target_val%22%3A1200%2C%22timeout%22%3A1673687024%2C%22reward_price%22%3A8%2C%22reward_type%22%3A1%7D", + "is_add": true + } + } + } +} +``` + +
+ #### 下播的直播间 json格式 @@ -1321,9 +2071,10 @@ data字段 room_id_list数组中的数字 -| 内容 | 备注 | -| ---- | ---- | -| 下播的直播间ID | 未知是真实ID还是短号 | +| 类型 | 内容 | 备注 | +| --- | ---- | ---- | +| num | 下播的直播间ID | 未知是真实ID还是短号 | +| num | ... | |
@@ -1534,7 +2285,52 @@ room_id_list数组中的数字 #### 未知消息 -`ROOM_REAL_TIME_MESSAGE_UPDATE` +`PLAY_TOGETHER` +
+查看消息示例: +示例1: +```json +{ + "cmd": "PLAY_TOGETHER", + "data": { + "ruid": 29857468, + "roomid": 8618057, + "action": "switch_off", + "uid": 0, + "timestamp": 1673690546, + "message": "", + "message_type": 0, + "jump_url": "", + "web_url": "", + "apply_number": 0, + "refresh_tool": false, + "cur_fleet_num": 0, + "max_fleet_num": 0 + } +} +``` +示例2 +```json +{ + "cmd": "PLAY_TOGETHER", + "data": { + "ruid": 29857468, + "roomid": 8618057, + "action": "switch_off", + "uid": 0, + "timestamp": 1673690549, + "message": "系统提示:主播已切换分区", + "message_type": 3, + "jump_url": "", + "web_url": "", + "apply_number": 0, + "refresh_tool": true, + "cur_fleet_num": 0, + "max_fleet_num": 0 + } +} +``` +