Merge branch 'master' into master
This commit is contained in:
636
live/info.md
636
live/info.md
@@ -1,636 +0,0 @@
|
||||
# 直播间基本信息
|
||||
|
||||
- [直播间基本信息](#直播间基本信息)
|
||||
- [获取直播间信息](#获取直播间信息)
|
||||
- [获取用户对应的直播间状态](#获取用户对应的直播间状态)
|
||||
- [获取房间页初始化信息](#获取房间页初始化信息)
|
||||
- [获取主播信息](#获取主播信息)
|
||||
- [批量查询直播间状态](#批量查询直播间状态)
|
||||
|
||||
---
|
||||
|
||||
## 获取直播间信息
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Room/get_info
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
**URL参数:**
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ----- | --------- |
|
||||
| room_id| num | 直播间号 | 必要 | 可以为短号 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />1:不存在 |
|
||||
| message | str | 错误信息 | |
|
||||
| msg | str | 错误信息 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------ | ---- | -------- | --------------------------- |
|
||||
| uid | num | 主播mid | |
|
||||
| room_id | num | 直播间长号| |
|
||||
| short_id | num | 直播间短号| 为0是无短号 |
|
||||
| attention | num | 关注数量 | |
|
||||
| online | num | 观看人数 | |
|
||||
| is_portrait | bool | 是否竖屏 | |
|
||||
| description | str | 描述 | |
|
||||
| live_status | num | 直播状态 | 0:未开播<br />1:直播中<br />2:轮播中 |
|
||||
| area_id | num | 分区id | |
|
||||
| area_name | str | 分区名称 | |
|
||||
| parent_area_id | num | 父分区id | |
|
||||
| parent_area_name | str | 父分区名称 | |
|
||||
| old_area_id | num | 旧版分区id | |
|
||||
| background | str | 背景图片链接| |
|
||||
| title | str | 标题 | |
|
||||
| user_cover | str | 封面 | |
|
||||
| keyframe | str | 关键帧 | 用于网页端悬浮展示 |
|
||||
| is_strict_room | bool | 未知 | 未知 |
|
||||
| live_time | str | 直播开始时间 | YYYY-MM-DD HH:mm:ss |
|
||||
| tags | str | 标签 | ','分隔 |
|
||||
| is_anchor | num | 未知 | 未知 |
|
||||
| room_silent_type | str | 禁言状态 | |
|
||||
| room_silent_level | num | 禁言等级 | |
|
||||
| room_silent_second | num | 禁言时间 | 单位是秒 |
|
||||
| pardants | str | 未知 | 未知 |
|
||||
| area_pardants | str | 未知 | 未知 |
|
||||
| hot_words | list(str) | 热词 | |
|
||||
| hot_words_status | num | 热词状态 | |
|
||||
| verify | str | 未知 | 未知 |
|
||||
| new_pendants | obj | 头像框\大v | |
|
||||
| up_session | str | 未知 | |
|
||||
| pk_status | num | pk状态 | |
|
||||
| pk_id | num | pk id | |
|
||||
| battle_id | num | 未知 | |
|
||||
|
||||
`new_pendants`对象:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | -------- | --------------------------- |
|
||||
| frame | obj | 头像框 | |
|
||||
| mobile_frame | obj | 同上 | 手机版, 结构一致, 可能null |
|
||||
| badge | obj | 大v | |
|
||||
| mobile_badge | obj | 同上 | 手机版, 结构一致, 可能null |
|
||||
|
||||
`frame`对象:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | -------- | --------------------------- |
|
||||
| name | str | 名称 ||
|
||||
| value | str | 值 ||
|
||||
| position | num | 位置 ||
|
||||
| desc | str | 描述 ||
|
||||
| area | num | 分区 ||
|
||||
| area_old | num | 旧分区 ||
|
||||
| bg_color | str | 背景色 ||
|
||||
| bg_pic | str | 背景图 ||
|
||||
| use_old_area | bool | 是否旧分区号 ||
|
||||
|
||||
`badge`对象:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | -------- | --------------------------- |
|
||||
| name | str | 类型 | v_person: 个人认证(黄) <br> v_company: 企业认证(蓝) |
|
||||
| position | num | 位置 ||
|
||||
| value | str | 值 ||
|
||||
| desc | str | 描述 ||
|
||||
|
||||
**示例:**
|
||||
|
||||
查询直播间`room_id=1`信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.live.bilibili.com/room/v1/Room/get_info' \
|
||||
--data-urlencode 'room_id=1'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "ok",
|
||||
"message": "ok",
|
||||
"data": {
|
||||
"uid": 9617619,
|
||||
"room_id": 5440,
|
||||
"short_id": 1,
|
||||
"attention": 11919499,
|
||||
"online": 0,
|
||||
"is_portrait": false,
|
||||
"description": "欢迎加入bilibili《快乐运动研究社》,和B站UP主们一起探讨有关运动的经历感受,解决身体和情绪的“疑难杂症”,寻找适合自己的运动,一起跟练!本期我们一起探讨:运动健身能缓解社交恐惧吗?",
|
||||
"live_status": 2,
|
||||
"area_id": 145,
|
||||
"parent_area_id": 1,
|
||||
"parent_area_name": "娱乐",
|
||||
"old_area_id": 6,
|
||||
"background": "",
|
||||
"title": "快乐运动研究社",
|
||||
"user_cover": "https://i0.hdslb.com/bfs/live/new_room_cover/96943b8d106a777a34cf796421bb4254163b30e1.jpg",
|
||||
"keyframe": "https://i0.hdslb.com/bfs/live-key-frame/keyframe08121926000000005440np0q7a.jpg",
|
||||
"is_strict_room": false,
|
||||
"live_time": "0000-00-00 00:00:00",
|
||||
"tags": "",
|
||||
"is_anchor": 0,
|
||||
"room_silent_type": "",
|
||||
"room_silent_level": 1,
|
||||
"room_silent_second": 0,
|
||||
"area_name": "视频聊天",
|
||||
"pendants": "",
|
||||
"area_pendants": "",
|
||||
"hot_words": [
|
||||
"2333333",
|
||||
"喂,妖妖零吗",
|
||||
"红红火火恍恍惚惚",
|
||||
"FFFFFFFFFF",
|
||||
"Yooooooo",
|
||||
"啪啪啪啪啪",
|
||||
"666666666",
|
||||
"老司机带带我",
|
||||
"你为什么这么熟练啊",
|
||||
"gg",
|
||||
"prprpr",
|
||||
"向大佬低头",
|
||||
"请大家注意弹幕礼仪哦!",
|
||||
"还有这种操作!",
|
||||
"囍",
|
||||
"打call",
|
||||
"你气不气?",
|
||||
"队友呢?"
|
||||
],
|
||||
"hot_words_status": 0,
|
||||
"verify": "",
|
||||
"new_pendants": {
|
||||
"frame": {
|
||||
"name": "",
|
||||
"value": "",
|
||||
"position": 0,
|
||||
"desc": "",
|
||||
"area": 0,
|
||||
"area_old": 0,
|
||||
"bg_color": "",
|
||||
"bg_pic": "",
|
||||
"use_old_area": false
|
||||
},
|
||||
"badge": {
|
||||
"name": "v_company",
|
||||
"position": 3,
|
||||
"value": "",
|
||||
"desc": "哔哩哔哩直播官方账号"
|
||||
},
|
||||
"mobile_frame": {
|
||||
"name": "",
|
||||
"value": "",
|
||||
"position": 0,
|
||||
"desc": "",
|
||||
"area": 0,
|
||||
"area_old": 0,
|
||||
"bg_color": "",
|
||||
"bg_pic": "",
|
||||
"use_old_area": false
|
||||
},
|
||||
"mobile_badge": null
|
||||
},
|
||||
"up_session": "",
|
||||
"pk_status": 0,
|
||||
"pk_id": 0,
|
||||
"battle_id": 0,
|
||||
"allow_change_area_time": 0,
|
||||
"allow_upload_cover_time": 0,
|
||||
"studio_info": {
|
||||
"status": 0,
|
||||
"master_list": []
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取用户对应的直播间状态
|
||||
|
||||
> https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| mid | num | 目标用户mid | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ---------------- | ------------------------ |
|
||||
| roomStatus | num | 直播间状态 | 0:无房间<br />1:有房间 |
|
||||
| roundStatus | num | 轮播状态 | 0:未轮播<br />1:轮播 |
|
||||
| live_status | num | 直播状态 | 0:未开播<br />1:直播中 |
|
||||
| url | str | 直播间网页url | |
|
||||
| title | str | 直播间标题 | |
|
||||
| cover | str | 直播间封面url | |
|
||||
| online | num | 直播间人气 | 值为上次直播时刷新 |
|
||||
| roomid | num | 直播间id(短号) | |
|
||||
| broadcast_type | num | 0 | |
|
||||
| online_hidden | num | 0 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`mid=322892`的直播间信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.live.bilibili.com/room/v1/Room/getRoomInfoOld' \
|
||||
--data-urlencode 'mid=322892'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"roomStatus": 1,
|
||||
"roundStatus": 0,
|
||||
"live_status": 1,
|
||||
"url": "https://live.bilibili.com/5441",
|
||||
"title": "好久没当黑铁主播了",
|
||||
"cover": "http://i0.hdslb.com/bfs/live/room_cover/833f7ff506bac17c06010e8834922993657505b2.jpg",
|
||||
"online": 268602,
|
||||
"roomid": 5441,
|
||||
"broadcast_type": 0,
|
||||
"online_hidden": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取房间页初始化信息
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Room/room_init
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| id | num | 目标直播间号(短号) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />60004:直播间不存在 |
|
||||
| msg | str | 错误信息 | 默认为ok |
|
||||
| message | str | 错误信息 | 默认为ok |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ------------- | ------------------------ |
|
||||
| room_id | num | 直播间真实id | |
|
||||
| short_id | num | 直播间id(短号) | |
|
||||
| uid | num | 主播用户mid | |
|
||||
| need_p2p | num | 是否p2p | |
|
||||
| is_hidden | bool | 是否隐藏 | |
|
||||
| is_locked | bool | 是否锁定 | |
|
||||
| is_portrait | bool | 是否竖屏 | |
|
||||
| live_status | num | 直播状态 | 0:未开播<br />1:直播中<br />2:轮播中 |
|
||||
| hidden_till | num | 隐藏时间戳 | |
|
||||
| lock_till | num | 锁定时间戳 | |
|
||||
| encrypted | bool | 是否加密 | |
|
||||
| pwd_verified | bool | 加密房间是否通过密码验证 | `encrypted`=true时才有意义 |
|
||||
| live_time | num | 开播时间 | 未开播时为`-62170012800` |
|
||||
| room_shield | num | 未知 | |
|
||||
| is_sp | num | 是否为特殊直播间 | 0:普通直播间<br />1:付费直播间 |
|
||||
| special_type | num | 特殊直播间标志 | 0:普通直播间<br />1:付费直播间<br />2:拜年祭直播间 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询直播间`id=76`的直播间信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.live.bilibili.com/room/v1/Room/room_init' \
|
||||
--data-urlencode 'id=76'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"msg":"ok",
|
||||
"message":"ok",
|
||||
"data":{
|
||||
"room_id":14073662,
|
||||
"short_id":76,
|
||||
"uid":50333369,
|
||||
"need_p2p":0,
|
||||
"is_hidden":false,
|
||||
"is_locked":false,
|
||||
"is_portrait":false,
|
||||
"live_status":1,
|
||||
"hidden_till":0,
|
||||
"lock_till":0,
|
||||
"encrypted":false,
|
||||
"pwd_verified":false,
|
||||
"live_time":1602151186,
|
||||
"room_shield":1,
|
||||
"is_sp":0,
|
||||
"special_type":0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取主播信息
|
||||
|
||||
> http://api.live.bilibili.com/live_user/v1/Master/info
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| uid | num | 目标用户mid | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />1:参数错误 |
|
||||
| msg | str | 错误信息 | 默认为空 |
|
||||
| message | str | 错误信息 | 默认为空 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ---------------- | ---------------- |
|
||||
| info | obj | 主播信息 | |
|
||||
| exp | obj | 经验等级 | |
|
||||
| follower_num | num | 主播粉丝数 | |
|
||||
| room_id | num | 直播间id(短号) | |
|
||||
| medal_name | str | 粉丝勋章名 | |
|
||||
| glory_count | num | 主播荣誉数 | |
|
||||
| pendant | str | 直播间头像框url | |
|
||||
| link_group_num | num | 0 | **作用尚不明确** |
|
||||
| room_news | obj | 主播公告 | |
|
||||
|
||||
`info`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | ----------- | ------------------------------ |
|
||||
| uid | num | 主播mid | |
|
||||
| uname | str | 主播用户名 | |
|
||||
| face | str | 主播头像url | |
|
||||
| official_verify | obj | 认证信息 | |
|
||||
| gender | num | 主播性别 | -1:保密<br />0:女<br />1:男 |
|
||||
|
||||
`info`中的`official_verify`对象:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------ | ---------------------------------------- |
|
||||
| type | num | 主播认证类型 | -1:无<br />0:个人认证<br />1:机构认证 |
|
||||
| desc | str | 主播认证信息 | |
|
||||
|
||||
`exp`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | -------- | ---- |
|
||||
| master_level | obj | 主播等级 | |
|
||||
|
||||
`exp`中的`master_level`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----- | ------------ | ---- |
|
||||
| level | num | 当前等级 | |
|
||||
| color | num | 等级框颜色 | |
|
||||
| current | array | 当前等级信息 | |
|
||||
| next | array | 下一等级信息 | |
|
||||
|
||||
`master_level`中的`current`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ---- |
|
||||
| 0 | num | 升级积分 | |
|
||||
| 1 | num | 总积分 | |
|
||||
|
||||
`master_level`中的`next`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ---- |
|
||||
| 0 | num | 升级积分 | |
|
||||
| 1 | num | 总积分 | |
|
||||
|
||||
`room_news`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | -------- | ---- |
|
||||
| content | str | 公告内容 | |
|
||||
| ctime | str | 公告时间 | |
|
||||
| ctime_text | str | 公告日期 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询直播间`mid=76`的主播信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.live.bilibili.com/live_user/v1/Master/info' \
|
||||
--data-urlencode 'uid=2'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"message": "",
|
||||
"data": {
|
||||
"info": {
|
||||
"uid": 2,
|
||||
"uname": "碧诗",
|
||||
"face": "https://i0.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg",
|
||||
"official_verify": {
|
||||
"type": 0,
|
||||
"desc": "bilibili个人认证:bilibili创始人(站长)"
|
||||
},
|
||||
"gender": 1
|
||||
},
|
||||
"exp": {
|
||||
"master_level": {
|
||||
"level": 30,
|
||||
"color": 10512625,
|
||||
"current": [
|
||||
2870000,
|
||||
11883810
|
||||
],
|
||||
"next": [
|
||||
3730000,
|
||||
15613810
|
||||
]
|
||||
}
|
||||
},
|
||||
"follower_num": 926624,
|
||||
"room_id": 1024,
|
||||
"medal_name": "逸国",
|
||||
"glory_count": 0,
|
||||
"pendant": "",
|
||||
"link_group_num": 0,
|
||||
"room_news": {
|
||||
"content": "",
|
||||
"ctime": "",
|
||||
"ctime_text": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 批量查询直播间状态
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids
|
||||
|
||||
*请求方式:GET/POST*
|
||||
|
||||
认证方式:无 (无需添加Cookie)
|
||||
|
||||
**url参数 (GET方式):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ----- | ---------------- | ------ | ---- |
|
||||
| uids[] | array | 要查询的主播 mid | 必要 | |
|
||||
|
||||
**正文参数 (POST方式):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ |
|
||||
| uids | nums | 要查询的主播 mid | 必要 | |
|
||||
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-111:csrf校验失败 |
|
||||
| message | str | 错误信息 | 默认为success |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------- | ------------ |
|
||||
| uid | str | 直播间信息 | 实际字段为主播mid |
|
||||
|
||||
`uid`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------- | ------------ |
|
||||
| area | num | 直播间分区id | |
|
||||
| area_name | str | 直播间分区名 | |
|
||||
| area_v2_id | num | 直播间新版分区id | |
|
||||
| area_v2_name | str | 直播间新版分区名 | |
|
||||
| area_v2_parent_id | num | 直播间父分区id | |
|
||||
| area_v2_parent_name | str | 直播间父分区名 | |
|
||||
| broadcast_type | num | 直播类型 | 0:普通直播<br />1:手机直播 |
|
||||
| cover_from_user | str | 直播间封面url | |
|
||||
| face | str | 主播头像url | |
|
||||
| hidden_till | str | 直播间隐藏信息 | |
|
||||
| keyframe | str | 直播间关键帧url | |
|
||||
| live_status | num | 直播间开播状态 | 0:未开播<br />1:正在直播<br />2:轮播中 |
|
||||
| live_time | num | 直播持续时长 | |
|
||||
| lock_till | str | 直播间封禁信息 | |
|
||||
| online | num | 直播间在线人数 | |
|
||||
| room_id | num | 直播间房间号 | 直播间实际房间号 |
|
||||
| short_id | num | 直播间房间号 | 直播间短房间号,常见于签约主播 |
|
||||
| tag_name | str | 直播间标签 | |
|
||||
| tags | str | 直播间自定标签 | |
|
||||
| title | str | 直播间标题 | |
|
||||
| uid | num | 主播mid | |
|
||||
| uname | str | 主播用户名 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`mid=672328094的直播间信息
|
||||
|
||||
```shell
|
||||
# GET方式
|
||||
curl -G 'http://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids'
|
||||
--data-urlencode 'uids[]=672328094'
|
||||
|
||||
# POST方式
|
||||
curl 'http://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"uids\": [672328094]}"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"message": "success",
|
||||
"data": {
|
||||
"672328094": {
|
||||
"title": "【B限】玩个毛线",
|
||||
"room_id": 22637261,
|
||||
"uid": 672328094,
|
||||
"online": 4087370,
|
||||
"live_time": 0,
|
||||
"live_status": 2,
|
||||
"short_id": 0,
|
||||
"area": 6,
|
||||
"area_name": "生活娱乐",
|
||||
"area_v2_id": 371,
|
||||
"area_v2_name": "虚拟主播",
|
||||
"area_v2_parent_name": "虚拟主播",
|
||||
"area_v2_parent_id": 9,
|
||||
"uname": "嘉然今天吃什么",
|
||||
"face": "http://i2.hdslb.com/bfs/face/d399d6f5cf7943a996ae96999ba3e6ae2a2988de.jpg",
|
||||
"tag_name": "日常,学习,萌宠,厨艺,手机直播",
|
||||
"tags": "",
|
||||
"cover_from_user": "http://i0.hdslb.com/bfs/live/new_room_cover/f3ed7a782c13086e536ec8bc6e9593bb4918f905.jpg",
|
||||
"keyframe": "http://i0.hdslb.com/bfs/live-key-frame/keyframe041722000000226372619dr3m8.jpg",
|
||||
"lock_till": "0000-00-00 00:00:00",
|
||||
"hidden_till": "0000-00-00 00:00:00",
|
||||
"broadcast_type": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -1,214 +0,0 @@
|
||||
# 直播间分区
|
||||
|
||||
- [获取全部直播间分区列表](#获取全部直播间分区列表)
|
||||
|
||||
---
|
||||
|
||||
## 获取全部直播间分区列表
|
||||
|
||||
> https://api.live.bilibili.com/room/v1/Area/getList
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
直播分区共有两级,分别是父分区和子分区
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | ---------- | ------------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| message | str | 错误信息 | 默认为success |
|
||||
| data | array | 父分区列表 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---- |
|
||||
| 0 | obj | 父分区1 | |
|
||||
| n | obj | 父分区(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---------- | ---- |
|
||||
| id | num | 父分区id | |
|
||||
| name | name | 父分区名 | |
|
||||
| list | list | 子分区列表 | |
|
||||
|
||||
`data`数组中的对象中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---- |
|
||||
| 0 | obj | 子分区1 | |
|
||||
| n | obj | 子分区(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ----------------- | ---------------- |
|
||||
| id | str | 子分区id | |
|
||||
| parent_id | str | 父分区id | |
|
||||
| old_area_id | str | 旧分区id | |
|
||||
| name | str | 子分区名 | |
|
||||
| act_id | str | 0 | **作用尚不明确** |
|
||||
| pk_status | str | ??? | **作用尚不明确** |
|
||||
| hot_status | num | 是否为热门分区 | 0:否<br />1:是 |
|
||||
| lock_status | str | 0 | **作用尚不明确** |
|
||||
| pic | str | 子分区标志图片url | |
|
||||
| parent_name | str | 父分区名 | |
|
||||
| area_type | num | | |
|
||||
|
||||
**示例:**
|
||||
|
||||
如想在`网游`父分区下的`英雄联盟`分区开播,则查到子分区id为`86`
|
||||
|
||||
```shell
|
||||
curl 'http://api.live.bilibili.com/room/v1/Area/getList'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"message": "success",
|
||||
"data": [
|
||||
{
|
||||
"id": 2,
|
||||
"name": "网游",
|
||||
"list": [
|
||||
{
|
||||
"id": "86",
|
||||
"parent_id": "2",
|
||||
"old_area_id": "4",
|
||||
"name": "英雄联盟",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/dcfb14f14ec83e503147a262e7607858b05d7ac0.png",
|
||||
"parent_name": "网游",
|
||||
"area_type": 0
|
||||
},
|
||||
{
|
||||
"id": "252",
|
||||
"parent_id": "2",
|
||||
"old_area_id": "3",
|
||||
"name": "逃离塔科夫",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/762a7de3dd5fe8165d1d55b232484a017941592f.png",
|
||||
"parent_name": "网游",
|
||||
"area_type": 0
|
||||
},
|
||||
{
|
||||
"id": "80",
|
||||
"parent_id": "2",
|
||||
"old_area_id": "1",
|
||||
"name": "绝地求生",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/43ca83fdcd10505eaeef1b76cf8ce642a53b94da.png",
|
||||
"parent_name": "网游",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "手游",
|
||||
"list": [
|
||||
{
|
||||
"id": "35",
|
||||
"parent_id": "3",
|
||||
"old_area_id": "12",
|
||||
"name": "王者荣耀",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/0fefa924760b2dd492a12dddafe179bfa1216918.png",
|
||||
"parent_name": "手游",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "单机",
|
||||
"list": [
|
||||
{
|
||||
"id": "236",
|
||||
"parent_id": "6",
|
||||
"old_area_id": "1",
|
||||
"name": "主机游戏",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/edb636ee59f902e3134a2790545045bddd70978e.png",
|
||||
"parent_name": "单机",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "娱乐",
|
||||
"list": [
|
||||
{
|
||||
"id": "21",
|
||||
"parent_id": "1",
|
||||
"old_area_id": "10",
|
||||
"name": "视频唱见",
|
||||
"act_id": "0",
|
||||
"pk_status": "1",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/72b93ddafdf63c9f0b626ad546847a3c03c92b6f.png",
|
||||
"cate_id": "12",
|
||||
"parent_name": "娱乐",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "电台",
|
||||
"list": [
|
||||
{
|
||||
"id": "190",
|
||||
"parent_id": "5",
|
||||
"old_area_id": "10",
|
||||
"name": "唱见电台",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 0,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/d22d7fafbf9b24e2bc3ce1df5eb9f006e6035e5d.png",
|
||||
"parent_name": "电台",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -1,160 +0,0 @@
|
||||
# 直播间视频流
|
||||
|
||||
- [根据真实直播间号获取直播视频流](#根据真实直播间号获取直播视频流)
|
||||
|
||||
---
|
||||
|
||||
## 根据真实直播间号获取直播视频流
|
||||
|
||||
> https://api.live.bilibili.com/room/v1/Room/playUrl
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| cid | num | 目标真实直播间号 | 必要 | 直播间的`room_id`(非短号) |
|
||||
| platform | str | 直播流格式 | 非必要 | h5:hls方式<br />web:http-flv方式<br />默认为http-flv方式 |
|
||||
| quality | num | 画质 | 非必要 | `qn`与`quality`任选其一<br />2:流畅<br />3:高清<br />4:原画 |
|
||||
| qn | str | 画质 | 非必要 | `qn`与`quality`任选其一<br />80:流畅<br />150:高清<br />400:蓝光<br />10000:原画<br />20000:4K<br />30000:杜比 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:参数错误<br />19002003:房间信息不存在 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | str | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ------------- | ------------------------ |
|
||||
| current_quality | num | 当前画质代码`qn` | |
|
||||
| accept_quality | array | 可选画质数参数 | |
|
||||
| current_qn | num | 当前画质代码`quality` | |
|
||||
| quality_description | array | 可选画质参数`quality` | |
|
||||
| durl | array | 直播流url组 | |
|
||||
|
||||
`accept_quality`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | ---- |
|
||||
| 0 | str | `qn`画质代码1 | |
|
||||
| n | str | `qn`画质代码(n+1) | |
|
||||
| …… | str | …… | …… |
|
||||
|
||||
`quality_description`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | obj | 画质代码1 | |
|
||||
| n | obj | 画质代码(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`quality_description`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------------------- | ---- |
|
||||
| qn | num | 画质代码 | |
|
||||
| desc | str | 该代码对应的画质名称 | |
|
||||
|
||||
`durl`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---- |
|
||||
| 0 | obj | 主线服务器 | |
|
||||
| n | obj | 备线n服务器 | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`durl`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ------------- | ------------------------ |
|
||||
| url | str | 直播流url | flv或m3u8格式<br />**注:带有转义** |
|
||||
| length | num | 0 | 作用尚不明确 |
|
||||
| order | num | 服务器线路序号 | |
|
||||
| stream_type | num | 0 | 作用尚不明确 |
|
||||
| p2p_type | num | 0 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询直播间`cid=14073662`的直播间信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.live.bilibili.com/room/v1/Room/playUrl' \
|
||||
--data-urlencode 'cid=14073662' \
|
||||
--data-urlencode 'qn=10000' \
|
||||
--data-urlencode 'platform=web'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"current_quality": 3,
|
||||
"accept_quality": [
|
||||
"4",
|
||||
"3",
|
||||
"2"
|
||||
],
|
||||
"current_qn": 3,
|
||||
"quality_description": [
|
||||
{
|
||||
"qn": 4,
|
||||
"desc": "原画"
|
||||
},
|
||||
{
|
||||
"qn": 3,
|
||||
"desc": "高清"
|
||||
},
|
||||
{
|
||||
"qn": 2,
|
||||
"desc": "流畅"
|
||||
}
|
||||
],
|
||||
"durl": [
|
||||
{
|
||||
"url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/601131/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=20e4ac695fbdd1d11d5dac4f93caa783&ptype=0&src=9&sl=1&order=1",
|
||||
"length": 0,
|
||||
"order": 1,
|
||||
"stream_type": 0,
|
||||
"p2p_type": 0
|
||||
},
|
||||
{
|
||||
"url": "https://d1--cn-gotcha01.bilivideo.com/live-bvc/757951/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha01&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=9deea67bb9e9c1f0fa3886a34aa09473&ptype=0&src=9&sl=1&order=2",
|
||||
"length": 0,
|
||||
"order": 2,
|
||||
"stream_type": 0,
|
||||
"p2p_type": 0
|
||||
},
|
||||
{
|
||||
"url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/982058/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=8753b270960034660184d975d86c0161&ptype=0&src=9&sl=1&order=3",
|
||||
"length": 0,
|
||||
"order": 3,
|
||||
"stream_type": 0,
|
||||
"p2p_type": 0
|
||||
},
|
||||
{
|
||||
"url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/139554/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=cf93474e923c9ba8288c45d954f81045&ptype=0&src=9&sl=1&order=4",
|
||||
"length": 0,
|
||||
"order": 4,
|
||||
"stream_type": 0,
|
||||
"p2p_type": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
266
live/manage.md
266
live/manage.md
@@ -1,266 +0,0 @@
|
||||
# 直播间管理
|
||||
|
||||
- [更新直播间标题](#更新直播间标题)
|
||||
- [开始直播](#开始直播)
|
||||
- [关闭直播](#关闭直播)
|
||||
|
||||
---
|
||||
|
||||
## 更新直播间标题
|
||||
|
||||
> https://api.live.bilibili.com/room/v1/Room/update
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------- | ---- | ------------------------ | ------ | -------------------- |
|
||||
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
|
||||
| title | str | 直播间标题 | 必要 | 最大20字符 |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />65530:token错误(登录错误)<br />1:错误 |
|
||||
| msg | str | 错误信息 | 默认为ok |
|
||||
| message | str | 错误信息 | 默认为ok |
|
||||
| data | array | 空 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
修改直播间`10352053`标题为`测试`
|
||||
|
||||
```shell
|
||||
curl 'http://api.live.bilibili.com/room/v1/Room/update' \
|
||||
--data-urlencode 'room_id=10352053' \
|
||||
--data-urlencode 'title=测试' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx;bili_jct=xx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "ok",
|
||||
"message": "ok",
|
||||
"data": []
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 开始直播
|
||||
|
||||
> https://api.live.bilibili.com/room/v1/Room/startLive
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
|
||||
|
||||
开播时必须有分区选择,开播后返回推流地址
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------------------ | ------ | ----------------------------------- |
|
||||
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
|
||||
| area_v2 | num | 直播分区id(子分区id) | 必要 | 详见[直播分区](live_area.md) |
|
||||
| platform | str | 直播平台 | 必要 | web端:<br />bililink:android_link |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />65530:token错误(登录错误)<br />1:错误<br />60009:分区不存在<br />**(其他错误码有待补充)** |
|
||||
| msg | str | 错误信息 | 默认为空 |
|
||||
| message | str | 错误信息 | 默认为空 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | ---------------- | ---------------------- |
|
||||
| change | num | 是否改变状态 | 0:未改变<br />1:改变 |
|
||||
| status | str | LIVE | |
|
||||
| room_type | num | 0 | 作用尚不明确 |
|
||||
| rtmp | obj | RTMP推流地址信息 | |
|
||||
| protocols | array | ??? | 作用尚不明确 |
|
||||
| try_time | str | ??? | 作用尚不明确 |
|
||||
| live_key | str | ??? | 作用尚不明确 |
|
||||
| notice | obj | ??? | 作用尚不明确 |
|
||||
|
||||
`data`中的`rtmp`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------------------------------- | ------------ |
|
||||
| addr | str | RTMP推流(发送)地址 | **重要** |
|
||||
| code | str | RTMP推流参数(密钥) | **重要** |
|
||||
| new_link | str | 获取CDN推流ip地址重定向信息的url | 没啥用 |
|
||||
| provider | str | ??? | 作用尚不明确 |
|
||||
|
||||
`data`中的`protocols`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | ------------ |
|
||||
| 0 | obj | ??? | 作用尚不明确 |
|
||||
|
||||
`data`中的`protocols`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------------------------------- | ------------ |
|
||||
| protocol | str | rtmp | 作用尚不明确 |
|
||||
| addr | str | RTMP推流(发送)地址 | |
|
||||
| code | str | RTMP推流参数(密钥) | |
|
||||
| new_link | str | 获取CDN推流ip地址重定向信息的url | |
|
||||
| provider | str | txy | 作用尚不明确 |
|
||||
|
||||
`data`中的`notice`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---- | ------------ |
|
||||
| type | num | 1 | 作用尚不明确 |
|
||||
| status | num | 0 | 作用尚不明确 |
|
||||
| title | str | 空 | 作用尚不明确 |
|
||||
| msg | str | 空 | 作用尚不明确 |
|
||||
| button_text | str | 空 | 作用尚不明确 |
|
||||
| button_url | str | 空 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
以`27`作为分区id开播直播间`10352053`
|
||||
|
||||
其中`"data"."rtmp"."addr"`为推流地址
|
||||
|
||||
`"data"."rtmp"."code"`为推流参数
|
||||
|
||||
```shell
|
||||
curl 'http://api.live.bilibili.com/room/v1/Room/startLive' \
|
||||
--data-urlencode 'room_id=10352053' \
|
||||
--data-urlencode 'area_v2=27' \
|
||||
--data-urlencode 'platform=pc' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx;bili_jct=xx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"message": "",
|
||||
"data": {
|
||||
"change": 1,
|
||||
"status": "LIVE",
|
||||
"room_type": 0,
|
||||
"rtmp": {
|
||||
"addr": "rtmp://txy.live-send.acg.tv/live-txy/",
|
||||
"code": "?streamname=live_293793435_1567354&key=***",
|
||||
"new_link": "http://tcdns.myqcloud.com:8086/bilibili_redirect?up_rtmp=txy.live-send.acg.tv%2Flive-txy%2F%3Fstreamname%3Dlive_293793435_1567354%26key%3D***",
|
||||
"provider": "txy"
|
||||
},
|
||||
"protocols": [
|
||||
{
|
||||
"protocol": "rtmp",
|
||||
"addr": "rtmp://txy.live-send.acg.tv/live-txy/",
|
||||
"code": "?streamname=live_293793435_1567354&key=***",
|
||||
"new_link": "http://tcdns.myqcloud.com:8086/bilibili_redirect?up_rtmp=txy.live-send.acg.tv%2Flive-txy%2F%3Fstreamname%3Dlive_293793435_1567354%26key%3D***",
|
||||
"provider": "txy"
|
||||
}
|
||||
],
|
||||
"try_time": "0000-00-00 00:00:00",
|
||||
"live_key": "l:one:live:record:10352053:1589344980",
|
||||
"notice": {
|
||||
"type": 1,
|
||||
"status": 0,
|
||||
"title": "",
|
||||
"msg": "",
|
||||
"button_text": "",
|
||||
"button_url": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 关闭直播
|
||||
|
||||
> https://api.live.bilibili.com/room/v1/Room/stopLive
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------- | ---- | ------------------------ | ------ | -------------------- |
|
||||
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />65530:token错误(登录错误)<br />-400:没有权限<br />**(其他错误码有待补充)** |
|
||||
| msg | str | 错误信息 | 默认为空 |
|
||||
| message | str | 错误信息 | 默认为空 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ------------ | ---------------------- |
|
||||
| change | num | 是否改变状态 | 0:未改变<br />1:改变 |
|
||||
| status | str | PREPARING | |
|
||||
|
||||
**示例:**
|
||||
|
||||
关闭直播间`10352053`的直播
|
||||
|
||||
```shell
|
||||
curl 'http://api.live.bilibili.com/room/v1/Room/stopLive' \
|
||||
--data-urlencode 'room_id=10352053' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx;bili_jct=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"message": "",
|
||||
"data": {
|
||||
"change": 1,
|
||||
"status": "PREPARING"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -1,540 +0,0 @@
|
||||
# 直播间信息流
|
||||
|
||||
- [获取信息流认证秘钥](#获取信息流认证秘钥)
|
||||
|
||||
---
|
||||
|
||||
## 获取信息流认证秘钥
|
||||
|
||||
> https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------ | ------ | ---- |
|
||||
| id | num | 直播间真实id | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />65530:token错误(登录错误)<br />1:错误<br />60009:分区不存在<br />**(其他错误码有待补充)** |
|
||||
| message | str | 错误信息 | 默认为空 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------ | ----- | ------------------- | ---- |
|
||||
| group | str | live | |
|
||||
| business_id | num | 0 | |
|
||||
| refresh_row_factor | num | 0.125 | |
|
||||
| refresh_rate | num | 100 | |
|
||||
| max_delay | num | 5000 | |
|
||||
| token | str | 认证秘钥 | |
|
||||
| host_list | array | 信息流服务器节点列表 | |
|
||||
|
||||
`host_list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ---------- | ---- |
|
||||
| host | str | 服务器域名 | |
|
||||
| port | num | tcp端口 | |
|
||||
| wss_port | num | wss端口 | |
|
||||
| ws_port | num | ws端口 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
获得直播间`22824550`的信息流认证秘钥
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo' \
|
||||
--data-urlencode 'id=22824550'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"group": "live",
|
||||
"business_id": 0,
|
||||
"refresh_row_factor": 0.125,
|
||||
"refresh_rate": 100,
|
||||
"max_delay": 5000,
|
||||
"token": "Eac3Lm1JADzny-YnB5MW0MQcd23rw_mgMFZAnu40I-J2ecP2Qj6CH-UqjdfvwiqVEZcEksG1ONSOi1dGzm0wM4FxqA-ZYXtcQyHXPXqxmrx3AmDx8Z5-d4TuKQkaU0zxevH1B-gnu7g8TDtIE4lns4BYlw==",
|
||||
"host_list": [
|
||||
{
|
||||
"host": "tx-sh-live-comet-02.chat.bilibili.com",
|
||||
"port": 2243,
|
||||
"wss_port": 443,
|
||||
"ws_port": 2244
|
||||
},
|
||||
{
|
||||
"host": "tx-bj-live-comet-02.chat.bilibili.com",
|
||||
"port": 2243,
|
||||
"wss_port": 443,
|
||||
"ws_port": 2244
|
||||
},
|
||||
{
|
||||
"host": "broadcastlv.chat.bilibili.com",
|
||||
"port": 2243,
|
||||
"wss_port": 443,
|
||||
"ws_port": 2244
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 数据包格式
|
||||
|
||||
数据包为MQ(消息队列)使用websocket或tcp作为通道,具体格式为头部数据+正文数据
|
||||
|
||||
操作流程:
|
||||
|
||||
发送认证包->接收认证包回应->接收普通包&(每30秒发送心跳包->接收心跳回应)
|
||||
|
||||
头部格式:
|
||||
|
||||
| 偏移量 | 长度 | 类型 | 含义 |
|
||||
| ------ | ---- | ------ | ------------------------------------------------------------ |
|
||||
| 0 | 4 | uint32 | 封包总大小(头部大小+正文大小) |
|
||||
| 4 | 2 | uint16 | 头部大小(一般为0x0010,16字节) |
|
||||
| 6 | 2 | uint16 | 协议版本:<br />0普通包正文不使用压缩 <br />1心跳及认证包正文不使用压缩<br />2普通包正文使用zlib压缩<br/>3普通包正文使用brotli压缩,解压为一个带头部的协议0普通包 |
|
||||
| 8 | 4 | uint32 | 操作码(封包类型) |
|
||||
| 12 | 4 | uint32 | sequence,每次发包时向上递增 |
|
||||
|
||||
操作码:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | -------------------- |
|
||||
| 2 | 心跳包 |
|
||||
| 3 | 心跳包回复(人气值) |
|
||||
| 5 | 普通包(命令) |
|
||||
| 7 | 认证包 |
|
||||
| 8 | 认证包回复 |
|
||||
|
||||
*普通包可能包含多条命令,每个命令有一个头部,指示该条命令的长度等信息*
|
||||
|
||||
### 认证包
|
||||
|
||||
方式:(上行)
|
||||
|
||||
连接成功后5秒内发送,否则强制断开连接
|
||||
|
||||
正文:
|
||||
|
||||
json格式
|
||||
|
||||
| 字段 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------ | ------ | ------------------ |
|
||||
| uid | num | 用户mid | 非必要 | uid为0即为游客登录 |
|
||||
| roomid | num | 加入房间的id | 必要 | 直播间真实id |
|
||||
| protover | num | 协议版本 | 非必要 | 3 |
|
||||
| platform | str | 平台标识 | 非必要 | "web" |
|
||||
| type | num | 2 | 非必要 | |
|
||||
| key | str | 认证秘钥 | 非必要 | |
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
00000000: 0000 00ff 0010 0001 0000 0007 0000 0001 ................
|
||||
00000001: 7b22 7569 6422 3a31 3630 3134 3836 3234 {"uid":160148624
|
||||
00000002: 2c22 726f 6f6d 6964 223a 3232 3630 3831 ,"roomid":226081
|
||||
00000003: 3132 2c22 7072 6f74 6f76 6572 223a 332c 12,"protover":3,
|
||||
00000004: 2270 6c61 7466 6f72 6d22 3a22 7765 6222 "platform":"web"
|
||||
00000005: 2c22 7479 7065 223a 322c 226b 6579 223a ,"type":2,"key":
|
||||
00000006: 2230 7670 5448 5737 7757 556e 6c6f 5270 "0vpTHW7wWUnloRp
|
||||
00000007: 5251 6b47 764e 626e 7776 7364 6d2d 7159 RQkGvNbnwvsdm-qY
|
||||
00000008: 4777 4243 5875 2d59 5164 6e57 7653 5547 GwBCXu-YQdnWvSUG
|
||||
00000009: 7373 4139 7962 4b68 7932 6a78 3952 6f63 ssA9ybKhy2jx9Roc
|
||||
0000000a: 4150 4651 6d54 4f6b 5277 6b4b 687a 4479 APFQmTOkRwkKhzDy
|
||||
0000000b: 4839 5054 756f 5468 6834 4630 7562 584c H9PTuoThh4F0ubXL
|
||||
0000000c: 4964 6e69 3734 5539 304b 4242 6972 3248 Idni74U90KBBir2H
|
||||
0000000d: 7451 3941 3777 674b 3438 4b7a 495f 5a5a tQ9A7wgK48KzI_ZZ
|
||||
0000000e: 3838 7557 4e59 6652 4f48 6964 4e6a 3732 88uWNYfROHidNj72
|
||||
0000000f: 7061 796e 3479 3071 4268 513d 3d22 7d payn4y0qBhQ=="}
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 认证包回复
|
||||
|
||||
方式:(下行)
|
||||
|
||||
在认证包发送成功后就会收到
|
||||
|
||||
json格式
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | --------- |
|
||||
| code | num | 返回值 | 0认证成功 |
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
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}|
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 心跳包
|
||||
|
||||
方式:(上行)
|
||||
|
||||
30秒左右发送一次,否则60秒后会被强制断开连接
|
||||
|
||||
正文:
|
||||
|
||||
可以为空或任意字符
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
00000000: 0000 001f 0010 0001 0000 0002 0000 0001 ................
|
||||
00000001: 5b6f 626a 6563 7420 4f62 6a65 6374 5d [object Object]
|
||||
```
|
||||
|
||||
### 心跳回应(人气值)
|
||||
|
||||
方式:(下行)
|
||||
|
||||
在心跳包发送成功后就会收到
|
||||
|
||||
正文:
|
||||
|
||||
正文分为两个部分,第一部分是人气值 [uint32整数,代表房间当前的人气值]
|
||||
|
||||
第二部分是对于心跳包内容的复制,心跳包正文是什么这里就会回应什么。
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
00000000: 0000 0014 0010 0001 0000 0003 0000 0000 ................
|
||||
00000001: 0000 09a2 5b6f 626a 6563 7420 4f62 6a65 ....[object Obje
|
||||
00000002: 6374 5d
|
||||
```
|
||||
|
||||
可见房间内人气值为2466(0x000009a2)
|
||||
|
||||
### 普通包
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | --------- |
|
||||
| code | num | 返回值 | 0认证成功 |
|
||||
|
||||
方式:(下行)
|
||||
|
||||
#### 弹幕
|
||||
|
||||
方式:(下行)
|
||||
|
||||
当收到弹幕时接收到此条消息
|
||||
|
||||
json格式
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | --------- |
|
||||
| cmd | string | "DANMU_MSG" | 如果是弹幕消息,内容则是"DANMU_MSG" |
|
||||
| info | list | 单条弹幕的用户、内容、粉丝勋章等各种信息 | 待补 |
|
||||
| ts | string | 用户发送弹幕的时间 | unix时间戳 |
|
||||
|
||||
<details>
|
||||
<summary>查看消息示例:</summary>
|
||||
|
||||
``` json
|
||||
{
|
||||
"cmd": "DANMU_MSG",
|
||||
"info": [
|
||||
[
|
||||
0,
|
||||
4,
|
||||
25,
|
||||
5566168,
|
||||
1644559560263,
|
||||
1644558747,
|
||||
0,
|
||||
"998a531f",
|
||||
0,
|
||||
0,
|
||||
5,
|
||||
"#1453BAFF,#4C2263A2,#3353BAFF",
|
||||
0,
|
||||
"{}",
|
||||
"{}",
|
||||
{
|
||||
"mode": 0,
|
||||
"show_player_type": 0,
|
||||
"extra": ""
|
||||
}
|
||||
],
|
||||
"测试文本",
|
||||
[
|
||||
1850091,
|
||||
"Jannchie见齐",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10000,
|
||||
1,
|
||||
"#00D1F1"
|
||||
],
|
||||
[
|
||||
21,
|
||||
"観測者",
|
||||
"Jannchie见齐",
|
||||
422915,
|
||||
1725515,
|
||||
"",
|
||||
0,
|
||||
6809855,
|
||||
1725515,
|
||||
5414290,
|
||||
3,
|
||||
1,
|
||||
1850091
|
||||
],
|
||||
[
|
||||
20,
|
||||
0,
|
||||
6406234,
|
||||
"u003e50000",
|
||||
3
|
||||
],
|
||||
[
|
||||
"",
|
||||
""
|
||||
],
|
||||
0,
|
||||
3,
|
||||
null,
|
||||
{
|
||||
"ts": 1644559560,
|
||||
"ct": "59DEA791"
|
||||
},
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
null,
|
||||
0,
|
||||
210
|
||||
]
|
||||
}
|
||||
```
|
||||
</details>
|
||||
|
||||
#### 进场或关注消息
|
||||
|
||||
方式:(下行)
|
||||
|
||||
有用户进入或关注直播间时触发
|
||||
|
||||
json格式
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | --------- |
|
||||
| cmd | string | "INTERACT_WORD" | 如果是进场或关注消息,内容则是"INTERACT_WORD" |
|
||||
| data | obj | 进场人信息 | |
|
||||
|
||||
data字段
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | --------- |
|
||||
| contribution | obj | 待调查 | |
|
||||
| dmscore | number | 待调查 | |
|
||||
| fans_medal | obj | 粉丝勋章 | |
|
||||
| identities | number | 待调查 | |
|
||||
| is_spread | number | 待调查 | |
|
||||
| msg_type | number | 1为进场,2为关注 | |
|
||||
| roomid | number | 房间号 | |
|
||||
| is_spread | number | 待调查 | |
|
||||
| is_spread | number | 待调查 | |
|
||||
| score | number | 待调查 | |
|
||||
| spread_desc | string | 待调查 | |
|
||||
| spread_info | string | 待调查 | |
|
||||
| tail_icon | number | 待调查 | |
|
||||
| timestamp | number | 时间戳 | |
|
||||
| trigger_time | number | 触发时间 | |
|
||||
| uid | number | 用户ID | |
|
||||
| uname | string | 用户名称 | |
|
||||
| uname_color | string | 用户颜色 | |
|
||||
|
||||
<details>
|
||||
<summary>查看消息示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"cmd": "INTERACT_WORD",
|
||||
"data": {
|
||||
"contribution": {
|
||||
"grade": 0
|
||||
},
|
||||
"dmscore": 4,
|
||||
"fans_medal": {
|
||||
"anchor_roomid": 890976,
|
||||
"guard_level": 0,
|
||||
"icon_id": 0,
|
||||
"is_lighted": 0,
|
||||
"medal_color": 6067854,
|
||||
"medal_color_border": 12632256,
|
||||
"medal_color_end": 12632256,
|
||||
"medal_color_start": 12632256,
|
||||
"medal_level": 1,
|
||||
"medal_name": "小豆皮",
|
||||
"score": 134,
|
||||
"special": "",
|
||||
"target_id": 6574487
|
||||
},
|
||||
"identities": [
|
||||
1
|
||||
],
|
||||
"is_spread": 0,
|
||||
"msg_type": 1,
|
||||
"roomid": 24143902,
|
||||
"score": 1644563948936,
|
||||
"spread_desc": "",
|
||||
"spread_info": "",
|
||||
"tail_icon": 0,
|
||||
"timestamp": 1644563948,
|
||||
"trigger_time": 1644563947876475000,
|
||||
"uid": 335979315,
|
||||
"uname": "TIM_Init",
|
||||
"uname_color": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</detail>
|
||||
|
||||
|
||||
json格式
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | --------- |
|
||||
| cmd | string | "DANMU_MSG" | 如果是弹幕消息,内容则是"DANMU_MSG" |
|
||||
| info | list | 单条弹幕的用户、内容、粉丝勋章等各种信息 | 待补 |
|
||||
|
||||
<details>
|
||||
<summary>查看消息示例:</summary>
|
||||
|
||||
``` json
|
||||
{
|
||||
"cmd": "DANMU_MSG",
|
||||
"info": [
|
||||
[
|
||||
0,
|
||||
4,
|
||||
25,
|
||||
5566168,
|
||||
1644559560263,
|
||||
1644558747,
|
||||
0,
|
||||
"998a531f",
|
||||
0,
|
||||
0,
|
||||
5,
|
||||
"#1453BAFF,#4C2263A2,#3353BAFF",
|
||||
0,
|
||||
"{}",
|
||||
"{}",
|
||||
{
|
||||
"mode": 0,
|
||||
"show_player_type": 0,
|
||||
"extra": ""
|
||||
}
|
||||
],
|
||||
"测试文本",
|
||||
[
|
||||
1850091,
|
||||
"Jannchie见齐",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10000,
|
||||
1,
|
||||
"#00D1F1"
|
||||
],
|
||||
[
|
||||
21,
|
||||
"観測者",
|
||||
"Jannchie见齐",
|
||||
422915,
|
||||
1725515,
|
||||
"",
|
||||
0,
|
||||
6809855,
|
||||
1725515,
|
||||
5414290,
|
||||
3,
|
||||
1,
|
||||
1850091
|
||||
],
|
||||
[
|
||||
20,
|
||||
0,
|
||||
6406234,
|
||||
"u003e50000",
|
||||
3
|
||||
],
|
||||
[
|
||||
"",
|
||||
""
|
||||
],
|
||||
0,
|
||||
3,
|
||||
null,
|
||||
{
|
||||
"ts": 1644559560,
|
||||
"ct": "59DEA791"
|
||||
},
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
null,
|
||||
0,
|
||||
210
|
||||
]
|
||||
}
|
||||
```
|
||||
</details>
|
||||
|
||||
#### 送礼
|
||||
|
||||
|
||||
|
||||
#### 欢迎加入房间
|
||||
|
||||
|
||||
|
||||
#### 欢迎房管加入房间
|
||||
|
||||
|
||||
|
||||
#### 系统消息
|
||||
|
||||
|
||||
|
||||
#### 主播准备中
|
||||
|
||||
|
||||
|
||||
#### 直播开始
|
||||
|
||||
|
||||
|
||||
#### 直播状态更新
|
||||
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
# 直播间人气红包
|
||||
|
||||
- [获取指定直播间的红包信息](#获取指定直播间的红包信息)
|
||||
|
||||
---
|
||||
|
||||
## 获取指定直播间的红包信息
|
||||
|
||||
> https://api.live.bilibili.com/xlive/lottery-interface/v1/lottery/getLotteryInfoWeb
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式(可选):Cookie(SESSDATA)
|
||||
|
||||
如果不携带Cookie信息,user_status将始终返回2(未参与)。
|
||||
|
||||
如果所查询的直播间无红包,popularity_red_pocket为null。
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------- | ---- | ---------------- | ------ | ---- |
|
||||
| roomid | str | 直播间id | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | ---------- | ------------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 0:成功 |
|
||||
| ttl | num | TimeToLive | 正常为1 |
|
||||
| data | object | 返回数据 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---- |
|
||||
| popularity_red_pocket | array | 人气红包信息 | |
|
||||
| …… | ...... | …… | …… |
|
||||
|
||||
`popularity_red_pocket`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---------- | ---- |
|
||||
| lot_id | num | 红包id | |
|
||||
| sender_uid | num | 红包发送者uid | |
|
||||
| sender_name | str | 红包发送者昵称 | |
|
||||
| sender_face | str | 红包发送者头像 | |
|
||||
| join_requirement | num | 参与条件? | |
|
||||
| danmu | str | 参与红包时自动发送的弹幕内容 | |
|
||||
| awards | array | 红包内容 | |
|
||||
| lot_status | num | 未知 | |
|
||||
| h5_url | str | 红包界面 | |
|
||||
| user_status | num | 用户是否已参与 | 1:已参与 2:未参与 |
|
||||
| lot_config_id | num | 未知 | |
|
||||
| total_price | num | 红包总计价格 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询房间号为24146996的直播间红包信息:
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.live.bilibili.com/xlive/lottery-interface/v1/lottery/getLotteryInfoWeb?roomid=24146996'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"pk": null,
|
||||
"guard": null,
|
||||
"gift": null,
|
||||
"storm": null,
|
||||
"silver": null,
|
||||
"activity_box": {
|
||||
"ACTIVITY_ID": 0,
|
||||
"ACTIVITY_PIC": ""
|
||||
},
|
||||
"danmu": null,
|
||||
"anchor": null,
|
||||
"red_pocket": null,
|
||||
"popularity_red_pocket": [{
|
||||
"lot_id": 622474,
|
||||
"sender_uid": 1651908873,
|
||||
"sender_name": "九泽糖糖の小蘑菇",
|
||||
"sender_face": "http://i0.hdslb.com/bfs/face/c932c5c8b1607fe2e1da22b9780af19662dac939.jpg",
|
||||
"join_requirement": 1,
|
||||
"danmu": "老板大气!点点红包抽礼物!",
|
||||
"awards": [{
|
||||
"gift_id": 31212,
|
||||
"num": 2,
|
||||
"gift_name": "打call",
|
||||
"gift_pic": "https://s1.hdslb.com/bfs/live/f75291a0e267425c41e1ce31b5ffd6bfedc6f0b6.png"
|
||||
}, {
|
||||
"gift_id": 31214,
|
||||
"num": 3,
|
||||
"gift_name": "牛哇",
|
||||
"gift_pic": "https://s1.hdslb.com/bfs/live/23475a7a6170e0d94ba52720e23060dc7604b735.png"
|
||||
}, {
|
||||
"gift_id": 31216,
|
||||
"num": 3,
|
||||
"gift_name": "i了i了",
|
||||
"gift_pic": "https://s1.hdslb.com/bfs/live/1157a445487b39c0b7368d91b22290c60fa665b2.png"
|
||||
}],
|
||||
"start_time": 1645358104,
|
||||
"end_time": 1645358284,
|
||||
"last_time": 180,
|
||||
"remove_time": 1645358299,
|
||||
"replace_time": 1645358294,
|
||||
"current_time": 1645358231,
|
||||
"lot_status": 1,
|
||||
"h5_url": "https://live.bilibili.com/p/html/live-app-red-envelope/popularity.html?is_live_half_webview=1\u0026hybrid_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\u0026hybrid_rotate_d=1\u0026hybrid_biz=popularityRedPacket\u0026lotteryId=622474",
|
||||
"user_status": 1,
|
||||
"lot_config_id": 3,
|
||||
"total_price": 1600
|
||||
}],
|
||||
"activity_box_info": null
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
209
live/user.md
209
live/user.md
@@ -1,209 +0,0 @@
|
||||
# 直播间用户实用 API
|
||||
|
||||
- [直播间用户实用 API](#直播间用户实用-api)
|
||||
- [获取用户持有的粉丝勋章信息](#获取用户持有的粉丝勋章信息)
|
||||
- [佩戴勋章](#佩戴勋章)
|
||||
- [直播签到](#直播签到)
|
||||
|
||||
---
|
||||
|
||||
## 获取用户持有的粉丝勋章信息
|
||||
|
||||
> ~~http://api.live.bilibili.com/fans_medal/v5/live_fans_medal/iApiMedal~~
|
||||
>
|
||||
> https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals
|
||||
|
||||
_请求方式:GET_
|
||||
|
||||
认证方式:Cookie(SESSDATA)或 APP
|
||||
|
||||
**url 参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------- | ---- | ------------ | ------ | ------------------------------------------------- |
|
||||
| page_size | num | 每页的数量 | 必要 | 最大为 10,超出 `1002002:参数异常` |
|
||||
| page | num | 返回结果页数 | 必要 | 两个参数不填返回空,只 page 不填或错误则 500 异常 |
|
||||
|
||||
**json 回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br>-1002002:参数异常<br>-500:服务器异常 |
|
||||
| message | str | 错误信息 | 默认为 "0" |
|
||||
| ttl | str | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | ---------------- | ---- |
|
||||
| count | num | 勋章数量 | |
|
||||
| items | array | 粉丝勋章信息本体 | |
|
||||
| page_info | obj | 页码信息 | |
|
||||
|
||||
`items 数组内`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------ | ------ | -------------------- | -------------------------------------- |
|
||||
| can_delete | bool | 可否删除 | |
|
||||
| day_limit | num | 日经验上限(原力值) | eg: 1500 |
|
||||
| guard_level | num | | |
|
||||
| guard_medal_title | str | 加成状态 | |
|
||||
| intimacy | num | 当前已得亲密度 | |
|
||||
| is_lighted | num | 是否点亮 | 0:未点亮<br>1:点亮 |
|
||||
| level | num | 勋章等级 | |
|
||||
| medal_name | str | 勋章名 | |
|
||||
| medal_color_border | num | 勋章边框颜色信息 | 颜色数值为 10 进制的 16 进制值(下同) |
|
||||
| medal_color_start | num | 勋章起始颜色 | 从右往左渐变(20 级+勋章) |
|
||||
| medal_color_end | num | 勋章结束颜色 | 从右往左渐变(20 级+勋章) |
|
||||
| medal_id | num | 粉丝勋章 id | |
|
||||
| next_intimacy | num | 升级所需经验 | |
|
||||
| today_feed | num | 本日亲密度 | |
|
||||
| roomid | num | 直播间房间号 | |
|
||||
| status | num | | |
|
||||
| target_id | number | up 主 mid | |
|
||||
| target_name | str | up 主用户名 | |
|
||||
| uname | str | up 主用户名 | |
|
||||
|
||||
`page_info`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | -------------- | ---- |
|
||||
| total_page | num | 页码总长度 | |
|
||||
| cur_page | num | 当前返回的页码 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals?page=1&page_size=10 \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"items": [
|
||||
{
|
||||
"can_deleted": true,
|
||||
"day_limit": 1500,
|
||||
"guard_level": 0,
|
||||
"guard_medal_title": "未开启加成",
|
||||
"intimacy": 9617,
|
||||
"is_lighted": 0,
|
||||
"level": 11,
|
||||
"medal_name": "锦依卫",
|
||||
"medal_color_border": 12632256,
|
||||
"medal_color_end": 12632256,
|
||||
"medal_color_start": 12632256,
|
||||
"medal_id": 29245,
|
||||
"next_intimacy": 10000,
|
||||
"today_feed": 0,
|
||||
"roomid": 1546736,
|
||||
"status": 0,
|
||||
"target_id": 36081646,
|
||||
"target_name": "洛天依",
|
||||
"uname": "洛天依"
|
||||
}
|
||||
],
|
||||
"page_info": {
|
||||
"cur_page": 1,
|
||||
"total_page": 1
|
||||
},
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 佩戴勋章
|
||||
|
||||
> https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/wear
|
||||
|
||||
_请求方式:POST_
|
||||
|
||||
**表单参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ----------------------- | ------ | ---- |
|
||||
| medal_id | num | 勋章 id | 必要 | |
|
||||
| csrf | num | cookie 中 bili_jct 字段 | 必要 | |
|
||||
| csrf_token | num | 同上 | 必要 | |
|
||||
|
||||
**json 回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | -------------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| ttl | str | 1 | |
|
||||
| message | str | 错误信息 | 默认为佩戴成功 |
|
||||
| data | obj | 信息本体 | 默认为无 |
|
||||
|
||||
**示例:**
|
||||
|
||||
佩戴勋章 id 为 1 的勋章
|
||||
|
||||
```JavaScript
|
||||
var madelForm = new FormData();
|
||||
madelForm.append("medal_id", 1);
|
||||
madelForm.append("csrf", bili_jct);
|
||||
madelForm.append("csrf_token", bili_jct);
|
||||
$.ajax({
|
||||
url: "https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/wear",
|
||||
type: "POST",
|
||||
data: madelForm,
|
||||
dataType: "JSON",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
xhrFields: {
|
||||
withCredentials: true
|
||||
},
|
||||
success: function (){
|
||||
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "佩戴成功",
|
||||
"ttl": 1,
|
||||
"data": {}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 直播签到
|
||||
|
||||
> https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/DoSign
|
||||
|
||||
_请求方式:GET_
|
||||
|
||||
认证方式:Cookie(SESSDATA)或 APP
|
||||
|
||||
**json 回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------------------- |
|
||||
| code | num | 返回值 | 0:成功<br>1:参数错误 |
|
||||
| ttl | str | 1 | |
|
||||
| message | str | 错误信息 | 默认为当日签到奖励内容 |
|
||||
| data | obj | 信息本体 | 默认为空 |
|
||||
Reference in New Issue
Block a user