bilibili-API-collect/docs/live/live_replay.md
Northern_Lights da24448000
Some checks failed
deploy and publish / build-and-deploy (push) Has been cancelled
revert 7809924e2d
revert delete all
2026-01-29 09:03:04 +00:00

65 KiB
Raw Blame History

直播回放

注: 直播回放相关接口较新,随时可能出现变化。

获取直播回放列表

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/AnchorGetReplayList

请求方法: GET

认证方式: Cookie (SESSDATA)

只能获取自己14天的回放详细信息请查看对应页面

url参数

参数名 类型 内容 必要性 备注
page num 页码 非必要 默认第1页
page_size num 每页内容数量 非必要 默认30项最大30项

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101未登录
message str 提示信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
replay_info arr 回放信息列表 无结果时为null
pagination obj 分页信息
archive_flag bool (?) 作用尚不明确
can_edit num (?) 作用尚不明确
can_upload bool (?) 作用尚不明确
has_third_platform_live bool (?) 作用尚不明确

data.replay_info 数组中的对象:

字段 类型 内容 备注
replay_id num 直播回放id
live_info obj 直播信息
video_info obj 回放视频信息
alarm_info obj 警报信息
room_id num 直播间id
live_key str 标记直播场次的key
start_time num 直播开始秒时间戳 调用开始直播接口的时间
end_time num 直播结束秒时间戳 调用关闭直播接口的时间

data.replay_info[i].live_info 对象:

字段 类型 内容 备注
title str 直播标题 直播结束时的标题
cover str 直播封面
live_time num 直播时间 data.replay_info[i].start_time
live_type num 直播类型? 作用尚不明确
platform str 直播平台

data.replay_info[i].video_info 对象:

字段 类型 内容 备注
replay_status num 回放状态 作用尚不明确
estimated_time str 直播回放合成结束时间 未合成时为"1970-01-01 08:00:00"
duration num 直播时长 单位秒
download_url str 下载链接片段 整场直播回放合成成功时存在
建议通过请求整场直播回放下载链接来获取下载链接
alert_code num 快速检查警告代码 整场直播回放合成失败时不存在
alert_message str 快速检查警告信息 整场直播回放合成失败时不存在

data.replay_info[i].alarm_info 对象:

字段 类型 内容 备注
code num 回放合成警报代码
message str 回放合成错误信息
cur_time num 当前时间戳 Unix秒时间戳
is_ban_publish bool 是否禁止发布?

data.pagination 对象:

字段 类型 内容 备注
page num 请求的页码
page_size num 内容数量
total num 总计内容数量

示例:

获取自己直播回放列表的第1页每页2项

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/AnchorGetReplayList?page=1&page_size=2' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "replay_info": [
      {
        "replay_id": 13517082,
        "live_info": {
          "title": "随缘摸鱼",
          "cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
          "live_time": 1756479520,
          "live_type": 1,
          "platform": "android_link"
        },
        "video_info": {
          "replay_status": -8,
          "estimated_time": "1970-01-01 08:00:00",
          "duration": 9350,
          "alert_code": 2,
          "alert_message": "录像时长远小于开播时长,请关注直播时网络状况"
        },
        "alarm_info": {
          "code": -8,
          "message": "直播内容存在违规片段",
          "cur_time": 1756496581,
          "is_ban_publish": false
        },
        "room_id": 1899237171,
        "live_key": "637117671085969203",
        "start_time": 1756479520,
        "end_time": 1756488870
      },
      {
        "replay_id": 13487274,
        "live_info": {
          "title": "随缘摸鱼",
          "cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
          "live_time": 1756385910,
          "live_type": 1,
          "platform": "android_link"
        },
        "video_info": {
          "replay_status": 2,
          "estimated_time": "1970-01-01 08:00:00",
          "duration": 14985,
          "alert_code": 2,
          "alert_message": "录像时长远小于开播时长,请关注直播时网络状况"
        },
        "alarm_info": {
          "code": 2,
          "message": "录像生成失败,请稍后再试",
          "cur_time": 1756496581,
          "is_ban_publish": false
        },
        "room_id": 1899237171,
        "live_key": "636823272552664883",
        "start_time": 1756385910,
        "end_time": 1756400895
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 2,
      "total": 16
    },
    "archive_flag": false,
    "can_edit": 1,
    "can_upload": false,
    "has_third_platform_live": false
  }
}

获取某位主播的回放列表

https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetOtherSliceList

请求方法: GET

认证方式: Cookie (SESSDATA)

需要获得那位主播的授权才能获取数据。

url参数

参数名 类型 内容 必要性 备注
live_uid num 目标主播的uid 必要
time_range num 回放列表的时间范围 非必要 默认获取近14天
1近3天
2近7天
3近14天
page num 页码 非必要 默认第1页
page_size num 每页内容数量 非必要 默认30项最大30项
web_location str (?) 非必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -101未登录
0成功
301没有剪辑权限
message str 提示信息 成功时为"0"
ttl num 1
data obj 信息本体 获取直播回放列表接口的信息本体相同

示例:

