Skip to content

Latest commit

 

History

History
961 lines (818 loc) · 34 KB

info.md

File metadata and controls

961 lines (818 loc) · 34 KB

直播间基本信息

获取直播间信息

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:成功
-111:csrf校验失败
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 直播协议 必要 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 是否通过密码验证 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
      }
    }
  }
}