XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

获取直播间信息流认证秘钥 (#242)

* Update message_stream.md * Update message_stream.md Update message_stream.md * 修改【直播间信息流】 Co-authored-by: 社会易姐QwQ <45892418+SocialSisterYi@users.noreply.github.com>

3e6f558
Bryan不可思议 <programripper@foxmail.com>
提交于

代码差异

1 个文件 +126 -30
Modified live/message_stream.md +126 -30
@@ -1,8 +1,106 @@
1 1 # 直播间信息流
2 2
3 - [获取信息流认证秘钥](#获取信息流认证秘钥)
4
5 ---
6
7 ## 获取信息流认证秘钥
8
9 > http://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo
10
11 *请求方式:GET*
12
13 **url参数:**
14
15 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
16 | ------ | ---- | ------------ | ------ | ---- |
17 | id | num | 直播间真实id | 必要 | |
18
19 **json回复:**
20
21 根对象:
22
23 | 字段 | 类型 | 内容 | 备注 |
24 | ------- | ---- | -------- | ------------------------------------------------------------ |
25 | code | num | 返回值 | 0:成功<br />65530:token错误(登录错误)<br />1:错误<br />60009:分区不存在<br />**(其他错误码有待补充)** |
26 | message | str | 错误信息 | 默认为空 |
27 | ttl | num | 1 | |
28 | data | obj | 信息本体 | |
29
30 `data`对象:
31
32 | 字段 | 类型 | 内容 | 备注 |
33 | ------------------ | ----- | ------------------- | ---- |
34 | group | str | live | |
35 | business_id | num | 0 | |
36 | refresh_row_factor | num | 0.125 | |
37 | refresh_rate | num | 100 | |
38 | max_delay | num | 5000 | |
39 | token | str | 认证秘钥 | |
40 | host_list | array | 信息流服务器节点列表 | |
41
42 `host_list`数组中的对象:
43
44 | 字段 | 类型 | 内容 | 备注 |
45 | -------- | ---- | ---------- | ---- |
46 | host | str | 服务器域名 | |
47 | port | num | tcp端口 | |
48 | wss_port | num | wss端口 | |
49 | ws_port | num | ws端口 | |
50
51 **示例:**
52
53 获得直播间`22824550`的信息流认证秘钥
54
55 ```shell
56 curl -G 'http://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo' \
57 --data-urlencode 'id=22824550'
58 ```
59
60 <details>
61 <summary>查看响应示例:</summary>
62
63 ```json
64 {
65 "code": 0,
66 "message": "0",
67 "ttl": 1,
68 "data": {
69 "group": "live",
70 "business_id": 0,
71 "refresh_row_factor": 0.125,
72 "refresh_rate": 100,
73 "max_delay": 5000,
74 "token": "Eac3Lm1JADzny-YnB5MW0MQcd23rw_mgMFZAnu40I-J2ecP2Qj6CH-UqjdfvwiqVEZcEksG1ONSOi1dGzm0wM4FxqA-ZYXtcQyHXPXqxmrx3AmDx8Z5-d4TuKQkaU0zxevH1B-gnu7g8TDtIE4lns4BYlw==",
75 "host_list": [
76 {
77 "host": "tx-sh-live-comet-02.chat.bilibili.com",
78 "port": 2243,
79 "wss_port": 443,
80 "ws_port": 2244
81 },
82 {
83 "host": "tx-bj-live-comet-02.chat.bilibili.com",
84 "port": 2243,
85 "wss_port": 443,
86 "ws_port": 2244
87 },
88 {
89 "host": "broadcastlv.chat.bilibili.com",
90 "port": 2243,
91 "wss_port": 443,
92 "ws_port": 2244
93 }
94 ]
95 }
96 }
97 ```
98
99 </details>
100
3 101 ## 数据包格式
4 102
5 数据包为websocket,格式为头部数据+正文数据
103 数据包为MQ(消息队列)使用websocket或tcp作为通道,具体格式为头部数据+正文数据
6 104
7 105 操作流程:
8 106
@@ -16,7 +114,7 @@
16 114 | 4 | 2 | uint16 | 头部大小(一般为0x0010,16字节) |
17 115 | 6 | 2 | uint16 | 协议版本:<br />0普通包正文不使用压缩 <br />1心跳及认证包正文不使用压缩<br />2普通包正文使用zlib压缩<br/>3普通包正文使用brotli压缩,解压为一个带头部的协议0普通包 |
18 116 | 8 | 4 | uint32 | 操作码(封包类型) |
19 | 12 | 4 | uint32 | sequence,可以取常数1 |
117 | 12 | 4 | uint32 | sequence,每次发包时向上递增 |
20 118
21 119 操作码:
22 120
@@ -38,34 +136,34 @@
38 136
39 137 json格式
40 138
41 | 字段 | 类型 | 内容 | 备注 |
42 | --------- | ---- | ------------ | -------------- |
43 | uid | num | 用户mid | 不可为0 |
44 | roomid | num | 加入房间的id | |
45 | protover | num | 协议版本 | 现在是2 |
46 | platform | str | 平台标识 | 可为"web" |
47 | clientver | str | 客户端版本 | 现在是"1.10.3" |
48 | type | num | 必须为2 | |
49 | key | str | 认证秘钥 | |
139 | 字段 | 类型 | 内容 | 必要性 | 备注 |
140 | -------- | ---- | ------------ | ------ | ------------ |
141 | uid | num | 用户mid | 非必要 | |
142 | roomid | num | 加入房间的id | 必要 | 直播间真实id |
143 | protover | num | 协议版本 | 非必要 | 3 |
144 | platform | str | 平台标识 | 非必要 | "web" |
145 | type | num | 2 | 非必要 | |
146 | key | str | 认证秘钥 | 非必要 | |
50 147
51 148 示例:
52 149
53 150 ```
54 00000000 00 00 00 f0 00 10 00 01 00 00 00 07 00 00 00 01 |................|
55 00000010 7b 22 75 69 64 22 3a 32 39 33 37 39 33 34 33 35 |{"uid":293793435|
56 00000020 2c 22 72 6f 6f 6d 69 64 22 3a 32 31 36 38 36 32 |,"roomid":216862|
57 00000030 33 37 2c 22 70 72 6f 74 6f 76 65 72 22 3a 32 2c |37,"protover":2,|
58 00000040 22 70 6c 61 74 66 6f 72 6d 22 3a 22 77 65 62 22 |"platform":"web"|
59 00000050 2c 22 63 6c 69 65 6e 74 76 65 72 22 3a 22 31 2e |,"clientver":"1.|
60 00000060 31 30 2e 33 22 2c 22 74 79 70 65 22 3a 32 2c 22 |10.3","type":2,"|
61 00000070 6b 65 79 22 3a 22 43 6f 4b 68 5f 61 49 46 42 6c |key":"CoKh_aIFBl|
62 00000080 51 32 4c 57 77 64 79 4e 43 6b 2d 69 5f 42 76 72 |Q2LWwdyNCk-i_Bvr|
63 00000090 64 72 72 55 4d 32 78 57 6c 74 62 35 77 6b 54 50 |drrUM2xWltb5wkTP|
64 000000a0 4e 72 44 55 49 2d 73 46 32 41 56 56 4f 44 78 43 |NrDUI-sF2AVVODxC|
65 000000b0 52 42 39 69 64 76 74 34 46 32 4d 50 31 45 4a 6c |RB9idvt4F2MP1EJl|
66 000000c0 4d 68 49 57 6b 31 5a 69 73 67 6e 32 67 67 66 6c |MhIWk1Zisgn2ggfl|
67 000000d0 68 72 65 6e 4f 4b 65 39 7a 56 65 6d 78 35 7a 5f |hrenOKe9zVemx5z_|
68 000000e0 5a 4d 43 61 55 77 4c 31 65 70 6d 7a 5a 53 22 7d |ZMCaUwL1epmzZS"}|
151 00000000: 0000 00ff 0010 0001 0000 0007 0000 0001 ................
152 00000001: 7b22 7569 6422 3a31 3630 3134 3836 3234 {"uid":160148624
153 00000002: 2c22 726f 6f6d 6964 223a 3232 3630 3831 ,"roomid":226081
154 00000003: 3132 2c22 7072 6f74 6f76 6572 223a 332c 12,"protover":3,
155 00000004: 2270 6c61 7466 6f72 6d22 3a22 7765 6222 "platform":"web"
156 00000005: 2c22 7479 7065 223a 322c 226b 6579 223a ,"type":2,"key":
157 00000006: 2230 7670 5448 5737 7757 556e 6c6f 5270 "0vpTHW7wWUnloRp
158 00000007: 5251 6b47 764e 626e 7776 7364 6d2d 7159 RQkGvNbnwvsdm-qY
159 00000008: 4777 4243 5875 2d59 5164 6e57 7653 5547 GwBCXu-YQdnWvSUG
160 00000009: 7373 4139 7962 4b68 7932 6a78 3952 6f63 ssA9ybKhy2jx9Roc
161 0000000a: 4150 4651 6d54 4f6b 5277 6b4b 687a 4479 APFQmTOkRwkKhzDy
162 0000000b: 4839 5054 756f 5468 6834 4630 7562 584c H9PTuoThh4F0ubXL
163 0000000c: 4964 6e69 3734 5539 304b 4242 6972 3248 Idni74U90KBBir2H
164 0000000d: 7451 3941 3777 674b 3438 4b7a 495f 5a5a tQ9A7wgK48KzI_ZZ
165 0000000e: 3838 7557 4e59 6652 4f48 6964 4e6a 3732 88uWNYfROHidNj72
166 0000000f: 7061 796e 3479 3071 4268 513d 3d22 7d payn4y0qBhQ=="}
69 167 ```
70 168
71 169
@@ -99,9 +197,7 @@ json格式
99 197
100 198 正文:
101 199
102 特定字符
103
104 [object Object]
200 可以为空或任意字符
105 201
106 202 示例:
107 203
@@ -127,7 +223,7 @@ uint32整数,代表房间当前的人气值
127 223 00000010 00 00 14 83 |....|
128 224 ```
129 225
130 可见房间内人气值为5251人
226 可见房间内人气值为5251
131 227
132 228 ### 普通包
133 229