获取某位主播的回放列表,他已授权你回放剪辑权限

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetOtherSliceList?live_uid=1&time_range=1&page=1&page_size=2' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "replay_info": [
      {
        "replay_id": 14657830,
        "live_info": {
          "title": "随缘摸鱼",
          "cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
          "live_time": 1760352139,
          "live_type": 1,
          "platform": "android_link"
        },
        "video_info": {
          "replay_status": 2,
          "estimated_time": "1970-01-01 08:00:00",
          "duration": 858,
          "alert_code": 2,
          "alert_message": "录像时长远小于开播时长,请关注直播时网络状况"
        },
        "alarm_info": {
          "code": 2,
          "message": "录像生成失败,请稍后再试",
          "cur_time": 1760362012,
          "is_ban_publish": false
        },
        "room_id": 1899237171,
        "live_key": "648437353747320627",
        "start_time": 1760352139,
        "end_time": 1760352997
      },
      {
        "replay_id": 14646585,
        "live_info": {
          "title": "随缘摸鱼",
          "cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
          "live_time": 1760285326,
          "live_type": 1,
          "platform": "android_link"
        },
        "video_info": {
          "replay_status": 2,
          "estimated_time": "1970-01-01 08:00:00",
          "duration": 464,
          "alert_code": 2,
          "alert_message": "录像时长远小于开播时长,请关注直播时网络状况"
        },
        "alarm_info": {
          "code": 2,
          "message": "录像生成失败,请稍后再试",
          "cur_time": 1760362012,
          "is_ban_publish": false
        },
        "room_id": 1899237171,
        "live_key": "648321565723987763",
        "start_time": 1760285326,
        "end_time": 1760285790
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 2,
      "total": 4
    },
    "archive_flag": false,
    "can_edit": 1,
    "can_upload": false,
    "has_third_platform_live": false
  }
}

获取已发布片段的信息

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/AnchorGetVideoSliceList

请求方法: GET

认证方式: Cookie (SESSDATA)

只能获取主播自己的已发布片段。

url参数

参数名 类型 内容 必要性 备注
page num 页码 非必要 默认第1页
page_size num 每页内容数量 非必要 默认20项最大20项

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101未登录
message str 提示信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
list arr 切片信息
page num 请求的页码
page_size num 内容数量
total num 总计内容数量

data.list 数组中的对象:

字段 类型 内容 备注
silce_id num 切片id
av_title str 切片标题
av_cover str 切片封面
av_status num 切片状态 1发布中
2已投稿
3投稿失败
avid num 切片视频的avid 状态为2时存在
ctime str 切片创建时间
start_tm str 切片开始时间
end_tm str 切片结束时间
av_duration num 切片时长 状态为2且创作中心出现有效视频时长时存在
failed_reason str 失败原因 状态为3时存在2024-09-01前发布失败的切片可能不存在
live_type num (?) 作用尚不明确
cnt_play num 播放数 视频有播放时存在若该页出现任意状态不为2的项也会不存在
cnt_danmaku num 弹幕数 视频有弹幕时存在若该页出现任意状态不为2的项也会不存在

示例:

获取自己第1页的已发布片段信息每页3项

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/AnchorGetVideoSliceList?page=1&page_size=3' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "list": [
      {
        "slice_id": 882357,
        "av_title": "2025051720 error",
        "av_cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
        "av_status": 1,
        "ctime": "2025-05-18 18:13:13",
        "start_tm": "2025-05-17 21:07:04",
        "end_tm": "2025-05-17 21:16:00",
        "live_type": 1
      },
      {
        "slice_id": 879189,
        "av_title": "2025051721 zzz 0",
        "av_cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
        "av_status": 3,
        "ctime": "2025-05-18 00:32:52",
        "start_tm": "2025-05-17 21:07:34",
        "end_tm": "2025-05-17 23:02:03",
        "failed_reason": "duration_false",
        "live_type": 1
      },
      {
        "slice_id": 876259,
        "av_title": "202505171449",
        "av_cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
        "av_status": 2,
        "avid": 114521830065531,
        "ctime": "2025-05-17 14:49:18",
        "start_tm": "2025-05-17 14:19:36",
        "end_tm": "2025-05-17 14:23:48",
        "av_duration": 341,
        "live_type": 1
      }
    ],
    "page": 1,
    "page_size": 3,
    "total": 347
  }
}

获取你为某位主播剪辑的已发布片段

https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetPublishedList

请求方法: GET

认证方式: Cookie (SESSDATA)

需要获得那位主播的授权才能获取数据。

url参数

参数名 类型 内容 必要性 备注
live_uid num 目标主播的uid 必要
page num 页码 非必要 默认第1页
page_size num 每页内容数量 非必要 默认20项最大20项
web_location str (?) 非必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -101未登录
0成功
301没有剪辑权限
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
slice_info arr 或 null 切片信息 无内容时为null
pagination obj 分页信息

data.slice_info 数组中对象:

字段 类型 内容 备注
slice_id num 切片id
uid num 发布者uid?
live_uid num 主播uid
live_key str 标记直播场次的key
title str 切片标题
cover str 切片封面 若未在给某位主播投稿直播回放片段接口中传递封面将会无此字段,同时及大可能导致发布失败且没有失败提示
high_light_id num 绑定的高光时刻 给某位主播投稿直播回放片段接口中提供相关参数时存在
start_time str 片段开始时间
end_time str 片段结束时间
status num 切片状态 参见获取已发布片段的信息接口
fail_reason str 失败提示 状态为3且有提示信息时存在
filename str 切片视频文件名 内部使用,可作为参数传递给创作中心,视频合成完成时存在
avid num 切片视频的avid 状态为2时存在
ctime str 切片创建时间
av_duration num 切片时长 状态为2且创作中心出现有效视频时长时存在
live_type num (?) 作用尚不明确

