bilibili-API-collect/docs/live/manage.md
pskdje 438425a282
更新直播间管理,添加直播回放,更新直播信息流 (#1298)
* docs: 更新对直播间开播请求返回的字段的描述及备注

* fix: 修改错误的 `pflag` 说明

* 添加直播回放相关接口

添加记录: https://github.com/pskdje/bilibili-API-collect/pull/6

* feat:添加 直播回放 链接

* feat: 给L1163添加code值,添加移动端片段发布页面

添加投稿直播回放的code
给直播回放片段发布页面添加移动端的链接

* feat: 添加和更新直播信息流cmd

部分信息来着: https://github.com/SocialSisterYi/bilibili-API-collect/issues/1220

- 调整弹幕info[0][15]某个代码块的语言信息
- 添加交互合并的101和103类型
* 添加GOTO_BUY_FLOW和HOT_BUY_NUM
* 添加WEALTH_NOTIFY
* 添加VOICE_JOIN_SWITCH
* 添加USER_PANEL_RED_ALARM和GIFT_BOARD_RED_DOT
* 添加 粉丝勋章 相关cmd
* 添加 WIDGET_WISH_INFO 信息
- 添加PLAYTOGETHER_ICON_CHANGE、FANS_CLUB_POKE_GIFT_NOTICE、master_qn_strategy_chg
* 添加和更新 用户进场特效
* 调整INTERACT_WORD相关文本

* feat: 更新获取信息流认证的参数,调整投稿直播回放片段

为 获取信息流认证秘钥 添加URL参数,同时更新示例
调整 投稿直播回放片段 的正文参数,为json回复加备注

* feat: 更新发送弹幕3个参数的描述

https://github.com/SocialSisterYi/bilibili-API-collect/issues/1236#issuecomment-2943228254

* feat: 调整直播回放部分参数的描述

re

* feat: 添加 预更新直播间信息 接口,调整开始直播的信息

关联issue: https://github.com/SocialSisterYi/bilibili-API-collect/issues/1310

开播接口的平台和pflag的关联写于 https://github.com/SocialSisterYi/bilibili-API-collect/discussions/1312
由于缺少测试资料,已放弃更新相关信息。

* feat: 修正冲突合并问题

莫生气,莫生气,生气没人心疼你,气了bug也还在。

---------

Co-authored-by: Pesy Wu <GamerNoTitle@outlook.com>
2025-06-26 17:45:58 +08:00

21 KiB
Raw Blame History

直播间管理

开通直播间

https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom

请求方式POST

认证方式CookieSESSDATA

鉴权方式Cookie中bili_jct的值正确并与csrf相同

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
platform str 客户端? 必要 默认值web
visit_id str 未知 默认空
csrf str CSRF Token位于cookie 必要
csrf_token str CSRF Token位于 cookie

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
1531193016已经创建直播间~
-400请求错误
ttl str 错误信息 默认为1
message str 错误信息 默认为0
data array 信息本体

data对象:

字段 类型 内容 备注
roomID str 直播间房间号 创建成功返回直播间号

示例:

开通直播间

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom' \
--data-urlencode 'platform=web' \
--data-urlencode 'visit_id=' \
--data-urlencode 'csrf=xxx' \
--data-urlencode 'csrf_token=xxx' \
-b 'SESSDATA=xxx;bili_jct=xx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "roomID": "1234"
  }
}
{
  "code": 1531193016,
  "message": "已经创建直播间~",
  "ttl": 1,
  "data": {
    "roomID": ""
  }
}

更新直播间信息

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

请求方式POST

认证方式CookieSESSDATA

鉴权方式Cookie中bili_jct的值正确并与csrf相同

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
csrf str CSRF Token位于cookie 必要
csrf_token str CSRF Token位于 cookie 非必要
platform str 平台标识 非必要
visit_id str (?) 非必要 某种标识?
room_id num 直播间id 必要 必须为自己的直播间id
title str 直播间标题 非必要 上限40个字符
area_id num 直播分区id子分区id 非必要 详见直播分区
add_tag str 要添加的标签 非必要 开播设置界面上限10个字符
del_tag str 要删除的标签 非必要 若存在add_tag时不起作用

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-1操作太频繁
1错误
3未登录或鉴权失败
405不允许的请求方法
60009分区已下线
65530token错误登录错误
msg str 错误信息 默认为ok
message str 错误信息 默认为ok
data obj 信息本体 部分失败情况下是[](空数组)

data对象:

字段 类型 内容 备注
sub_session_key str 信息变动标识
audit_info obj 标题审核信息

data中的audit_info对象:

字段 类型 内容 备注
audit_title_reason str 标题审核提示
audit_title_status num 标题审核状态
audit_title str 被审核的标题 更新标题时存在
update_title str "" 作用尚不明确

示例:

修改直播间10352053标题为测试

curl 'https://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'
查看响应示例:
{
  "code":0,
  "msg":"ok",
  "message":"ok",
  "data":{
    "sub_session_key":"",
    "audit_info":{
      "audit_title_reason":"先发后审",
      "update_title":"",
      "audit_title_status":2,
      "audit_title":"测试"
    }
  }
}

