diff --git a/live/info.md b/live/info.md index fddc2c3..5eeef0a 100644 --- a/live/info.md +++ b/live/info.md @@ -1,11 +1,12 @@ # 直播间基本信息 - [直播间基本信息](#直播间基本信息) - - [获取直播间信息](#获取直播间信息) - - [获取用户对应的直播间状态](#获取用户对应的直播间状态) - - [获取房间页初始化信息](#获取房间页初始化信息) - - [获取主播信息](#获取主播信息) - - [批量查询直播间状态](#批量查询直播间状态) + - [获取直播间信息](#获取直播间信息) + - [获取用户对应的直播间状态](#获取用户对应的直播间状态) + - [获取房间页初始化信息](#获取房间页初始化信息) + - [获取主播信息](#获取主播信息) + - [批量查询直播间状态](#批量查询直播间状态) + - [获取直播间信息](#获取直播间信息) --- @@ -16,86 +17,102 @@ *请求方式: GET* **URL参数:** -| 参数名 | 类型 | 内容 | 必要性 | 备注 | -| ------ | ---- | ----------- | ----- | --------- | -| room_id| num | 直播间号 | 必要 | 可以为短号 | + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|---------|-----|------|-----|-------| +| room_id | num | 直播间号 | 必要 | 可以为短号 | **json回复:** 根对象: -| 字段 | 类型 | 内容 | 备注 | -| ------- | ---- | -------- | --------------------------- | -| code | num | 返回值 | 0:成功
1:不存在 | -| message | str | 错误信息 | | -| msg | str | 错误信息 | | -| data | obj | 信息本体 | | + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|-----------------| +| code | num | 返回值 | 0:成功
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:未开播
1:直播中
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 | 未知 | | + +| 字段 | 类型 | 内容 | 备注 | +|-------------------------|-----------|--------|-----------------------------| +| uid | num | 主播mid | | +| room_id | num | 直播间长号 | | +| short_id | num | 直播间短号 | 为0是无短号 | +| attention | num | 关注数量 | | +| online | num | 观看人数 | | +| is_portrait | bool | 是否竖屏 | | +| description | str | 描述 | | +| live_status | num | 直播状态 | 0:未开播
1:直播中
2:轮播中 | +| area_id | num | 分区id | | +| 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 | 禁言时间 | 单位是秒 | +| area_name | str | 分区名称 | | +| 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 | 未知 | | +| allow_change_area_time | num | | | +| allow_upload_cover_time | num | | | +| studio_info | obj | | | `new_pendants`对象: -| 字段 | 类型 | 内容 | 备注 | -| ------------ | ---- | -------- | --------------------------- | -| frame | obj | 头像框 | | -| mobile_frame | obj | 同上 | 手机版, 结构一致, 可能null | -| badge | obj | 大v | | -| mobile_badge | obj | 同上 | 手机版, 结构一致, 可能null | + +| 字段 | 类型 | 内容 | 备注 | +|--------------|-----|-----|-------------------| +| 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 | 是否旧分区号 || + +| 字段 | 类型 | 内容 | 备注 | +|--------------|------|--------|-----| +| 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: 个人认证(黄)
v_company: 企业认证(蓝) | -| position | num | 位置 || -| value | str | 值 || -| desc | str | 描述 || + +| 字段 | 类型 | 内容 | 备注 | +|----------|-----|-----|-------------------------------------------| +| name | str | 类型 | v_person: 个人认证(黄)
v_company: 企业认证(蓝) | +| position | num | 位置 | | +| value | str | 值 | | +| desc | str | 描述 | | + +`studio_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-------|-----|-----| +| status | num | | | +| master_list | array | | | **示例:** @@ -111,100 +128,100 @@ curl -G 'https://api.live.bilibili.com/room/v1/Room/get_info' \ ```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": [] - } + "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": [] } + } } ``` @@ -218,35 +235,35 @@ curl -G 'https://api.live.bilibili.com/room/v1/Room/get_info' \ **url参数:** -| 参数名 | 类型 | 内容 | 必要性 | 备注 | -| ------ | ---- | ----------- | ------ | ---- | -| mid | num | 目标用户mid | 必要 | | +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| mid | num | 目标用户mid | 必要 | | **json回复:** 根对象: -| 字段 | 类型 | 内容 | 备注 | -| ------- | ---- | -------- | --------------------------- | -| code | num | 返回值 | 0:成功
-400:请求错误 | -| message | str | 错误信息 | 默认为0 | -| ttl | num | 1 | | -| data | obj | 信息本体 | | +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------| +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | `data`对象: -| 字段 | 类型 | 内容 | 备注 | -| -------------- | ---- | ---------------- | ------------------------ | -| roomStatus | num | 直播间状态 | 0:无房间
1:有房间 | -| roundStatus | num | 轮播状态 | 0:未轮播
1:轮播 | -| live_status | num | 直播状态 | 0:未开播
1:直播中 | -| url | str | 直播间网页url | | -| title | str | 直播间标题 | | -| cover | str | 直播间封面url | | -| online | num | 直播间人气 | 值为上次直播时刷新 | -| roomid | num | 直播间id(短号) | | -| broadcast_type | num | 0 | | -| online_hidden | num | 0 | | +| 字段 | 类型 | 内容 | 备注 | +|----------------|-----|-----------|------------------| +| roomStatus | num | 直播间状态 | 0:无房间
1:有房间 | +| roundStatus | num | 轮播状态 | 0:未轮播
1:轮播 | +| live_status | num | 直播状态 | 0:未开播
1:直播中 | +| url | str | 直播间网页url | | +| title | str | 直播间标题 | | +| cover | str | 直播间封面url | | +| online | num | 直播间人气 | 值为上次直播时刷新 | +| roomid | num | 直播间id(短号) | | +| broadcast_type | num | 0 | | +| online_hidden | num | 0 | | **示例:** @@ -262,21 +279,21 @@ curl -G 'https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld' \ ```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 - } + "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 + } } ``` @@ -290,41 +307,41 @@ curl -G 'https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld' \ **url参数:** -| 参数名 | 类型 | 内容 | 必要性 | 备注 | -| ------ | ---- | ----------- | ------ | ---- | -| id | num | 目标直播间号(短号) | 必要 | | +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|------------|-----|-----| +| id | num | 目标直播间号(短号) | 必要 | | **json回复:** 根对象: -| 字段 | 类型 | 内容 | 备注 | -| ------- | ---- | -------- | --------------------------- | -| code | num | 返回值 | 0:成功
60004:直播间不存在 | -| msg | str | 错误信息 | 默认为ok | -| message | str | 错误信息 | 默认为ok | -| data | obj | 信息本体 | | +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------| +| code | num | 返回值 | 0:成功
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:未开播
1:直播中
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:普通直播间
1:付费直播间 | -| special_type | num | 特殊直播间标志 | 0:普通直播间
1:付费直播间
2:拜年祭直播间 | +| 字段 | 类型 | 内容 | 备注 | +|--------------|------|--------------|------------------------------------| +| 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:未开播
1:直播中
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:普通直播间
1:付费直播间 | +| special_type | num | 特殊直播间标志 | 0:普通直播间
1:付费直播间
2:拜年祭直播间 | **示例:** @@ -340,27 +357,27 @@ curl -G 'https://api.live.bilibili.com/room/v1/Room/room_init' \ ```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 - } + "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 + } } ``` @@ -374,87 +391,88 @@ curl -G 'https://api.live.bilibili.com/room/v1/Room/room_init' \ **url参数:** -| 参数名 | 类型 | 内容 | 必要性 | 备注 | -| ------ | ---- | ----------- | ------ | ---- | -| uid | num | 目标用户mid | 必要 | | +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| uid | num | 目标用户mid | 必要 | | **json回复:** 根对象: -| 字段 | 类型 | 内容 | 备注 | -| ------- | ---- | -------- | ------------------------ | -| code | num | 返回值 | 0:成功
1:参数错误 | -| msg | str | 错误信息 | 默认为空 | -| message | str | 错误信息 | 默认为空 | -| data | obj | 信息本体 | | +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------| +| code | num | 返回值 | 0:成功
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 | 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:保密
0:女
1:男 | +| 字段 | 类型 | 内容 | 备注 | +|-----------------|-----|---------|-------------------------| +| uid | num | 主播mid | | +| uname | str | 主播用户名 | | +| face | str | 主播头像url | | +| official_verify | obj | 认证信息 | | +| gender | num | 主播性别 | -1:保密
0:女
1:男 | `info`中的`official_verify`对象: -| 字段 | 类型 | 内容 | 备注 | -| ---- | ---- | ------------ | ---------------------------------------- | -| type | num | 主播认证类型 | -1:无
0:个人认证
1:机构认证 | -| desc | str | 主播认证信息 | | + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|--------|------------------------------| +| type | num | 主播认证类型 | -1:无
0:个人认证
1:机构认证 | +| desc | str | 主播认证信息 | | `exp`对象: -| 字段 | 类型 | 内容 | 备注 | -| ------------ | ---- | -------- | ---- | -| master_level | obj | 主播等级 | | +| 字段 | 类型 | 内容 | 备注 | +|--------------|-----|------|-----| +| master_level | obj | 主播等级 | | `exp`中的`master_level`对象: -| 字段 | 类型 | 内容 | 备注 | -| ------- | ----- | ------------ | ---- | -| level | num | 当前等级 | | -| color | num | 等级框颜色 | | -| current | array | 当前等级信息 | | -| next | array | 下一等级信息 | | +| 字段 | 类型 | 内容 | 备注 | +|---------|-------|--------|-----| +| level | num | 当前等级 | | +| color | num | 等级框颜色 | | +| current | array | 当前等级信息 | | +| next | array | 下一等级信息 | | `master_level`中的`current`数组: -| 项 | 类型 | 内容 | 备注 | -| ---- | ---- | -------- | ---- | -| 0 | num | 升级积分 | | -| 1 | num | 总积分 | | +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------|-----| +| 0 | num | 升级积分 | | +| 1 | num | 总积分 | | `master_level`中的`next`数组: -| 项 | 类型 | 内容 | 备注 | -| ---- | ---- | -------- | ---- | -| 0 | num | 升级积分 | | -| 1 | num | 总积分 | | +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------|-----| +| 0 | num | 升级积分 | | +| 1 | num | 总积分 | | `room_news`对象: -| 字段 | 类型 | 内容 | 备注 | -| ---------- | ---- | -------- | ---- | -| content | str | 公告内容 | | -| ctime | str | 公告时间 | | -| ctime_text | str | 公告日期 | | +| 字段 | 类型 | 内容 | 备注 | +|------------|-----|------|-----| +| content | str | 公告内容 | | +| ctime | str | 公告时间 | | +| ctime_text | str | 公告日期 | | **示例:** @@ -470,46 +488,46 @@ curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \ ```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": "" - } - } + "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": "" + } + } } ``` @@ -525,61 +543,60 @@ curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \ **url参数 (GET方式):** -| 参数名 | 类型 | 内容 | 必要性 | 备注 | -| ------ | ----- | ---------------- | ------ | ---- | -| uids[] | array | 要查询的主播 mid | 必要 | | +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|--------|-------|------------|-----|-----| +| uids[] | array | 要查询的主播 mid | 必要 | | **正文参数 (POST方式):** -| 参数名 | 类型 | 内容 | 必要性 | 备注 | -| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | -| uids | nums | 要查询的主播 mid | 必要 | | - +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|------|------------|-----|-----| +| uids | nums | 要查询的主播 mid | 必要 | | **json回复:** 根对象: -| 字段 | 类型 | 内容 | 备注 | -| ------- | ---- | -------- | ------------------------------------------------------------ | -| code | num | 返回值 | 0:成功
-111:csrf校验失败 | -| message | str | 错误信息 | 默认为success | -| msg | str | 错误信息 | 默认为success | -| ttl | num | 1 | | -| data | obj | 信息本体 | | +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|-------------------------| +| code | num | 返回值 | 0:成功
-111:csrf校验失败 | +| message | str | 错误信息 | 默认为success | +| msg | str | 错误信息 | 默认为success | +| ttl | num | 1 | | +| data | obj | 信息本体 | | `data`对象: -| 字段 | 类型 | 内容 | 备注 | -| -------- | ---- | -------- | ------------ | -| uid | str | 直播间信息 | 实际字段为主播mid | +| 字段 | 类型 | 内容 | 备注 | +|-----|-----|-------|------------| +| 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:普通直播
1:手机直播 | -| cover_from_user | str | 直播间封面url | | -| face | str | 主播头像url | | -| hidden_till | str | 直播间隐藏信息 | | -| keyframe | str | 直播间关键帧url | | -| live_status | num | 直播间开播状态 | 0:未开播
1:正在直播
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 | 主播用户名 | | +| 字段 | 类型 | 内容 | 备注 | +|---------------------|-----|-----------|------------------------------| +| title | str | 直播间标题 | | +| room_id | num | 直播间房间号 | 直播间实际房间号 | +| uid | num | 主播mid | | +| online | num | 直播间在线人数 | | +| live_time | num | 直播持续时长 | | +| live_status | num | 直播间开播状态 | 0:未开播
1:正在直播
2:轮播中 | +| short_id | num | 直播间房间号 | 直播间短房间号,常见于签约主播 | +| 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 | 直播间父分区名 | | +| uname | str | 主播用户名 | | +| face | str | 主播头像url | | +| tag_name | str | 直播间标签 | | +| tags | str | 直播间自定标签 | | +| cover_from_user | str | 直播间封面url | | +| keyframe | str | 直播间关键帧url | | +| lock_till | str | 直播间封禁信息 | | +| hidden_till | str | 直播间隐藏信息 | | +| broadcast_type | num | 直播类型 | 0:普通直播
1:手机直播 | **示例:** @@ -601,36 +618,354 @@ curl 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' \ ```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 - } + "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 } + } } ``` + +## 清晰度代码 + +| 代码 | 说明 | +|-------|-----| +| 30000 | 杜比 | +| 20000 | 4K | +| 10000 | 原画 | +| 400 | 蓝光 | +| 250 | 超清 | +| 150 | 高清 | +| 80 | 流畅 | + +## 获取直播间信息 + +> https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo + +*请求方式:GET* + +认证方式:无 (无需添加Cookie) + +**url参数 (GET方式):** + +| 参数名 | 类型 | 内容 | 必填 | 备注 | +|----------|-----|-------|-----|------------------------------------------------| +| room_id | num | 直播间id | 必要 | | +| protocol | str | 直播协议 | 必要 | 0:http_stream
1:http_hls
可多选, 使用英文逗号分隔 | +| format | str | 格式 | 必要 | 0:flv
1:ts
2:fmp4
可多选, 使用英文逗号分隔 | +| codec | str | 编码格式 | 必要 | 0:AVC
1:HEVC
可多选, 使用英文逗号分隔 | +| qn | num | 清晰度编码 | | 默认`150`
[清晰度代码](#清晰度代码) | +| platform | str | `web` | | | +| ptype | num | `8` | | | +| dolby | num | `5` | | | +| panorama | num | `1` | | | + +**json回复:** + +根对象: + +| 字段名 | 类型 | 内容 | 备注 | +|---------|-----|------|-----------------------| +| code | num | 响应码 | 0:成功
1002002:参数错误 | +| message | str | 0 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段名 | 类型 | 内容 | 备注 | +|-------------------|-------|-----------|---------------------------| +| room_id | num | 直播间id | | +| short_id | num | 直播间短id | | +| uid | num | 主播uid | | +| is_hidden | bool | 直播间是否被隐藏 | | +| is_locked | bool | 直播间是否被锁定 | | +| is_portrait | bool | 是否竖屏 | | +| live_status | num | 直播状态 | 0:未开播
1:直播中
2:轮播中 | +| hidden_till | num | 隐藏结束时间 | | +| lock_till | num | 封禁结束时间 | 秒级时间戳 | +| encrypted | bool | 直播间为加密直播间 | | +| pwd_verified | bool | 是否通过密码验证 | 当`encrypted`为`true`时才有意义 | +| live_time | num | 本次开播时间 | 秒级时间戳 | +| room_shield | num | | | +| all_special_types | array | | | +| playurl_info | obj | 直播流信息 | | + +`playurl_info`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|-----|-----|-----| +| conf_json | str | | | +| playurl | obj | | | + +`playurl`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|-------|-------|-----| +| cid | num | 直播间id | | +| g_qn_desc | array | 清晰度列表 | | +| stream | array | 直播流信息 | | +| p2p_data | obj | | | +| dolby_qn | | | | + +`g_qn_desc`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|-----|-------|-----------------| +| qn | num | 清晰度代码 | [清晰度代码](#清晰度代码) | +| desc | str | 清晰度描述 | | +| hdr_desc | str | | | +| attr_desc | | | | + +`stream`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|---------------|-------|------|-----| +| protocol_name | str | 协议名 | | +| format | array | 格式列表 | | + +`format`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-------------|-------|------|-----| +| format_name | str | 格式名 | | +| codec | array | 编码列表 | | + +`codec`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|------------|-------|-----------|-----------------| +| codec_name | str | 编码名 | | +| current_qn | num | 当前清晰度编码 | [清晰度代码](#清晰度代码) | +| accept_qn | array | 可用清晰度编码列表 | [清晰度代码](#清晰度代码) | +| base_url | str | 播放源路径 | | +| url_info | array | 域名信息列表 | | +| hdr_qn | null | | | +| dolby_type | num | | | +| attr_name | str | | | + +`url_info`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|------------|-----|-------|-----| +| host | str | 域名 | | +| extra | str | URL参数 | | +| stream_ttl | num | | | + +`p2p_data`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|------|-----|-----| +| p2p | bool | | | +| p2p_type | num | | | +| m_p2p | bool | | | +| m_servers | null | | | + +**示例:** + +查询room_id=3的直播间信息 + +```shell +curl -L -X GET 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?room_id=3&protocol=0,1&format=0,1,2&codec=0,1&qn=10000' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "room_id": 23058, + "short_id": 3, + "uid": 11153765, + "is_hidden": false, + "is_locked": false, + "is_portrait": false, + "live_status": 1, + "hidden_till": 0, + "lock_till": 0, + "encrypted": false, + "pwd_verified": true, + "live_time": 1671425336, + "room_shield": 1, + "all_special_types": [], + "playurl_info": { + "conf_json": "{\"cdn_rate\":10000,\"report_interval_sec\":150}", + "playurl": { + "cid": 23058, + "g_qn_desc": [ + { + "qn": 30000, + "desc": "杜比", + "hdr_desc": "", + "attr_desc": null + }, + { + "qn": 20000, + "desc": "4K", + "hdr_desc": "", + "attr_desc": null + }, + { + "qn": 10000, + "desc": "原画", + "hdr_desc": "", + "attr_desc": null + }, + { + "qn": 400, + "desc": "蓝光", + "hdr_desc": "HDR", + "attr_desc": null + }, + { + "qn": 250, + "desc": "超清", + "hdr_desc": "HDR", + "attr_desc": null + }, + { + "qn": 150, + "desc": "高清", + "hdr_desc": "", + "attr_desc": null + }, + { + "qn": 80, + "desc": "流畅", + "hdr_desc": "", + "attr_desc": null + } + ], + "stream": [ + { + "protocol_name": "http_stream", + "format": [ + { + "format_name": "flv", + "codec": [ + { + "codec_name": "avc", + "current_qn": 10000, + "accept_qn": [ + 10000, + 150 + ], + "base_url": "/live-bvc/462997/live_11153765_9369560.flv?", + "url_info": [ + { + "host": "https://cn-hbcd-cu-02-20.bilivideo.com", + "extra": "expires=1674103815&pt=web&deadline=1674103815&len=0&oi=1963941079&platform=web&qn=10000&trid=1000061f434c07ac4f4184820bfb141e75e8&uipk=100&uipv=100&nbs=1&uparams=cdn,deadline,len,oi,platform,qn,trid,uipk,uipv,nbs&cdn=cn-gotcha01&upsig=f494aa9e92e24943061fe5082494ec44&sk=33541455720f64c7671bc1480acfb176&p2p_type=1&src=57345&sl=1&free_type=0&sid=cn-hbcd-cu-02-20&chash=1&sche=ban&score=12&pp=rtmp&machinezone=jd&source=onetier&trace=0&site=92e80b6f3ebfd393e7d1c1e2e648d9c1&order=1", + "stream_ttl": 3600 + } + ], + "hdr_qn": null, + "dolby_type": 0, + "attr_name": "" + } + ] + } + ] + }, + { + "protocol_name": "http_hls", + "format": [ + { + "format_name": "ts", + "codec": [ + { + "codec_name": "avc", + "current_qn": 10000, + "accept_qn": [ + 10000, + 150 + ], + "base_url": "/live-bvc/462997/live_11153765_9369560.m3u8?", + "url_info": [ + { + "host": "https://cn-hbcd-cu-02-20.bilivideo.com", + "extra": "expires=1674103815&len=0&oi=1963941079&pt=web&qn=10000&trid=1003061f434c07ac4f4184820bfb141e75e8&sigparams=cdn,expires,len,oi,pt,qn,trid&cdn=cn-gotcha01&sign=4f9bcec18e3afdca04b31ffb285ec915&sk=33541455720f64c7671bc1480acfb176&p2p_type=1&src=57345&sl=1&free_type=0&sid=cn-hbcd-cu-02-20&chash=1&sche=ban&score=12&pp=rtmp&machinezone=jd&source=onetier&trace=0&site=92e80b6f3ebfd393e7d1c1e2e648d9c1&order=1", + "stream_ttl": 3600 + } + ], + "hdr_qn": null, + "dolby_type": 0, + "attr_name": "" + } + ] + }, + { + "format_name": "fmp4", + "codec": [ + { + "codec_name": "avc", + "current_qn": 10000, + "accept_qn": [ + 10000, + 150 + ], + "base_url": "/live-bvc/462997/live_11153765_9369560/index.m3u8?", + "url_info": [ + { + "host": "https://cn-hbcd-cu-02-20.bilivideo.com", + "extra": "expires=1674103815&len=0&oi=1963941079&pt=web&qn=10000&trid=1007061f434c07ac4f4184820bfb141e75e8&sigparams=cdn,expires,len,oi,pt,qn,trid&cdn=cn-gotcha01&sign=cc57dce528316d8389f2f34e7bd15f5c&sk=a99391b8b4d5779b2e32e41dbc989d2d&flvsk=33541455720f64c7671bc1480acfb176&p2p_type=1&src=57345&sl=1&free_type=0&sid=cn-hbcd-cu-02-20&chash=1&sche=ban&bvchls=1&score=12&pp=rtmp&machinezone=jd&source=onetier&trace=0&site=92e80b6f3ebfd393e7d1c1e2e648d9c1&order=1", + "stream_ttl": 3600 + }, + { + "host": "https://c1--cn-gotcha208.bilivideo.com", + "extra": "expires=1674103815&len=0&oi=1963941079&pt=web&qn=10000&trid=1007061f434c07ac4f4184820bfb141e75e8&sigparams=cdn,expires,len,oi,pt,qn,trid&cdn=cn-gotcha208&sign=2ff96adf5056c8dbee546955260fc2df&sk=a99391b8b4d5779b2e32e41dbc989d2d&p2p_type=1&src=57345&sl=1&free_type=0&pp=rtmp&machinezone=jd&source=onetier&trace=0&site=92e80b6f3ebfd393e7d1c1e2e648d9c1&order=2", + "stream_ttl": 3600 + } + ], + "hdr_qn": null, + "dolby_type": 0, + "attr_name": "" + } + ] + } + ] + } + ], + "p2p_data": { + "p2p": true, + "p2p_type": 1, + "m_p2p": false, + "m_servers": null + }, + "dolby_qn": null + } + } + } +} +``` + +
\ No newline at end of file