data.pagination 对象:

字段 类型 内容 备注
page num 请求的页码
page_size num 内容数量
total num 总计内容数量 data.slice_info有内容时存在

示例:

获取为某位主播剪辑的已发布片段,他已授权你回放剪辑权限

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetPublishedList?live_uid=1&page=1&page_size=20' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "slice_info": [
      {
        "slice_id": 4302,
        "uid": 438160221,
        "live_uid": 438160221,
        "live_key": "648506223547911987",
        "title": "test202510201450",
        "cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
        "high_light_id": 12810575,
        "start_time": "2025-10-13 23:11:00",
        "end_time": "2025-10-13 23:14:00",
        "status": 3,
        "fail_reason": "合成失败,重新编辑投稿试试~",
        "ctime": "2025-10-20 14:50:18",
        "live_type": 1
      },
      {
        "slice_id": 4300,
        "uid": 438160221,
        "live_uid": 438160221,
        "live_key": "648437353747320627",
        "title": "test202510201318",
        "start_time": "2025-10-13 18:42:36",
        "end_time": "2025-10-13 18:43:36",
        "status": 3,
        "filename": "n251020tx1rbha851nt85y2fj21bygm8",
        "ctime": "2025-10-20 13:41:00",
        "live_type": 1
      },
      {
        "slice_id": 4299,
        "uid": 438160221,
        "live_uid": 438160221,
        "live_key": "648437353747320627",
        "title": "test202510201318",
        "cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
        "start_time": "2025-10-13 18:42:35",
        "end_time": "2025-10-13 18:43:35",
        "status": 2,
        "filename": "n251020tx2u500g1krssxg3om5ou8bdw",
        "avid": 115404865274992,
        "ctime": "2025-10-20 13:36:44",
        "av_duration": 63,
        "live_type": 1
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 4
    }
  }
}

获取回放剪辑草稿列表

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetDraftList

请求方法: GET

认证方式: Cookie (SESSDATA)

只能获取主播自己的回放剪辑草稿。

url参数

参数名 类型 内容 必要性 备注
page num 页码 非必要 默认第1页
page_size num 每页内容数量 非必要 默认30项最大30项

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -101未登录
0成功
301没有剪辑权限
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
draft_info arr 草稿信息 无结果时为null
pagination obj 分页信息

data.draft_info 数组中的对象:

字段 类型 内容 备注
id num 回放剪辑id
title str 回放剪辑标题
cover str 回放剪辑封面 有封面时存在;若不存在将使用 https://s1.hdslb.com/bfs/static/blive/blfe-link-center/static/img/default.187078d.png
live_key str 标记直播场次的key
ctime str 回放剪辑创建时间
live_start_time str 直播开始时间
live_end_time str 直播结束时间
live_type num (?) 作用尚不明确

data.pagination 对象:

字段 类型 内容 备注
page num 请求的页码
page_size num 内容数量
total num 总计内容数量

示例:

请求自己的回放剪辑草稿列表

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetDraftList?page=1&page_size=12' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "draft_info": [
      {
        "id": 988275,
        "title": "直播场次 2025-05-19 20:45:04",
        "live_key": "609431465787395891",
        "ctime": "2025-05-22 01:08:20",
        "live_start_time": "2025-05-19 20:45:04",
        "live_end_time": "2025-05-20 09:40:13",
        "live_type": 1
      },
      {
        "id": 987665,
        "title": "直播场次 2025-05-19 20:45:04 切片",
        "cover": "http://i0.hdslb.com/bfs/live/9bdf1df3d823734c59382120a9a7c10b177dbefd.png",
        "live_key": "609431465787395891",
        "ctime": "2025-05-21 20:28:48",
        "live_start_time": "2025-05-19 20:45:04",
        "live_end_time": "2025-05-20 09:40:13",
        "live_type": 1
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 30,
      "total": 2
    }
  }
}

获取你为某位主播剪辑的草稿

https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetDraftList

请求方法: GET

认证方式: Cookie (SESSDATA)

需要获得那位主播的授权才能获取数据。

url参数

参数名 类型 内容 必要性 备注
live_uid num 目标主播的uid 必要
page num 页码 非必要 默认第1页
page_size num 每页内容数量 非必要 默认30项最大30项
web_location str (?) 非必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -101未登录
0成功
301没有剪辑权限
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体 获取回放剪辑草稿列表接口的信息本体相同

示例:

获取你为某位主播剪辑的草稿,他已授权你回放剪辑权限

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetDraftList?live_uid=1&page=1&page_size=20' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "draft_info": [
      {
        "id": 1148889,
        "title": "直播场次 2025-09-30 23:53:06",
        "live_key": "645328214036844339",
        "ctime": "2025-10-14 14:48:22",
        "live_start_time": "2025-09-30 23:53:06",
        "live_end_time": "2025-10-01 01:41:29",
        "live_type": 1
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 30,
      "total": 1
    }
  }
}

删除某个回放剪辑草稿

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/DeleteSliceDraft

请求方法: POST

认证方式: Cookie (SESSDATA)

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

主播删除自己的回放剪辑草稿时使用。

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

参数名 类型 内容 必要性 备注
draft_id num 回放剪辑id 必要
csrf_token str CSRF Token位于cookie 非必要
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -400参数错误
-101未登录
-111csrf校验失败
0成功
206无可操作草稿
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
code num 0
message str ""

示例:

