更新直播间管理,添加直播回放,更新直播信息流 (#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>
This commit is contained in:
pskdje 2025-06-26 17:45:58 +08:00 committed by GitHub
parent c9359d1987
commit 438425a282
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 2380 additions and 61 deletions

View File

@ -259,6 +259,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC少部分接
- [ ] [直播流水](docs/live/live_bill.md)
- [ ] [礼物相关](docs/live/gift.md)
- [ ] [大航海/粉丝团](docs/live/guard.md)
- [ ] [直播回放](docs/live/live_replay.md)
- [ ] [活动](docs/activity)
- [ ] [活动列表](docs/activity/list.md)
- [ ] [活动主题信息](docs/activity/info.md)

View File

@ -408,10 +408,10 @@ curl 'https://api.live.bilibili.com/xlive/web-room/v1/dM/AjaxSetConfig' \
| bubble | num | (?) | 非必要 | 值为`0` |
| room\_type | num | (?) | 非必要 | `0` |
| jumpfrom | num | (?) | 非必要 | `0` |
| reply\_mid | num | (?) | 非必要 | `0` |
| reply\_mid | num | 要“@”的用户mid | 非必要 | 默认为`0` |
| reply\_attr | num | (?) | 非必要 | `0` |
| reply\_uname | str | (?) | 非必要 | `""` |
| replay\_dmid | str | (?) | 非必要 | `""` |
| reply\_uname | str | 要“@”的用户名称 | 非必要 | 默认为`""`提供reply\_mid时不需要提供 |
| replay\_dmid | str | 要回复的弹幕id | 非必要 | 默认为`""` |
| statistics | str | (?) | 非必要 | `{"appId":100,"platform":5}` |
| csrf_token | str | 同csrf | 非必要 | |

1269
docs/live/live_replay.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -274,7 +274,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| -------- | ---- | ------------------------ | ------ | ----------------------------------- |
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| area_v2 | num | 直播分区id子分区id | 必要 | 详见[直播分区](live_area.md) |
| platform | str | 直播平台 | 必要 | 直播姬pcpc_link<br />web在线直播web_link<br />bililinkandroid_link |
| platform | str | 直播平台 | 必要 | 直播姬pcpc_link<br />web在线直播web_link(已下线)<br />bililinkandroid_link |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
@ -283,7 +283,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />65530token错误登录错误<br />1错误<br />60009分区不存在<br />60024: 目标分区需要人脸认证<br />60013非常抱歉您所在的地区受实名认证限制无法开播<br />**(其他错误码有待补充)** |
| code | num | 返回值 | 0成功<br />65530token错误登录错误<br />1错误<br />60009分区不存在<br />60013非常抱歉您所在的地区受实名认证限制无法开播<br />60024: 目标分区需要人脸认证<br />60037: web 在线开播已下线<br />**(其他错误码有待补充)** |
| msg | str | 错误信息 | 默认为空 |
| message | str | 错误信息 | 默认为空 |
| data | obj | 信息本体 | |
@ -296,7 +296,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| status | str | 直播间状态 | `LIVE` |
| room_type | num | 0 | 作用尚不明确 |
| rtmp | obj | RTMP推流地址信息 | |
| protocols | array | | 作用尚不明确 |
| protocols | array | 推流协议、地址、密钥等信息<br />其中地址、密钥与 `rtmp` 字段的内容是一致的 | 协议只见到过 `rtmp` |
| try_time | str | | 作用尚不明确 |
| live_key | str | 标记直播场次的key | |
| sub_session_key | str | 信息变动标识 | |
@ -314,23 +314,23 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| addr | str | RTMP推流发送地址 | **重要** |
| code | str | RTMP推流参数密钥 | **重要** |
| new_link | str | 获取CDN推流ip地址重定向信息的url | 没啥用 |
| provider | str | | 作用尚不明确 |
| provider | str | 推流云服务节点厂商 | `txy`: 腾讯云 |
`data`中的`protocols`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------ | ------------ |
| 0 | obj | | 作用尚不明确 |
| 0 | obj | `rtmp` 字段在地址和密钥上相同的推流协议信息 | |
`data`中的`protocols`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------------------------------- | ------------ |
| protocol | str | rtmp | 作用尚不明确 |
| addr | str | RTMP推流发送地址 | |
| code | str | RTMP推流参数密钥 | |
| 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 | 作用尚不明确 |
| provider | str | 推流云服务节点厂商 | `txy`: 腾讯云 |
`data`中的`notice`对象:
@ -480,6 +480,121 @@ curl 'https://api.live.bilibili.com/room/v1/Room/stopLive' \
</details>
## 预更新直播间信息
> 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 | 平台标识 | 必要 | 似乎可随意提供<br />网页端: web |
| mobi_app | str | 平台标识? | 必要 | 似乎可随意提供<br />网页端: web |
| build | num | 构建标识? | 必要 | 建议取`1`,似乎可随意提供 |
| cover | str | 直播封面链接 | 非必要 | 图片链接需要在`.hdslb.com`域名下 |
| title | str | 直播间标题 | 非必要 | 参见[更新直播间信息](#更新直播间信息)的title参数 |
| coverVertical | str | (?) | 非必要 | 作用尚不明确 |
| liveDirectionType | num | (?) | 非必要 | `1` |
| visit_id | str | (?) | 非必要 | `""` |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| code | num | 返回值 | 0: 成功<br />1: 错误<br />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 | 标题审核提示 | |
**示例:**
更新直播间封面
```shell
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'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data":{
"audit_info":{
"audit_title": "",
"audit_title_status": 0,
"audit_title_reason": ""
}
}
}
```
</details>
使用此接口更新直播间标题
```shell
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'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data":{
"audit_info":{
"audit_title": "你好你好,我是花火~咱们来找点乐子吧?小灰毛,不要害羞嘛,要大胆的来,一起欢愉吧",
"audit_title_status": 2,
"audit_title_reason": "先发后审"
}
}
}
```
</details>
## 更新直播间公告

File diff suppressed because it is too large Load Diff