返回提交历史
Modified
docs/live/live_replay.md
+280
-103
XFEstudio/bilibili-API-collect
添加和更新直播回放接口
变更信息参见: https://github.com/SocialSisterYi/bilibili-API-collect/issues/1361
4a61430
代码差异
1 个文件
+280
-103
@@ -40,6 +40,7 @@
40
40
| pagination | obj | 分页信息 | |
41
41
| archive_flag | bool | (?) | 作用尚不明确 |
42
42
| can\_edit | num | (?) | 作用尚不明确 |
43
| can_upload | bool | (?) | 作用尚不明确 |
43
44
44
45
`data.replay_info` 数组中的对象:
45
46
@@ -486,7 +487,7 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/DeleteSliceDr
486
487
487
488
| 字段 | 类型 | 内容 | 备注 |
488
489
| --- | --- | --- | --- |
489
| code | num | 返回值 | -101:未登录<br />-111:csrf校验失败<br />0:成功<br />100:非法参数<br />210:回放id或场次key无效 |
490
| code | num | 返回值 | -101:未登录<br />-111:csrf校验失败<br />0:成功<br />100:非法参数<br />210:回放id或场次key无效<br />217:未找到直播录像 |
490
491
| message | str | 错误信息 | 成功时为`"0"` |
491
492
| ttl | num | `1` | |
492
493
| data | obj | 信息本体 | |
@@ -770,6 +771,7 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVide
770
771
| 字段 | 类型 | 内容 | 备注 |
771
772
| --- | --- | --- | --- |
772
773
| list | arr | 直播回放视频列表 | 如果该场回放没有视频流将为`null` |
774
| ban_list | null | 不可发布的回放列表? | [需要验证] |
773
775
774
776
`data.list` 数组中的对象:
775
777
@@ -817,7 +819,8 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetSliceStrea
817
819
"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",
818
820
"type": 2
819
821
}
820
]
822
],
823
"ban_list": null
821
824
}
822
825
}
823
826
```
@@ -862,6 +865,7 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetSliceStrea
862
865
| max_value | num | (?) | 效果未知 |
863
866
| high_light_data | arr | 高光时刻数据 | |
864
867
| ass_url | str | ASS字幕链接 | 用作弹幕显示 |
868
| high_light_stat | obj | 高亮状态信息 | |
865
869
866
870
`data.session_data` 数组中的对象:
867
871
@@ -882,6 +886,15 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetSliceStrea
882
886
| cover | str | (?) | 目前为`""` |
883
887
| extra | str | (?) | 目前为`""` |
884
888
889
`data.high_light_stat` 对象:
890
891
| 字段 | 类型 | 内容 | 备注 |
892
| --- | --- | --- | --- |
893
| original_hl | num | “高光时刻”数量 | 有“高光时刻”时存在 |
894
| manual_hl | num | “已保存”数量 | 有“已保存”时存在,调用[手动保存高亮片段](#手动保存高亮片段)进行保存 |
895
896
注: 可能还存在一个“回溯录制”的字段。
897
885
898
**示例:**
886
899
887
900
获取场次key为`607113721045847859`的会话数据
@@ -902,144 +915,241 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetLiveSessio
902
915
"data": {
903
916
"session_data": [
904
917
{
905
"ts": 1746863100,
906
"value": 0
907
},
908
{
909
"ts": 1746863160,
910
"value": 0
911
},
912
{
913
"ts": 1746863220,
914
"value": 0
915
},
916
{
917
"ts": 1746863280,
918
"value": 0
919
},
920
{
921
"ts": 1746863340,
922
"value": 0
923
},
924
{
925
"ts": 1746863400,
926
"value": 0
927
},
928
{
929
"ts": 1746863460,
930
"value": 0
931
},
932
{
933
"ts": 1746863520,
934
"value": 0
935
},
936
{
937
"ts": 1746863580,
938
"value": 0
939
},
940
{
941
"ts": 1746863640,
942
"value": 0
943
},
944
{
945
"ts": 1746863700,
946
"value": 0
947
},
948
{
949
"ts": 1746863760,
950
"value": 0
951
},
952
{
953
"ts": 1746863820,
954
"value": 0
955
},
956
// 省略100多条数据
957
{
958
"ts": 1746878520,
959
"value": 0
960
},
961
{
962
"ts": 1746878580,
963
"value": 0
964
},
965
{
966
"ts": 1746878640,
967
"value": 0
968
},
969
{
970
"ts": 1746878700,
918
"ts": 1752927300,
971
919
"value": 0
972
920
},
973
921
{
974
"ts": 1746878760,
922
"ts": 1752927360,
975
923
"value": 0
976
924
},
977
925
{
978
"ts": 1746878820,
926
"ts": 1752927420,
979
927
"value": 0
980
928
},
929
// 省略掉大部分重复内容
981
930
{
982
"ts": 1746878880,
931
"ts": 1752946620,
983
932
"value": 0
984
933
},
985
934
{
986
"ts": 1746878940,
935
"ts": 1752946680,
987
936
"value": 0
988
937
},
989
938
{
990
"ts": 1746879000,
991
"value": 0
992
},
993
{
994
"ts": 1746879060,
995
"value": 0
996
},
997
{
998
"ts": 1746879120,
999
"value": 0
1000
},
1001
{
1002
"ts": 1746879180,
1003
"value": 0
1004
},
1005
{
1006
"ts": 1746879240,
939
"ts": 1752946740,
1007
940
"value": 0
1008
941
}
1009
942
],
1010
"max_danmaku": 1746864660,
1011
"max_pcu": 1746864660,
943
"max_danmaku": 1752928860,
944
"max_pcu": 1752928200,
1012
945
"max_value": 0,
1013
946
"high_light_data": [
1014
947
{
1015
"id": 6226272,
948
"id": 9628113,
1016
949
"type": 1,
1017
"start_time": 1746873300,
1018
"end_time": 1746873480,
950
"start_time": 1752928860,
951
"end_time": 1752929040,
1019
952
"title": "弹幕高光 Top 1",
1020
953
"cover": "",
1021
954
"extra": ""
1022
955
},
1023
956
{
1024
"id": 6226274,
957
"id": 9628114,
1025
958
"type": 1,
1026
"start_time": 1746873120,
1027
"end_time": 1746873420,
959
"start_time": 1752938460,
960
"end_time": 1752938640,
1028
961
"title": "弹幕高光 Top 2",
1029
962
"cover": "",
1030
963
"extra": ""
1031
964
},
1032
965
{
1033
"id": 6226271,
966
"id": 9628115,
967
"type": 1,
968
"start_time": 1752938040,
969
"end_time": 1752938220,
970
"title": "弹幕高光 Top 3",
971
"cover": "",
972
"extra": ""
973
},
974
{
975
"id": 9628112,
1034
976
"type": 2,
1035
"start_time": 1746864600,
1036
"end_time": 1746864780,
977
"start_time": 1752928140,
978
"end_time": 1752928320,
1037
979
"title": "进房高光时刻",
1038
980
"cover": "",
1039
981
"extra": ""
1040
982
}
1041
983
],
1042
"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"
984
"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",
985
"high_light_stat": {
986
"original_hl": 4,
987
"manual_hl": 6
988
}
989
}
990
}
991
```
992
993
</details>
994
995
## 获取用户高光列表
996
997
> https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserGetManualHighlightList
998
999
*请求方法: GET*
1000
1001
认证方式: Cookie (SESSDATA)
1002
1003
**url参数:**
1004
1005
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
1006
| ----- | --- | ---- | ----- | --- |
1007
| live_key | str | 标记直播场次的key | 必要 | |
1008
| manual_type | num | 查询类型 | 必要 | 1:回溯录制<br />2:已保存片段 |
1009
| web_location | str | (?) | 非必要 | 作用尚不明确 |
1010
1011
**json回复:**
1012
1013
根对象:
1014
1015
| 字段 | 类型 | 内容 | 备注 |
1016
| --- | --- | --- | --- |
1017
| code | num | 返回值 | -400:请求错误<br />-101:未登录<br />0:成功 |
1018
| message | str | 错误信息 | 成功时为`"0"` |
1019
| ttl | num | `1` | |
1020
| data | obj | 信息本体 | |
1021
1022
`data` 对象:
1023
1024
| 字段 | 类型 | 内容 | 备注 |
1025
| --- | --- | --- | --- |
1026
| high_light_stat | obj | 高亮状态信息 | |
1027
| manual_highlight_list | arr | 高光列表 | 有内容时存在 |
1028
1029
`data.manual_highlight_list` 数组:
1030
1031
| 索引 | 类型 | 内容 | 备注 |
1032
| --- | --- | --- | --- |
1033
| 0 | obj | 第一条高光信息 | 最少存在1条,目前没有高光内容将看不到这个数组 |
1034
| … | obj | 某一条高光信息 | |
1035
| i | obj | 最后一条高光信息 | |
1036
1037
`data.manual_highlight_list` 数组中对象:
1038
1039
| 字段 | 类型 | 内容 | 备注 |
1040
| --- | --- | --- | --- |
1041
| manual_id | num | 片段id | |
1042
| highlight_title | str | 片段标题 | |
1043
| start_ts | num | 开始时间戳 | Unix 秒时间戳 |
1044
| end_ts | num | 结束时间戳 | Unix 秒时间戳 |
1045
| uid | num | 保存者uid? | |
1046
| ruid | num | 主播uid | |
1047
| live_key | str | 标记直播场次的key | |
1048
1049
`data.high_light_stat` 对象:
1050
1051
| 字段 | 类型 | 内容 | 备注 |
1052
| --- | --- | --- | --- |
1053
| original_hl | num | “高光时刻”数量 | 有“高光时刻”时存在 |
1054
| manual_hl | num | “已保存”数量 | 有“已保存”时存在,调用[手动保存高亮片段](#手动保存高亮片段)进行保存 |
1055
1056
注: 可能还存在一个“回溯录制”的字段。
1057
1058
**示例:**
1059
1060
获取用户保存列表
1061
1062
```shell
1063
curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserGetManualHighlightList?live_key=625727121464233779&manual_type=2' \
1064
-b 'SESSDATA=xxx'
1065
```
1066
1067
<details>
1068
<summary>查看响应示例:</summary>
1069
1070
只有高光时刻的示例:
1071
1072
```json
1073
{
1074
"code": 0,
1075
"message": "0",
1076
"ttl": 1,
1077
"data": {
1078
"high_light_stat": {
1079
"original_hl": 4
1080
}
1081
}
1082
}
1083
```
1084
1085
有保存片段的示例:
1086
1087
```json
1088
{
1089
"code": 0,
1090
"message": "0",
1091
"ttl": 1,
1092
"data": {
1093
"manual_highlight_list": [
1094
{
1095
"manual_id": 14434,
1096
"highlight_title": "手动保存片段【6】",
1097
"start_ts": 1752935402,
1098
"end_ts": 1752935402,
1099
"uid": 438160221,
1100
"ruid": 438160221,
1101
"live_key": "625727121464233779"
1102
},
1103
{
1104
"manual_id": 14428,
1105
"highlight_title": "手动保存片段【5】",
1106
"start_ts": 1752935402,
1107
"end_ts": 1752935204,
1108
"uid": 438160221,
1109
"ruid": 438160221,
1110
"live_key": "625727121464233779"
1111
},
1112
{
1113
"manual_id": 14426,
1114
"highlight_title": "手动保存片段【4】",
1115
"start_ts": 1752935402,
1116
"end_ts": 1752935404,
1117
"uid": 438160221,
1118
"ruid": 438160221,
1119
"live_key": "625727121464233779"
1120
},
1121
{
1122
"manual_id": 14425,
1123
"highlight_title": "手动保存片段【3】",
1124
"start_ts": 1752935402,
1125
"end_ts": 1752935404,
1126
"uid": 438160221,
1127
"ruid": 438160221,
1128
"live_key": "625727121464233779"
1129
},
1130
{
1131
"manual_id": 14424,
1132
"highlight_title": "手动保存片段【2】",
1133
"start_ts": 1752927342,
1134
"end_ts": 1752935404,
1135
"uid": 438160221,
1136
"ruid": 438160221,
1137
"live_key": "625727121464233779"
1138
},
1139
{
1140
"manual_id": 14423,
1141
"highlight_title": "手动保存片段【1】",
1142
"start_ts": 1752927336,
1143
"end_ts": 1752946748,
1144
"uid": 438160221,
1145
"ruid": 438160221,
1146
"live_key": "625727121464233779"
1147
}
1148
],
1149
"high_light_stat": {
1150
"original_hl": 4,
1151
"manual_hl": 6
1152
}
1043
1153
}
1044
1154
}
1045
1155
```
@@ -1134,6 +1244,72 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVide
1134
1244
1135
1245
</details>
1136
1246
1247
## 手动保存高亮片段
1248
1249
> https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserManualSaveHighlight
1250
1251
*请求方法: POST*
1252
1253
认证方式: Cookie (SESSDATA)
1254
1255
鉴权方式: Cookie中`bili_jct`的值正确并与`csrf`相同
1256
1257
**正文参数( application/x-www-form-urlencoded ):**
1258
1259
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
1260
| ----- | --- | ---- | ----- | --- |
1261
| live_key | str | 标记直播场次的key | 必要 | 必须为自己的live_key |
1262
| start_ts | num | 开始时间戳 | 必要 | Unix 秒时间戳 |
1263
| end_ts | num | 结束时间戳 | 必要 | Unix 秒时间戳 |
1264
| csrf | str | CSRF Token(位于cookie) | 必要 | |
1265
1266
注: 开始时间减结束时间的结果小于1可能导致[直播回放片段发布页面](#直播回放片段发布页面)无法处理这个片段。
1267
1268
**json回复:**
1269
1270
根对象:
1271
1272
| 字段 | 类型 | 内容 | 备注 |
1273
| --- | --- | --- | --- |
1274
| code | num | 返回值 | -400:请求错误<br />-111:csrf校验失败<br />-101:未登录<br />0:成功<br /> |
1275
| message | str | 错误信息 | |
1276
| ttl | num | `1` | |
1277
| data | obj | 信息本体 | 成功时为空对象 |
1278
1279
`data` 对象:
1280
1281
| 字段 | 类型 | 内容 | 备注 |
1282
| --- | --- | --- | --- |
1283
| code | num | `-1` | |
1284
| message | str | 错误提示 | `主播没有对应场次` , `保存时间点未开播` |
1285
1286
**示例:**
1287
1288
手动保存一个片段
1289
1290
```shell
1291
curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserManualSaveHighlight' \
1292
--data-urlencode 'live_key=625727121464233779' \
1293
--data-urlencode 'start_ts=1752935402' \
1294
--data-urlencode 'end_ts=1752935404' \
1295
--data-urlencode 'csrf=xxx' \
1296
-b 'SESSDATA=xxx;bili_jct=xxx'
1297
```
1298
1299
<details>
1300
<summary>查看响应示例:</summary>
1301
1302
```json
1303
{
1304
"code": 0,
1305
"message": "0",
1306
"ttl": 1,
1307
"data": {}
1308
}
1309
```
1310
1311
</details>
1312
1137
1313
## 投稿直播回放片段
1138
1314
1139
1315
> 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
1156
1332
| av_highlight | num | 高光绑定? | 非必要 | |
1157
1333
| with_subtitle | num | 是否自动生成字幕? | 非必要 | 效果不明确 |
1158
1334
| with_danmaku | num | 是否带弹幕? | 非必要 | 传递`1`时可能导致处于“发布中”状态时不在[获取已发布片段的信息](#获取已发布片段的信息)中显示 |
1159
| with_reserve | num | (?) | 非必要 | 作用尚不明确 |
1335
| with_reserve | num | 投稿携带下场直播提醒 | 非必要 | 0:不携带,1:携带 |
1336
| av_speed | str | 倍速投稿 | 非必要 | 格式为 `倍速值 + "x"` ,使用非1x倍速时可能导致处于“发布中”状态时不在[获取已发布片段的信息](#获取已发布片段的信息)中显示<br />允许值: `0.5x` , `0.75x` , `1.0x` , `1.25x` , `1.5x` , `2.0x` |
1160
1337
| csrf | str | CSRF Token(位于cookie) | 必要 | |
1161
1338
1162
1339
**json回复:**
@@ -1165,7 +1342,7 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVide
1165
1342
1166
1343
| 字段 | 类型 | 内容 | 备注 |
1167
1344
| --- | --- | --- | --- |
1168
| code | num | 返回值 | -111:csrf校验失败<br />-101:未登录<br />0:成功<br />4000:时长过长<br />4001:操作太快<br />4002:片段已投稿<br />4003:请选择精彩片段再投稿哦<br />4006:标题已使用 |
1345
| code | num | 返回值 | -111:csrf校验失败<br />-101:未登录<br />0:成功<br />4000:时长过长<br />4001:操作太快<br />4002:片段已投稿<br />4003:请选择精彩片段再投稿哦<br />4006:标题已使用<br />4008:不被允许的视频倍速 |
1169
1346
| message | str | 错误信息 | |
1170
1347
| ttl | num | `1` | |
1171
1348
| data | obj | 信息本体 | 成功时有效 |