删除回放剪辑id为988275的草稿

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/DeleteSliceDraft' \
  --data-urlencode 'draft_id=988275' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "code": 0,
    "message": ""
  }
}

删除为某个主播剪辑的草稿

https://api.live.bilibili.com/xlive/web-room/v1/videoService/DeleteSliceDraft

请求方法: POST

认证方式: Cookie (SESSDATA)

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

删除你为某位主播创建的回放剪辑草稿。

url参数

参数名 类型 内容 必要性 备注
csrf str CSRF Token位于cookie 必要

正文参数( application/json

参数名 类型 内容 必要性 备注
draft_id num 回放剪辑id 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -400请求错误
-101未登录
-111csrf校验失败
0成功
206无可操作草稿
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体 的信息本体相同

示例:

删除回放剪辑id为1148889的草稿

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/DeleteSliceDraft?csrf=xxx' \
  -H 'Content-Type: application/json' \
  -b 'SESSDATA=xxx;bili_jct=xxx' \
  -d '{"draft_id":1148889}'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "code": 0,
    "message": ""
  }
}

请求整场直播回放下载链接

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/AnchorVideoDownload

请求方法: POST

认证方式: Cookie (SESSDATA)

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

是否生成回放取决于回放状态,处于可生成回放状态且未生成整场直播回放时将进行生成。

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

参数名 类型 内容 必要性 备注
record_id num 直播回放id 必要(可选) record_idlive_key必选其一
live_key str 标记直播场次的key 必要(可选) record_idlive_key必选其一
csrf_token str CSRF Token位于cookie 非必要
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -101未登录
-111csrf校验失败
0成功
100非法参数
210回放id或场次key无效
217未找到直播录像
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
record obj 回放状态
download_url str 回放下载链接 完成时存在
download_url_list arr 回放下载链接列表 完成时存在

data.record 对象:

字段 类型 内容 备注
uid num 用户mid
record_id num 直播回放id
status num 回放状态
estimated_time num 预计结束时间 Unix秒时间戳
current_time num 当前时间 Unix秒时间戳
merge_time num 开始合并时间 Unix秒时间戳
toast str 提示信息 失败时存在

data.download_url_list 数组:

类型 内容 备注
0 str 回放下载链接

示例:

请求回放id为10597910的下载链接

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/AnchorVideoDownload' \
  --data-urlencode 'record_id=10597910' \
  --data-urlencode 'live_key=607942821532667699' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "record": {
      "uid": 438160221,
      "record_id": 10597910,
      "status": 30,
      "estimated_time": 1747639543,
      "current_time": 1747639106,
      "merge_time": 1747638665
    },
    "download_url": "https://upos-sz-mirrorali.bilivideo.com/ugcever/n250519sa3hkpirw61hjskuit4d9fdsj.mp4?deadline=1747682306&gen=record2vod&os=upos&trid=da40b42594d5446da29cb0d2b2f25f45&uparams=deadline,gen,os,trid&upsig=c6ac5f218af40b2c120b3f5add2e4d6b&attname=直播回放_2025-05-13_20-49-04.mp4",
    "download_url_list": [
      "https://upos-sz-mirrorali.bilivideo.com/ugcever/n250519sa3hkpirw61hjskuit4d9fdsj.mp4?deadline=1747682306&gen=record2vod&os=upos&trid=da40b42594d5446da29cb0d2b2f25f45&uparams=deadline,gen,os,trid&upsig=c6ac5f218af40b2c120b3f5add2e4d6b&attname=直播回放_2025-05-13_20-49-04.mp4"
    ]
  }
}

获取回放的信息

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVideoUidRecordsSubsect

请求方法: GET

认证方式: Cookie (SESSDATA)

url参数

参数名 类型 内容 必要性 备注
record_id num 直播回放id 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -400参数错误
-101未登录
0成功
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体 失败时不可用

data 对象:

字段 类型 内容 备注
list arr 回放信息列表

data.list 数组中的对象:

字段 类型 内容 备注
uid num 用户mid
record_id num 直播回放id
title str 直播标题
cover str 直播封面
status num 回放状态
start_time num 直播开始时间 Unix秒时间戳
end_time num 直播结束时间 Unix秒时间戳

示例:

获取回放id为10707664的信息

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVideoUidRecordsSubsect?record_id=10707664' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "list": [
      {
        "uid": 438160221,
        "record_id": 10707664,
        "title": "摆",
        "cover": "https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png",
        "status": 2,
        "start_time": 1747508293,
        "end_time": 1747508499
      }
    ]
  }
}

轮询回放状态

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVideoUidRecord

请求方法: POST

认证方式: Cookie (SESSDATA)

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

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

参数名 类型 内容 必要性 备注
records str 直播回放id列表 必要 ,分隔
csrf_token str CSRF Token位于cookie 非必要
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -101未登录
-400参数错误
0成功
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
list arr 查询结果 无效的id会被忽略

data.list 数组中的对象:

字段 类型 内容 备注
uid num 用户mid
record_id num 直播回放id
status num 回放状态
current_time num 当前时间戳 Unix秒时间戳
estimated_time num 预计结束时间戳 初次请求回放下载链接后存在
merge_time num 合成开始时间戳 初次请求回放下载链接后存在

示例:

