From 4a6143012cc43dd6f272976920a829fa49b42889 Mon Sep 17 00:00:00 2001 From: pskdje <77605497+pskdje@users.noreply.github.com> Date: Fri, 8 Aug 2025 14:33:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=92=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=9B=B4=E6=92=AD=E5=9B=9E=E6=94=BE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 变更信息参见: https://github.com/SocialSisterYi/bilibili-API-collect/issues/1361 --- docs/live/live_replay.md | 389 ++++++++++++++++++++++++++++----------- 1 file changed, 283 insertions(+), 106 deletions(-) diff --git a/docs/live/live_replay.md b/docs/live/live_replay.md index 0bad582..a2d1f03 100644 --- a/docs/live/live_replay.md +++ b/docs/live/live_replay.md @@ -40,6 +40,7 @@ | pagination | obj | 分页信息 | | | archive_flag | bool | (?) | 作用尚不明确 | | can\_edit | num | (?) | 作用尚不明确 | +| can_upload | bool | (?) | 作用尚不明确 | `data.replay_info` 数组中的对象: @@ -486,7 +487,7 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/DeleteSliceDr | 字段 | 类型 | 内容 | 备注 | | --- | --- | --- | --- | -| code | num | 返回值 | -101:未登录
-111:csrf校验失败
0:成功
100:非法参数
210:回放id或场次key无效 | +| code | num | 返回值 | -101:未登录
-111:csrf校验失败
0:成功
100:非法参数
210:回放id或场次key无效
217:未找到直播录像 | | message | str | 错误信息 | 成功时为`"0"` | | ttl | num | `1` | | | data | obj | 信息本体 | | @@ -770,6 +771,7 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVide | 字段 | 类型 | 内容 | 备注 | | --- | --- | --- | --- | | list | arr | 直播回放视频列表 | 如果该场回放没有视频流将为`null` | +| ban_list | null | 不可发布的回放列表? | [需要验证] | `data.list` 数组中的对象: @@ -817,7 +819,8 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetSliceStrea "stream": "https://bvc-live.bilivideo.com/hls-record-gateway/videoPlay?biz_id=live2vod-clip&end_time=1746879298&header_name=1746863105.m4s&host_id=edge-hls-bvc-self-cn-jsyz-ct-03-59-6d854b4bd8-gnlb7&no_end=0&schema=https&sign=70929627354f4380b54b97fcdb69c8a2&start_time=1746879269&stream_name=live_438160221_32373699&ts=1752930893&version=2", "type": 2 } - ] + ], + "ban_list": null } } ``` @@ -862,6 +865,7 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetSliceStrea | max_value | num | (?) | 效果未知 | | high_light_data | arr | 高光时刻数据 | | | ass_url | str | ASS字幕链接 | 用作弹幕显示 | +| high_light_stat | obj | 高亮状态信息 | | `data.session_data` 数组中的对象: @@ -882,6 +886,15 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetSliceStrea | cover | str | (?) | 目前为`""` | | extra | str | (?) | 目前为`""` | +`data.high_light_stat` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| original_hl | num | “高光时刻”数量 | 有“高光时刻”时存在 | +| manual_hl | num | “已保存”数量 | 有“已保存”时存在,调用[手动保存高亮片段](#手动保存高亮片段)进行保存 | + +注: 可能还存在一个“回溯录制”的字段。 + **示例:** 获取场次key为`607113721045847859`的会话数据 @@ -902,144 +915,241 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetLiveSessio "data": { "session_data": [ { - "ts": 1746863100, + "ts": 1752927300, "value": 0 }, { - "ts": 1746863160, + "ts": 1752927360, "value": 0 }, { - "ts": 1746863220, + "ts": 1752927420, + "value": 0 + }, + // 省略掉大部分重复内容 + { + "ts": 1752946620, "value": 0 }, { - "ts": 1746863280, + "ts": 1752946680, "value": 0 }, { - "ts": 1746863340, - "value": 0 - }, - { - "ts": 1746863400, - "value": 0 - }, - { - "ts": 1746863460, - "value": 0 - }, - { - "ts": 1746863520, - "value": 0 - }, - { - "ts": 1746863580, - "value": 0 - }, - { - "ts": 1746863640, - "value": 0 - }, - { - "ts": 1746863700, - "value": 0 - }, - { - "ts": 1746863760, - "value": 0 - }, - { - "ts": 1746863820, - "value": 0 - }, - // 省略100多条数据 - { - "ts": 1746878520, - "value": 0 - }, - { - "ts": 1746878580, - "value": 0 - }, - { - "ts": 1746878640, - "value": 0 - }, - { - "ts": 1746878700, - "value": 0 - }, - { - "ts": 1746878760, - "value": 0 - }, - { - "ts": 1746878820, - "value": 0 - }, - { - "ts": 1746878880, - "value": 0 - }, - { - "ts": 1746878940, - "value": 0 - }, - { - "ts": 1746879000, - "value": 0 - }, - { - "ts": 1746879060, - "value": 0 - }, - { - "ts": 1746879120, - "value": 0 - }, - { - "ts": 1746879180, - "value": 0 - }, - { - "ts": 1746879240, + "ts": 1752946740, "value": 0 } ], - "max_danmaku": 1746864660, - "max_pcu": 1746864660, + "max_danmaku": 1752928860, + "max_pcu": 1752928200, "max_value": 0, "high_light_data": [ { - "id": 6226272, + "id": 9628113, "type": 1, - "start_time": 1746873300, - "end_time": 1746873480, + "start_time": 1752928860, + "end_time": 1752929040, "title": "弹幕高光 Top 1", "cover": "", "extra": "" }, { - "id": 6226274, + "id": 9628114, "type": 1, - "start_time": 1746873120, - "end_time": 1746873420, + "start_time": 1752938460, + "end_time": 1752938640, "title": "弹幕高光 Top 2", "cover": "", "extra": "" }, { - "id": 6226271, + "id": 9628115, + "type": 1, + "start_time": 1752938040, + "end_time": 1752938220, + "title": "弹幕高光 Top 3", + "cover": "", + "extra": "" + }, + { + "id": 9628112, "type": 2, - "start_time": 1746864600, - "end_time": 1746864780, + "start_time": 1752928140, + "end_time": 1752928320, "title": "进房高光时刻", "cover": "", "extra": "" } ], - "ass_url": "https://jssz-boss.hdslb.com/live2arc_anchor_video/dmass_1899237171_607113721045847859.ass?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=y4zI4XTQzlOkmSKg%2F20250520%2Fjssz%2Fs3%2Faws4_request&X-Amz-Date=20250520T130358Z&X-Amz-Expires=7200&X-Amz-SignedHeaders=host&X-Amz-Signature=5e3ddfbcb8893dc6e76deea7981165e18e5df9a7579f4e6e97c7a32abec53d84" + "ass_url": "https://jssz-boss.hdslb.com/live2arc_anchor_video/dmass_1899237171_625727121464233779.ass?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=y4zI4XTQzlOkmSKg%2F20250802%2Fjssz%2Fs3%2Faws4_request\u0026X-Amz-Date=20250802T072504Z\u0026X-Amz-Expires=7200\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=384b42382469059a1f4c6b04c7bd2290a0c74c01375df1681eedb3ba8aca5c3c", + "high_light_stat": { + "original_hl": 4, + "manual_hl": 6 + } + } +} +``` + + + +## 获取用户高光列表 + +> https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserGetManualHighlightList + +*请求方法: GET* + +认证方式: Cookie (SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----- | --- | ---- | ----- | --- | +| live_key | str | 标记直播场次的key | 必要 | | +| manual_type | num | 查询类型 | 必要 | 1:回溯录制
2:已保存片段 | +| web_location | str | (?) | 非必要 | 作用尚不明确 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| code | num | 返回值 | -400:请求错误
-101:未登录
0:成功 | +| message | str | 错误信息 | 成功时为`"0"` | +| ttl | num | `1` | | +| data | obj | 信息本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| high_light_stat | obj | 高亮状态信息 | | +| manual_highlight_list | arr | 高光列表 | 有内容时存在 | + +`data.manual_highlight_list` 数组: + +| 索引 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| 0 | obj | 第一条高光信息 | 最少存在1条,目前没有高光内容将看不到这个数组 | +| … | obj | 某一条高光信息 | | +| i | obj | 最后一条高光信息 | | + +`data.manual_highlight_list` 数组中对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| manual_id | num | 片段id | | +| highlight_title | str | 片段标题 | | +| start_ts | num | 开始时间戳 | Unix 秒时间戳 | +| end_ts | num | 结束时间戳 | Unix 秒时间戳 | +| uid | num | 保存者uid? | | +| ruid | num | 主播uid | | +| live_key | str | 标记直播场次的key | | + +`data.high_light_stat` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| original_hl | num | “高光时刻”数量 | 有“高光时刻”时存在 | +| manual_hl | num | “已保存”数量 | 有“已保存”时存在,调用[手动保存高亮片段](#手动保存高亮片段)进行保存 | + +注: 可能还存在一个“回溯录制”的字段。 + +**示例:** + +获取用户保存列表 + +```shell +curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserGetManualHighlightList?live_key=625727121464233779&manual_type=2' \ + -b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +只有高光时刻的示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "high_light_stat": { + "original_hl": 4 + } + } +} +``` + +有保存片段的示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "manual_highlight_list": [ + { + "manual_id": 14434, + "highlight_title": "手动保存片段【6】", + "start_ts": 1752935402, + "end_ts": 1752935402, + "uid": 438160221, + "ruid": 438160221, + "live_key": "625727121464233779" + }, + { + "manual_id": 14428, + "highlight_title": "手动保存片段【5】", + "start_ts": 1752935402, + "end_ts": 1752935204, + "uid": 438160221, + "ruid": 438160221, + "live_key": "625727121464233779" + }, + { + "manual_id": 14426, + "highlight_title": "手动保存片段【4】", + "start_ts": 1752935402, + "end_ts": 1752935404, + "uid": 438160221, + "ruid": 438160221, + "live_key": "625727121464233779" + }, + { + "manual_id": 14425, + "highlight_title": "手动保存片段【3】", + "start_ts": 1752935402, + "end_ts": 1752935404, + "uid": 438160221, + "ruid": 438160221, + "live_key": "625727121464233779" + }, + { + "manual_id": 14424, + "highlight_title": "手动保存片段【2】", + "start_ts": 1752927342, + "end_ts": 1752935404, + "uid": 438160221, + "ruid": 438160221, + "live_key": "625727121464233779" + }, + { + "manual_id": 14423, + "highlight_title": "手动保存片段【1】", + "start_ts": 1752927336, + "end_ts": 1752946748, + "uid": 438160221, + "ruid": 438160221, + "live_key": "625727121464233779" + } + ], + "high_light_stat": { + "original_hl": 4, + "manual_hl": 6 + } } } ``` @@ -1134,6 +1244,72 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVide
+## 手动保存高亮片段 + +> https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserManualSaveHighlight + +*请求方法: POST* + +认证方式: Cookie (SESSDATA) + +鉴权方式: Cookie中`bili_jct`的值正确并与`csrf`相同 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----- | --- | ---- | ----- | --- | +| live_key | str | 标记直播场次的key | 必要 | 必须为自己的live_key | +| start_ts | num | 开始时间戳 | 必要 | Unix 秒时间戳 | +| end_ts | num | 结束时间戳 | 必要 | Unix 秒时间戳 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +注: 开始时间减结束时间的结果小于1可能导致[直播回放片段发布页面](#直播回放片段发布页面)无法处理这个片段。 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| code | num | 返回值 | -400:请求错误
-111:csrf校验失败
-101:未登录
0:成功
| +| message | str | 错误信息 | | +| ttl | num | `1` | | +| data | obj | 信息本体 | 成功时为空对象 | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| code | num | `-1` | | +| message | str | 错误提示 | `主播没有对应场次` , `保存时间点未开播` | + +**示例:** + +手动保存一个片段 + +```shell +curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserManualSaveHighlight' \ + --data-urlencode 'live_key=625727121464233779' \ + --data-urlencode 'start_ts=1752935402' \ + --data-urlencode 'end_ts=1752935404' \ + --data-urlencode 'csrf=xxx' \ + -b 'SESSDATA=xxx;bili_jct=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": {} +} +``` + +
+ ## 投稿直播回放片段 > https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/AnchorPublishVideoSlice @@ -1156,7 +1332,8 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVide | av_highlight | num | 高光绑定? | 非必要 | | | with_subtitle | num | 是否自动生成字幕? | 非必要 | 效果不明确 | | with_danmaku | num | 是否带弹幕? | 非必要 | 传递`1`时可能导致处于“发布中”状态时不在[获取已发布片段的信息](#获取已发布片段的信息)中显示 | -| with_reserve | num | (?) | 非必要 | 作用尚不明确 | +| with_reserve | num | 投稿携带下场直播提醒 | 非必要 | 0:不携带,1:携带 | +| av_speed | str | 倍速投稿 | 非必要 | 格式为 `倍速值 + "x"` ,使用非1x倍速时可能导致处于“发布中”状态时不在[获取已发布片段的信息](#获取已发布片段的信息)中显示
允许值: `0.5x` , `0.75x` , `1.0x` , `1.25x` , `1.5x` , `2.0x` | | csrf | str | CSRF Token(位于cookie) | 必要 | | **json回复:** @@ -1165,7 +1342,7 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVide | 字段 | 类型 | 内容 | 备注 | | --- | --- | --- | --- | -| code | num | 返回值 | -111:csrf校验失败
-101:未登录
0:成功
4000:时长过长
4001:操作太快
4002:片段已投稿
4003:请选择精彩片段再投稿哦
4006:标题已使用 | +| code | num | 返回值 | -111:csrf校验失败
-101:未登录
0:成功
4000:时长过长
4001:操作太快
4002:片段已投稿
4003:请选择精彩片段再投稿哦
4006:标题已使用
4008:不被允许的视频倍速 | | message | str | 错误信息 | | | ttl | num | `1` | | | data | obj | 信息本体 | 成功时有效 |