修改直播间10352053分区为40

curl 'https://api.live.bilibili.com/room/v1/Room/update' \
  --data-urlencode 'room_id=10352053' \
  --data-urlencode 'area_id=40' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xx'
查看响应示例:
{
  "code": 0,
  "msg": "ok",
  "message": "ok",
  "data": {
    "sub_session_key": "",
    "audit_info": {
      "audit_title_reason": "",
      "update_title": "",
      "audit_title_status": 0
    }
  }
}

给直播间11996900添加一个标签为测试标签

curl 'https://api.live.bilibili.com/room/v1/Room/update' \
  --data-urlencode 'room_id=11996900' \
  --data-urlencode 'add_tag=测试标签' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "msg": "ok",
  "message": "ok",
  "data": {
    "sub_session_key": "",
    "audit_info": {
      "audit_title_reason": "",
      "update_title": "",
      "audit_title_status": 0
    }
  }
}

给直播间11996900删除内容为测试标签的标签

curl 'https://api.live.bilibili.com/room/v1/Room/update' \
  --data-urlencode 'room_id=11996900' \
  --data-urlencode 'del_tag=测试标签' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "msg": "ok",
  "message": "ok",
  "data": {
    "sub_session_key": "",
    "audit_info": {
      "audit_title_reason": "",
      "update_title": "",
      "audit_title_status": 0
    }
  }
}

开始直播

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

请求方式POST

认证方式CookieSESSDATA

鉴权方式Cookie中bili_jct的值正确并与csrf相同

开播时必须有分区选择,开播后返回推流地址

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
room_id num 直播间id 必要 必须为自己的直播间id
area_v2 num 直播分区id子分区id 必要 详见直播分区
platform str 直播平台 必要 直播姬pcpc_link
web在线直播web_link已下线
bililinkandroid_link
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
65530token错误登录错误
1错误
60009分区不存在
60013非常抱歉您所在的地区受实名认证限制无法开播
60024: 目标分区需要人脸认证
60037: web 在线开播已下线
(其他错误码有待补充)
msg str 错误信息 默认为空
message str 错误信息 默认为空
data obj 信息本体

data对象:

字段 类型 内容 备注
change num 是否改变状态 0未改变
1改变
status str 直播间状态 LIVE
room_type num 0 作用尚不明确
rtmp obj RTMP推流地址信息
protocols array 推流协议、地址、密钥等信息
其中地址、密钥与 rtmp 字段的内容是一致的
协议只见到过 rtmp
try_time str 作用尚不明确
live_key str 标记直播场次的key
sub_session_key str 信息变动标识
notice obj 作用尚不明确
qr str "" 作用尚不明确
need_face_auth bool 需要人脸识别? 作用尚不明确
service_source str 作用尚不明确
rtmp_backup null 作用尚不明确
up_stream_extra obj 主播推流额外信息?

data中的rtmp对象:

字段 类型 内容 备注
addr str RTMP推流发送地址 重要
code str RTMP推流参数密钥 重要
new_link str 获取CDN推流ip地址重定向信息的url 没啥用
provider str 推流云服务节点厂商 txy: 腾讯云

data中的protocols数组:

类型 内容 备注
0 obj rtmp 字段在地址和密钥上相同的推流协议信息

data中的protocols数组中的对象:

字段 类型 内容 备注
protocol str rtmp 推流协议
addr str RTMP推流发送地址 格式为 rtmp://<推流节点>/live-bvc/
code str RTMP推流参数密钥 格式为 ?streamname=live_<B站UID>_<未知数字>&key=<密钥>&schedule=rtmp&pflag=<开播平台标志>
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 作用尚不明确

data中的up_stream_extra对象:

字段 类型 内容 备注
isp str 主播的互联网服务提供商

示例:

27作为分区id开播直播间10352053

其中"data"."rtmp"."addr"为推流地址

"data"."rtmp"."code"为推流参数