查询各种回放id

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVideoUidRecord' \
  --data-urlencode 'records=10727160,10597910,10687720,10230000,99999999' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "list": [
      {
        "uid": 91089731,
        "record_id": 10230000,
        "status": 2,
        "current_time": 1747641604
      },
      {
        "uid": 438160221,
        "record_id": 10597910,
        "status": 30,
        "estimated_time": 1747639543,
        "current_time": 1747641604,
        "merge_time": 1747638665
      },
      {
        "uid": 438160221,
        "record_id": 10687720,
        "status": -30,
        "estimated_time": 1747635525,
        "current_time": 1747641604,
        "merge_time": 1747635486,
        "toast": "因直播过程中存在推流质量问题(网络波动或丢包),本场直播回放无法合成"
      },
      {
        "uid": 3493299121817771,
        "record_id": 10727160,
        "status": 2,
        "current_time": 1747641604
      }
    ]
  }
}

获取切片视频流

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetSliceStream

请求方法: GET

认证方式: Cookie (SESSDATA)

主播获取自己的切片视频流时使用。

url参数

参数名 类型 内容 必要性 备注
live_key str 标记直播场次的key 必要 对应获取直播回放列表data.replay_info[i].live_key
start_time num 直播开始时间戳 必要 对应获取直播回放列表data.replay_info[i].start_time
end_time num 直播结束时间戳 必要 对应获取直播回放列表data.replay_info[i].end_time
web_location str (?) 非必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -400参数缺失
-101未登录
0成功
100非法参数
202场次无效
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
list arr 或 null 直播回放视频列表 如果该场回放没有视频流将为null
ban_list null 或 arr 不可发布的回放时间 如果该场回放没有不可发布的时间将为null

data.list 数组中的对象:

字段 类型 内容 备注
start_time num 片段开始时间戳 Unix秒时间戳
end_time num 片段结束时间戳 Unix秒时间戳
stream str 直播回放视频流
type num 类型? 2一般回放?

data.ban_list 数组中的对象:

字段 类型 内容 备注
start_time num 不可发布片段的开始时间戳 Unix秒时间戳
end_time num 不可发布片段的结束时间戳 Unix秒时间戳

示例:

获取某个场次的视频流

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetSliceStream?live_key=637117671085969203&start_time=1756479520&end_time=1756488870' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "list": [
      {
        "start_time": 1756479528,
        "end_time": 1756488870,
        "stream": "https://bvc-live.bilivideo.com/hls-record-gateway/videoPlay?none=为了防止信息泄露,不提供完整链接。目前该视频流可以获取违规片段的视频。",
        "type": 2
      }
    ],
    "ban_list": [
      {
        "start_time": 1756487070,
        "end_time": 1756488870
      }
    ]
  }
}

获取某位主播的切片视频流

https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetUserSliceStream

请求方法: GET

认证方式: Cookie (SESSDATA)

需要获得那位主播的授权才能获取数据。

url参数

参数名 类型 内容 必要性 备注
live_key str 标记直播场次的key 必要 对应获取直播回放列表data.replay_info[i].live_key
start_time num 直播开始时间戳 必要 对应获取直播回放列表data.replay_info[i].start_time
end_time num 直播结束时间戳 必要 对应获取直播回放列表data.replay_info[i].end_time
live_uid num 目标主播的uid 必要
web_location str (?) 非必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -400参数缺失
-101未登录
0成功
100非法参数
202场次无效
301没有剪辑权限
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
list arr 直播回放视频列表 获取切片视频流data.list数组相同

示例:

获取某个场次的视频流,他已授权你回放剪辑权限

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetUserSliceStream?live_key=646125196758224691&start_time=1759507126&end_time=1759513440&live_uid=1' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "list": [
      {
        "start_time": 1759507132,
        "end_time": 1759508222,
        "stream": "https://bvc-live.bilivideo.com/hls-record-gateway/videoPlay?none=获取视频流的参数。",
        "type": 2
      }
    ]
  }
}

获取直播会话数据

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetLiveSessionData

请求方法: GET

认证方式: Cookie (SESSDATA)

主播获取自己的直播会话数据时使用。

url参数

参数名 类型 内容 必要性 备注
live_key str 标记直播场次的key 必要
start_tm str 开始时间 必要 格式为yyyy-mm-dd HH:MM:SS,时区为UTC+08:00(中国标准时间);取值对实际无影响
end_tm str 开始时间 必要 格式为yyyy-mm-dd HH:MM:SS,时区为UTC+08:00(中国标准时间);取值对实际无影响
web_location str (?)

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -500服务器错误
-101未登录
0成功
100非法参数
202场次无效
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
session_data arr 会话数据
max_danmaku num 弹幕最多的时间戳 Unix秒时间戳没有则为0
max_pcu num 进房最多的时间戳 Unix秒时间戳没有则为0
max_value num (?) 效果未知
high_light_data arr 高光时刻数据
ass_url str ASS字幕链接 用作弹幕显示
high_light_stat obj 高亮状态信息

data.session_data 数组中的对象:

字段 类型 内容 备注
ts num 采样时间 Unix秒时间戳
value num 弹幕数量

data.high_light_data 数组中的对象:

字段 类型 内容 备注
id num 高光id
type num 高光类型 1弹幕
2进房
start_time num 高光开始时间戳 Unix秒时间戳
end_time num 高光结束时间戳 Unix秒时间戳
title str 高光提示标题
cover str (?) 目前为""
extra str (?) 目前为""

data.high_light_stat 对象:

字段 类型 内容 备注
original_hl num “高光时刻”数量 有“高光时刻”时存在
manual_hl num “已保存”数量 有“已保存”时存在,调用手动保存高亮片段进行保存

