bilibili-API-collect/docs/live/info.md
2023-02-23 11:48:58 +08:00

34 KiB
Raw Blame History

直播间基本信息

获取直播间信息

https://api.live.bilibili.com/room/v1/Room/get_info

请求方式: GET

URL参数

参数名 类型 内容 必要性 备注
room_id num 直播间号 必要 可以为短号

json回复

根对象:

字段 类型 内容 备注
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
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对象:

字段 类型 内容 备注
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 描述

studio_info对象:

字段 类型 内容 备注
status num
master_list array

示例:

查询直播间room_id=1信息

curl -G 'https://api.live.bilibili.com/room/v1/Room/get_info' \
--data-urlencode 'room_id=1'
查看响应示例:
{
  "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": []
    }
  }
}

获取用户对应的直播间状态

https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld

请求方式GET

url参数

参数名 类型 内容 必要性 备注
mid num 目标用户mid 必要

json回复

根对象:

字段 类型 内容 备注
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

示例:

查询用户mid=322892的直播间信息

curl -G 'https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld' \
--data-urlencode 'mid=322892'
查看响应示例:
{
  "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
  }
}

获取房间页初始化信息

https://api.live.bilibili.com/room/v1/Room/room_init

请求方式GET

url参数

参数名 类型 内容 必要性 备注
id num 目标直播间号(短号) 必要

json回复

根对象:

字段 类型 内容 备注
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拜年祭直播间

示例:

查询直播间id=76的直播间信息

curl -G 'https://api.live.bilibili.com/room/v1/Room/room_init' \
--data-urlencode 'id=76'
查看响应示例:
{
  "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
  }
}

获取主播信息

https://api.live.bilibili.com/live_user/v1/Master/info

请求方式GET

url参数

参数名 类型 内容 必要性 备注
uid num 目标用户mid 必要

json回复

根对象:

字段 类型 内容 备注
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对象:

字段 类型 内容 备注
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 主播认证信息

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的主播信息

curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \
--data-urlencode 'uid=2'
查看响应示例:
{
  "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": ""
    }
  }
}

批量查询直播间状态

https://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成功
-111csrf校验失败
message str 错误信息 默认为success
msg str 错误信息 默认为success
ttl num 1
data obj 信息本体

data对象:

字段 类型 内容 备注
uid str 直播间信息 实际字段为主播mid

uid对象:

字段 类型 内容 备注
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手机直播

示例:

查询用户`mid=672328094的直播间信息

# GET方式
curl -G 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids'
--data-urlencode 'uids[]=672328094'

# POST方式
curl 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' \
-H "Content-Type: application/json" \
-d "{\"uids\": [672328094]}" 
查看响应示例:
{
  "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 直播协议 必要 0http_stream
1http_hls
可多选, 使用英文逗号分隔
format str 格式 必要 0flv
1ts
2fmp4
可多选, 使用英文逗号分隔
codec str 编码格式 必要 0AVC
1HEVC
可多选, 使用英文逗号分隔
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 是否通过密码验证 encryptedtrue时才有意义
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的直播间信息

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'
查看响应示例:
{
  "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
      }
    }
  }
}