curl 'https://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'
查看响应示例:
{
  "code": 0,
  "data":{
    "change": 1,
    "status": "LIVE",
    "try_time": "0000-00-00 00:00:00",
    "room_type": 0,
    "live_key": "608336837537435443",
    "sub_session_key": "608336837537435443sub_time:1747292297",
    "rtmp":{
      "type": 1,
      "addr": "rtmp://live-push.bilivideo.com/live-bvc/",
      "code": "?streamname=live_348892132_32373699\u0026key=e03061d4a7529d8eaa322dc4d330ca1c\u0026schedule=rtmp\u0026pflag=11",
      "new_link": "https://core.bilivideo.com/video/uplinkcore/selfbuild/schedule?up_rtmp=live-push.bilivideo.com%2Flive-bvc%2F%3Fstreamname%3Dlive_348892132_32373699%26key%3De73061d8a7539d8eaa233dc4d880ca1c%26schedule%3Drtmp%26pflag%3D11\u0026edge=edge",
      "provider": "live"
    },
    "protocols":[
      {
        "protocol": "rtmp",
        "addr": "rtmp://live-push.bilivideo.com/live-bvc/","code":"?streamname=live_348892132_32373699\u0026key=e73061d4a1002d8eaa322dc4d880ca1c\u0026schedule=rtmp\u0026pflag=11",
        "new_link": "https://core.bilivideo.com/video/uplinkcore/selfbuild/schedule?up_rtmp=live-push.bilivideo.com%2Flive-bvc%2F%3Fstreamname%3Dlive_348892132_32373699%26key%3De10298d4a7539d8eaa322dc4d220ca1c%26schedule%3Drtmp%26pflag%3D11\u0026edge=edge",
        "provider": "txy"
      }
    ],
    "notice":{
      "type": 1,
      "status": 0,
      "title": "",
      "msg": "",
      "button_text": "",
      "button_url": ""
    },
    "qr": "",
    "need_face_auth": false,
    "service_source": "live-streaming",
    "rtmp_backup": null,
    "up_stream_extra":{
      "isp": "电信"
    }
  },
  "message": "",
  "msg": ""
}

关闭直播

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

请求方式POST

认证方式CookieSESSDATA

鉴权方式Cookie中bili_jct的值正确并与csrf相同

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
room_id num 直播间id 必要 必须为自己的直播间id
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
65530token错误登录错误
-400没有权限
(其他错误码有待补充)
msg str 错误信息 默认为空
message str 错误信息 默认为空
data obj 信息本体

data对象:

字段 类型 内容 备注
change num 是否改变状态 0未改变
1改变
status str 直播间状态 PREPARINGROUND

示例:

关闭直播间10352053的直播

curl 'https://api.live.bilibili.com/room/v1/Room/stopLive' \
  --data-urlencode 'room_id=10352053' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
    "code": 0,
    "msg": "",
    "message": "",
    "data": {
        "change": 1,
        "status": "PREPARING"
    }
}

预更新直播间信息

https://api.live.bilibili.com/xlive/app-blink/v1/preLive/UpdatePreLiveInfo

请求方法: POST

认证方式CookieSESSDATA

鉴权方式Cookie中bili_jct的值正确并与csrf相同

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
csrf str CSRF Token位于cookie 必要
csrf_token str CSRF Token位于cookie 必要
platform str 平台标识 必要 似乎可随意提供
网页端: web
mobi_app str 平台标识? 必要 似乎可随意提供
网页端: web
build num 构建标识? 必要 建议取1,似乎可随意提供
cover str 直播封面链接 非必要 图片链接需要在.hdslb.com域名下
title str 直播间标题 非必要 参见更新直播间信息的title参数
coverVertical str (?) 非必要 作用尚不明确
liveDirectionType num (?) 非必要 1
visit_id str (?) 非必要 ""

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0: 成功
1: 错误
100402: 图片地址不合法
message str 错误信息 成功时为"0"
ttl num 1
data obj 内容本体

data对象:

字段 类型 内容 备注
audit_info obj 审核信息

data.audit_info对象:

字段 类型 内容 备注
audit_title str 被审核的标题
audit_title_status num 标题审核状态
audit_title_reason str 标题审核提示

示例:

更新直播间封面

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/UpdatePreLiveInfo' \
  --data-urlencode 'platform=web' \
  --data-urlencode 'mobi_app=web' \
  --data-urlencode 'build=1' \
  --data-urlencode 'cover=https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data":{
    "audit_info":{
      "audit_title": "",
      "audit_title_status": 0,
      "audit_title_reason": ""
    }
  }
}

使用此接口更新直播间标题

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/UpdatePreLiveInfo' \
  --data-urlencode 'platform=web' \
  --data-urlencode 'mobi_app=web' \
  --data-urlencode 'build=1' \
  --data-urlencode 'title=你好你好,我是花火~咱们来找点乐子吧?小灰毛,不要害羞嘛,要大胆的来,一起欢愉吧' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data":{
    "audit_info":{
      "audit_title": "你好你好,我是花火~咱们来找点乐子吧?小灰毛,不要害羞嘛,要大胆的来,一起欢愉吧",
      "audit_title_status": 2,
      "audit_title_reason": "先发后审"
    }
  }
}

更新直播间公告

https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews

请求方式POST

认证方式CookieSESSDATA

鉴权方式Cookie中bili_jct的值正确并与csrf相同

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
room_id num 直播间id 必要 必须为自己的直播间id
uid num 用户id 必要
content str 公告内容 必要 最大60个字符,可以为空
csrf str CSRF Token位于cookie 必要
csrf_token str CSRF Token位于 cookie

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
65530token错误登录错误
1错误
data array
message str 错误信息 默认为ok
ttl num 1 作用尚不明确

示例:

修改直播间11996900公告为测试修改公告

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews' \
--data-urlencode 'room_id=11996900' \
--data-urlencode 'uid=306903238' \
--data-urlencode 'content=测试修改公告' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {}
}