注: 可能还存在一个“回溯录制”的字段。

示例:

获取场次key为607113721045847859的会话数据

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetLiveSessionData?live_key=607113721045847859&start_tm=0000-01-01+00:00:00&end_tm=1970-01-01+00:00:00' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "session_data": [
      {
        "ts": 1752927300,
        "value": 0
      },
      {
        "ts": 1752927360,
        "value": 0
      },
      {
        "ts": 1752927420,
        "value": 0
      },
      // 省略掉大部分重复内容
      {
        "ts": 1752946620,
        "value": 0
      },
      {
        "ts": 1752946680,
        "value": 0
      },
      {
        "ts": 1752946740,
        "value": 0
      }
    ],
    "max_danmaku": 1752928860,
    "max_pcu": 1752928200,
    "max_value": 0,
    "high_light_data": [
      {
        "id": 9628113,
        "type": 1,
        "start_time": 1752928860,
        "end_time": 1752929040,
        "title": "弹幕高光 Top 1",
        "cover": "",
        "extra": ""
      },
      {
        "id": 9628114,
        "type": 1,
        "start_time": 1752938460,
        "end_time": 1752938640,
        "title": "弹幕高光 Top 2",
        "cover": "",
        "extra": ""
      },
      {
        "id": 9628115,
        "type": 1,
        "start_time": 1752938040,
        "end_time": 1752938220,
        "title": "弹幕高光 Top 3",
        "cover": "",
        "extra": ""
      },
      {
        "id": 9628112,
        "type": 2,
        "start_time": 1752928140,
        "end_time": 1752928320,
        "title": "进房高光时刻",
        "cover": "",
        "extra": ""
      }
    ],
    "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/web-room/v1/videoService/GetUserLiveSessionData

请求方法: GET

认证方式: Cookie (SESSDATA)

需要获得那位主播的授权才能获取数据。

若已提供live_keylive_uid参数,则必须正确提供start_tmend_tm参数,否则服务器可能无法成功响应,响应头中的Bili-Status-Code-500

url参数

参数名 类型 内容 必要性 备注
live_key str 标记直播场次的key 必要 需要提供目标主播的live_key
start_tm str 开始时间 必要 格式为yyyy-mm-dd HH:MM:SS,时区为UTC+08:00(中国标准时间);取值对实际无影响
end_tm str 开始时间 必要 格式为yyyy-mm-dd HH:MM:SS,时区为UTC+08:00(中国标准时间);取值对实际无影响
live_uid num 目标主播的uid 必要
web_location str (?)

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -500服务器错误
-101未登录
0成功
100非法参数
202场次无效
301没有剪辑权限
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体 获取直播会话数据的信息本体相同

示例:

获取某位主播的某场次会话数据,他已授权你回放剪辑权限

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetUserLiveSessionData?live_key=645810156612095795&start_tm=2025-10-02+20:58:21&end_tm=2025-10-03+01:21:06&live_uid=1' \
  -b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "session_data": [
      {
        "ts": 1759507080,
        "value": 0
      },
      {
        "ts": 1759507140,
        "value": 0
      },// 省略掉绝大部分数据
      {
        "ts": 1759513440,
        "value": 1
      }
    ],
    "max_danmaku": 1759513380,
    "max_pcu": 1759507200,
    "max_value": 0,
    "high_light_data": [
      {
        "id": 12472658,
        "type": 1,
        "start_time": 1759513320,
        "end_time": 1759513440,
        "title": "弹幕高光 Top 1",
        "cover": "",
        "extra": ""
      }// 省略掉剩下两条
    ],
    "high_light_stat": {
      "original_hl": 3
    }
  }
}

获取用户高光列表

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserGetManualHighlightList (主播使用)

https://api.live.bilibili.com/xlive/web-room/v1/videoService/UserGetManualHighlightList (粉丝使用)

请求方法: GET

认证方式: Cookie (SESSDATA)

url参数

参数名 类型 内容 必要性 备注
live_key str 标记直播场次的key 必要
manual_type num 查询类型 必要 1回溯录制
2已保存片段
live_uid num 目标主播的uid 必要(可选) 通过粉丝使用接口时必要
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 “已保存”数量 有“已保存”时存在,调用手动保存高亮片段进行保存

注: 可能还存在一个“回溯录制”的字段。

示例:

主播获取用户保存列表

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserGetManualHighlightList?live_key=625727121464233779&manual_type=2' \
  -b 'SESSDATA=xxx'

粉丝获取用户保存列表

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/UserGetManualHighlightList?live_key=645810156612095795&manual_type=2&live_uid=1' \
  -b 'SESSDATA=xxx'
查看响应示例:

只有高光时刻的示例:

{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "high_light_stat": {
      "original_hl": 4
    }
  }
}

有保存片段的示例:

{
  "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
    }
  }
}

获取某个时间的视频帧

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVideoKeyFrame (主播使用)

https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetAnchorVideoKeyFrame (粉丝使用)

请求方法: POST

认证方式: Cookie (SESSDATA)

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

url参数

参数名 类型 内容 必要性 备注
csrf str CSRF Token位于cookie 必要

