bilibili-API-collect/video/report.md
2023-01-17 15:23:59 +08:00

5.9 KiB
Raw Blame History

视频观看数据上报


上报观看进度(双端)

https://api.bilibili.com/x/v2/history/report

请求方式POST

认证方式APP或CookieSESSDATA

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

参数名 类型 内容 必要性 备注
access_key str APP登录Token APP方式必要
aid num 稿件avid 必要
cid num 视频cid 必要 用于识别分P
progress num 观看进度 非必要 单位为秒
默认为0
platform str 平台标识 非必要 可为android
csrf str CSRF Token位于cookie Cookie方式必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-111csrf校验失败
-400请求错误
message str 错误信息 默认为0
ttl num 1

示例:

记录视频av13662970cid=126654047)的观看记录位于1248

Cookie方式

curl 'https://api.bilibili.com/x/v2/history/report' \
--data-urlencode 'aid=13662970' \
--data-urlencode 'cid=126654047' \
--data-urlencode 'progress=1248' \
--data-urlencode 'platform=android' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'

APP方式

curl 'https://api.bilibili.com/x/v2/history/report' \
--data-urlencode 'access_key=xxx' \
--data-urlencode 'aid=13662970' \
--data-urlencode 'cid=126654047' \
--data-urlencode 'progress=1248' \
--data-urlencode 'platform=android'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

上报视频播放心跳web端

https://api.bilibili.com/x/click-interface/web/heartbeat

请求方式POST

认证方式仅可CookieSESSDATA

默认间隔15秒一次

亦可记录播放历史

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

参数名 类型 内容 必要性 备注
aid num 稿件avid 必要(可选) avid与bvid任选一个
bvid str 稿件bvid 必要(可选) avid与bvid任选一个
cid num 视频cid 非必要 用于识别分P
epid num 番剧epid 非必要
sid num 番剧ssid 非必要
mid num 当前用户mid 非必要
played_time num 视频播放进度 非必要 单位为秒
默认为0
realtime num 总计播放时间 非必要 单位为秒
start_ts num 开始播放时刻 非必要 时间戳
type num 视频类型 非必要 3投稿视频
4剧集
10课程
sub_type num 剧集副类型 非必要 type=4时本参数有效
1番剧
2电影
3纪录片
4国创
5电视剧
7综艺
dt num 2 非必要
play_type num 播放动作 非必要 0播放中
1开始播放
2暂停
3继续播放
csrf str CSRF Token位于cookie 非必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-400请求错误
message str 错误信息 默认为0
ttl num 1

示例:

上报一次视频av2/BV1xx411c7mD的心跳数据

curl 'api.bilibili.com/x/click-interface/web/heartbeat' \
--data-urlencode 'aid=2' \
--data-urlencode 'bvid=BV1xx411c7mD' \
--data-urlencode 'cid=62131' \
--data-urlencode 'played_time=60' \
--data-urlencode 'realtime=60' \
--data-urlencode 'start_ts=1592720840' \
--data-urlencode 'type=3' \
--data-urlencode 'dt=2' \
--data-urlencode 'play_type=0' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}