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
+ }
+}
+```
+