正文参数( application/json

根对象:

参数名 类型 内容 必要性 备注
live_key str 标记直播场次的key 必要
live_uid num 目标主播的uid 必要(可选) 通过粉丝使用接口时必要
time_list str 秒时间戳列表,用,分隔 必要 时间间隔低于30秒将会导致只提供部分内容

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -400请求错误
-111csrf校验失败
-101未登录
0成功
10121188权限不足
message str 错误信息 成功时为"0"
ttl num 1
data obj 信息本体

data 对象:

字段 类型 内容 备注
list arr 指定时间的视频帧列表 场次key无效时为null

data.list 数组中的对象:

字段 类型 内容 备注
ts num 时间戳 对应请求的time_list其中某一个
url str 该时间的视频帧 该时间有视频且取帧成功时存在

示例:

主播获取某场直播的视频帧

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/GetAnchorVideoKeyFrame?csrf=xxx' \
  -H 'Content-Type: application/json' \
  -b 'SESSDATA=xxx;bili_jct=xxx' \
  -d '{"live_key":"609431465787395891","time_list":"174758900,1747658930,1747658960"}'

粉丝获取某场直播的视频帧

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/GetAnchorVideoKeyFrame?csrf=xxx' \
  -H 'Content-Type: application/json' \
  -b 'SESSDATA=xxx;bili_jct=xxx' \
  -d '{"live_key":"645810156612095795","time_list":"1759410340,1759418126","live_uid":1}'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "list": [
      {
        "ts": 174758900
      },
      {
        "ts": 1747658930,
        "url": "https://jssz-boss.hdslb.com/live2arc_anchor_video/live_438160221_32373699_20250519204900.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=y4zI4XTQzlOkmSKg%2F20250520%2Fjssz%2Fs3%2Faws4_request&X-Amz-Date=20250520T180202Z&X-Amz-Expires=7200&X-Amz-SignedHeaders=host&X-Amz-Signature=8d42a3d5fd1995e5e2bf98d453a986bec48529a9ae97d5d7eedee8a59b22418a"
      },
      {
        "ts": 1747658960,
        "url": "https://jssz-boss.hdslb.com/live2arc_anchor_video/live_438160221_32373699_20250519205001.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=y4zI4XTQzlOkmSKg%2F20250520%2Fjssz%2Fs3%2Faws4_request&X-Amz-Date=20250520T180202Z&X-Amz-Expires=7200&X-Amz-SignedHeaders=host&X-Amz-Signature=f4a3803d4147492ced14eefbb6953e772b886e195d51dbfac800e77320adeba2"
      }
    ]
  }
}

手动保存高亮片段

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/UserManualSaveHighlight (主播使用)

https://api.live.bilibili.com/xlive/web-room/v1/videoService/UserManualSaveHighlight (粉丝使用)

请求方法: POST

认证方式: Cookie (SESSDATA)

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

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

参数名 类型 内容 必要性 备注
live_key str 标记直播场次的key 必要
start_ts num 开始时间戳 必要 Unix 秒时间戳
end_ts num 结束时间戳 必要 Unix 秒时间戳
live_uid num 目标主播的uid 必要(可选) 通过粉丝使用接口时必要
csrf str CSRF Token位于cookie 必要

注: 开始时间减结束时间的结果小于1可能导致直播回放片段发布页面无法处理这个片段。

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -400请求错误
-111csrf校验失败
-101未登录
0成功
message str 错误信息
ttl num 1
data obj 信息本体 成功时为空对象

data 对象:

字段 类型 内容 备注
code num -1
message str 错误提示 主播没有对应场次 , 保存时间点未开播

示例:

主播手动保存一个片段

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'

粉丝手动保存一个片段

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/UserManualSaveHighlight' \
  --data-urlencode 'live_key=645810156612095795' \
  --data-urlencode 'start_ts=1759409907' \
  --data-urlencode 'end_ts=1759410087' \
  --data-urlencode 'live_uid=1' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {}
}

投稿直播回放片段

https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/AnchorPublishVideoSlice

请求方法: POST

认证方式: Cookie (SESSDATA)

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

主播投稿自己的直播回放片段时使用。

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

参数名 类型 内容 必要性 备注
live_key str 标记直播场次的key 必要 必须为自己的live_key
start_ts num 开始时间戳 必要 开始和结束时间目前相差不能大于2小时
end_ts num 结束时间戳 必要 开始和结束时间目前相差不能大于2小时
av_title str 切片标题 必要 不能与现有标题重复
av_cover str 切片封面URL 必要 必须为.hdslb.com域名下的图片,否则合成结束时会出错
av_highlight num 高光绑定 非必要
with_subtitle num 是否携带字幕 非必要 效果不明确
with_danmaku num 是否带弹幕? 非必要 传递1时可能导致处于“发布中”状态时不在获取已发布片段的信息中显示
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回复

根对象:

字段 类型 内容 备注
code num 返回值 -111csrf校验失败
-101未登录
0成功
4000时长过长
4001操作太快
4002片段已投稿
4003请选择精彩片段再投稿哦
4006标题已使用
4008不被允许的视频倍速
4009该片段存在违规内容不允许投稿
message str 错误信息
ttl num 1
data obj 信息本体 成功时有效

data 对象:

字段 类型 内容 备注
video_slice_id num 切片id

注: 若返回值出现4001不一定就是操作太快不提供某些必要参数或某个参数不正确也会导致返回4001。

示例:

为某个场次投稿切片

curl 'https://api.live.bilibili.com/xlive/app-blink/v1/anchorVideo/AnchorPublishVideoSlice' \
  --data-urlencode 'live_key=609431465787395891' \
  --data-urlencode 'start_ts=1747680306' \
  --data-urlencode 'end_ts=1747687506' \
  --data-urlencode 'av_title=2025051920' \
  --data-urlencode 'av_cover=https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png' \
  --data-urlencode 'av_highlight=0' \
  --data-urlencode 'with_subtitle=0' \
  --data-urlencode 'with_danmaku=0' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data":{
    "video_slice_id": 898374
  }
}

给某位主播投稿直播回放片段

https://api.live.bilibili.com/xlive/web-room/v1/videoService/UserPublishOtherVideoSlice

请求方法: POST

认证方式: Cookie (SESSDATA)

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

需要获得那位主播的授权。

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

投稿直播回放片段的正文参数相比,多了live_uid参数,少了av_speed参数,其它参数基本相同。

参数名 类型 内容 必要性 备注
live_uid num 目标主播的uid 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 -111csrf校验失败
-101未登录
0成功
100非法参数
4000时长过长
5006用户已经投稿过该片段
message str 错误信息
ttl num 1
data obj 信息本体 成功时有效

data 对象:

字段 类型 内容 备注
video_slice_id num 切片id 似乎与主播不共用一个切片id

示例:

为某个场次投稿切片

curl 'https://api.live.bilibili.com/xlive/web-room/v1/videoService/UserPublishOtherVideoSlice' \
  --data-urlencode 'live_key=648437353747320627' \
  --data-urlencode 'start_ts=1760352154' \
  --data-urlencode 'end_ts=1760352214' \
  --data-urlencode 'av_title=202510201318' \
  --data-urlencode 'av_cover=https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png' \
  --data-urlencode 'av_highlight=0' \
  --data-urlencode 'with_subtitle=0' \
  --data-urlencode 'with_danmaku=0' \
  --data-urlencode 'with_reserve=1' \
  --data-urlencode 'live_uid=1' \
  --data-urlencode 'csrf=xxx' \
  -b 'SESSDATA=xxx;bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data":{
    "video_slice_id": 4300
  }
}

下载整场直播回放的流程

此处的流程是从直播回放的“下载回放”功能得出的。

  1. 请求整场直播回放下载链接接口,让它开始合成回放;

  2. (可选)请求获取回放的信息接口,生成合成进度页面;

  3. 轮询回放合成状态,当状态变为30转到流程4变为-30转到流程5

  4. 再次请求整场直播回放下载链接,获取下载链接并下载。

  5. 请求获取直播回放列表,刷新页面并根据信息提示失败。

直播回放片段发布页面

通过此处的链接可以打开直播回放片段发布页面。

https://live.bilibili.com/web-cut/quick-publish.html (网页端)

https://live.bilibili.com/web-cut/quick-publish-mobile.html (移动端)

移动端强制限制只能投稿15分钟的片段网页端则看投稿直播回放片段接口允许多长的时间。

url查询参数

参数名 类型 内容 必要性 备注
start_time num 直播开始时间 必要 对应获取直播回放列表data.replay_info[i].start_time
end_time num 直播结束时间 必要 对应获取直播回放列表data.replay_info[i].end_time
live_key str 标记直播场次的key 必要 对应获取直播回放列表data.replay_info[i].live_key
cover str 封面URL 非必要 可以自定义封面必须为B站图床详见投稿接口),或者在获取直播回放列表使用直播封面
anchor_id num 目标主播的uid 非必要 要剪辑某位主播的回放时必须提供
anchor_name num 目标主播的名称 非必要 某位主播的直播回放剪辑界面传递

示例链接:

网页端: https://live.bilibili.com/web-cut/quick-publish.html?start_time=1747508293&end_time=1747508499&live_key=609041817764368179&cover=https%3A%2F%2Fi0.hdslb.com%2Fbfs%2Flive%2F59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png

移动端: https://live.bilibili.com/web-cut/quick-publish-mobile.html?start_time=1747508293&end_time=1747508499&live_key=609041817764368179

粉丝剪辑: 59fc254c1f.png&anchor_id=1&anchor_name=null

直播回放剪辑页面

此链接用于打开直播回放轻剪辑页面,在点击直播回放片段发布页面的“高级剪辑”按钮或某一个主播回放剪辑草稿粉丝回放剪辑草稿后自动打开。

https://live.bilibili.com/web-cut/index.html

url查询参数

参数名 类型 内容 必要性 备注
start_time num 直播开始时间戳 必要 用于获取切片视频流
end_time num 直播结束时间戳 必要 用于获取切片视频流
live_key str 标记直播场次的key 必要 用于获取切片视频流
draft_id num 回放剪辑id 必要
init num (?) 非必要 作用尚不明确
with_reserve num 投稿携带下场直播提醒? 非必要 0不携带1携带
anchor_id num 目标主播的uid 非必要

示例链接: https://live.bilibili.com/web-cut/index.html?start_time=1747658704&end_time=1747705213&live_key=609431465787395891&draft_id=988275

某位主播的直播回放剪辑界面

此链接用于打开某位主播的直播回放剪辑界面,需要获得那位主播的授权。

主播自己访问该界面也需要自己在剪辑权限页面内开启该功能。

https://live.bilibili.com/web-cut/replay-cut.html

参数名 类型 内容 必要性 备注
anchor_Id num 主播uid 必要 参数名不区分大小写
anchor_name str 主播名称 非必要 用于在UI中显示主播名称目前可随意传递若不提供将使用 未知主播 显示

示例链接: https://live.bilibili.com/web-cut/replay-cut.html?anchor_Id=1&anchor_name=bishi