history.md 36 KB

历史记录

获取历史记录列表_web端

https://api.bilibili.com/x/web-interface/history/cursor

请求方式:GET

认证方式:Cookie (SESSDATA)

注:maxbusinessview_at参数用于历史记录列表的 IFS (无限滚动),其用法类似链表的 next 指针

本接口也可以返回已失效稿件的信息

url参数:

参数名 类型 内容 必要性 备注
max num 历史记录截止目标 id 非必要 默认为 0
稿件:稿件 avid
剧集(番剧 / 影视):剧集 ssid
直播:直播间 id
文集:文集 rlid
文章:文章 cvid
business str 历史记录截止目标业务类型 非必要 默认为空
archive:稿件
pgc:剧集(番剧 / 影视)
live:直播
article-list:文集
article:文章
view_at num 历史记录截止时间 非必要 时间戳
默认为 0
0 为当前时间
type str 历史记录分类筛选 非必要 all:全部类型(默认)
archive:稿件
live:直播
article:文章
ps num 每页项数 非必要 默认为 20,最大 30

json回复:

根对象:

字段 类型 内容 备注
code num 返回值 0:成功
-101:账号未登录
-400:请求错误
message str 错误信息 默认为 0
ttl num 1
data array 历史记录列表

data对象:

字段 类型 内容 备注
cursor obj 历史记录页面信息
tab array 历史记录筛选类型
list array 分段历史记录列表

data中的cursor对象:

字段 类型 内容 备注
max num 最后一项目标 id 见请求参数
view_at num 最后一项时间节点 时间戳
business str 最后一项业务类型 见请求参数
ps num 每页项数

data中的tab数组:

类型 内容 备注
0 obj 历史记录筛选类型 1
1 obj 历史记录筛选类型 2
2 obj 历史记录筛选类型 3

tab数组中的对象:

字段 类型 内容 备注
type str 类型
name str 类型名

data中的list数组:

类型 内容 备注
0 obj 历史记录 1
n obj 历史记录 (n+1) 按照查看顺序排列
…… obj

list数组中的对象:

字段 类型 内容 备注
title str 条目标题
long_title str 条目副标题
cover str 条目封面图 url 用于专栏以外的条目
covers 有效时:array
无效时:null
条目封面图组 仅用于专栏
uri str 重定向 url 仅用于剧集和直播
history obj 条目详细信息
videos num 视频分 P 数目 仅用于稿件视频
author_name str UP 主昵称
author_face str UP 主头像 url
author_mid num UP 主 mid
view_at num 查看时间 时间戳
progress num 视频观看进度 单位为秒
用于稿件视频或剧集
badge str 角标文案 稿件视频 / 剧集 / 笔记
show_title str 分 P 标题 用于稿件视频或剧集
duration num 视频总时长 用于稿件视频或剧集
current str (?)
total num 总计分集数 仅用于剧集
new_desc str 最新一话 / 最新一 P 标识 用于稿件视频或剧集
is_finish num 是否已完结 仅用于剧集
0:未完结
1:已完结
is_fav num 是否收藏 0:未收藏
1:已收藏
kid num 条目目标 id 详细内容见参数
tag_name str 子分区名 用于稿件视频和直播
live_status num 直播状态 仅用于直播
0:未开播
1:已开播

list数组中的对象中的covers数组:

类型 内容 备注
0 str 封面图片 1
n str 封面图片 (n+1)
…… str ……

list数组中的对象中的history对象:

字段 类型 内容 备注
oid num 目标id 稿件视频&剧集(当business=archivebusiness=pgc时):稿件avid
直播(当business=live时):直播间id
文章(当business=article时):文章cvid
文集(当business=article-list时):文集rlid
epid num 剧集epid 仅用于剧集
bvid str 稿件bvid 仅用于稿件视频
page num 观看到的视频分P数 仅用于稿件视频
cid num 观看到的对象id 稿件视频&剧集(当business=archivebusiness=pgc时):视频cid
文集(当business=article-list时):文章cvid
part str 观看到的视频分 P 标题 仅用于稿件视频
business str 业务类型 见请求参数
dt num 记录查看的平台代码 1 3 5 7:手机端
2:web端
4 6:pad端
33:TV端
0:其他

示例:

获取当前时间截止的5条历史记录

curl -G 'https://api.bilibili.com/x/web-interface/history/cursor' \
--data-urlencode 'ps=5' \
-b 'SESSDATA=xxx'

查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "cursor": {
            "max": 26193,
            "view_at": 1592985807,
            "business": "pgc",
            "ps": 5
        },
        "tab": [
            {
                "type": "archive",
                "name": "视频"
            },
            {
                "type": "live",
                "name": "直播"
            },
            {
                "type": "article",
                "name": "专栏"
            }
        ],
        "list": [
            {
                "title": "韩国漫画如何出海掘金?一年出口额2.8亿元",
                "long_title": "",
                "cover": "",
                "covers": [
                    "https://i0.hdslb.com/bfs/article/b170c6fd7429ae205d6cb935e1d431710d82609d.jpg"
                ],
                "uri": "",
                "history": {
                    "oid": 6470274,
                    "epid": 0,
                    "bvid": "",
                    "page": 0,
                    "cid": 0,
                    "part": "",
                    "business": "article",
                    "dt": 2
                },
                "videos": 0,
                "author_name": "三文娱",
                "author_face": "http://i1.hdslb.com/bfs/face/98566839756a8e3de6e183109984b032de6ff2d9.jpg",
                "author_mid": 34772409,
                "view_at": 1593000539,
                "progress": 0,
                "badge": "专栏",
                "show_title": "",
                "duration": 0,
                "current": "",
                "total": 0,
                "new_desc": "",
                "is_finish": 0,
                "is_fav": 0,
                "kid": 6470274,
                "tag_name": "",
                "live_status": 0
            },
            {
                "title": "从国际空间站俯瞰地球,静谧蓝星守护者",
                "long_title": "",
                "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/f07d8a0c7c5655f81cf1586903a121f2680cf3bc.jpg",
                "covers": null,
                "uri": "https://live.bilibili.com/14047",
                "history": {
                    "oid": 14047,
                    "epid": 0,
                    "bvid": "",
                    "page": 0,
                    "cid": 0,
                    "part": "",
                    "business": "live",
                    "dt": 2
                },
                "videos": 0,
                "author_name": "Zelo-Balance",
                "author_face": "http://i1.hdslb.com/bfs/face/7303b3032d1e13ca7c788cd9c30d4430f8ffd1ea.jpg",
                "author_mid": 19193,
                "view_at": 1592999822,
                "progress": 0,
                "badge": "直播中",
                "show_title": "",
                "duration": 0,
                "current": "",
                "total": 0,
                "new_desc": "",
                "is_finish": 0,
                "is_fav": 0,
                "kid": 14047,
                "tag_name": "户外",
                "live_status": 1
            },
            {
                "title": "许巍 《蓝莲花》吉他Cover,这回你们不用截图抓我了吧",
                "long_title": "",
                "cover": "http://i2.hdslb.com/bfs/archive/0225b1f1a790393097ceebb51e89796be806d6bc.jpg",
                "covers": null,
                "uri": "",
                "history": {
                    "oid": 883617049,
                    "epid": 0,
                    "bvid": "BV1sK4y147ob",
                    "page": 1,
                    "cid": 205017957,
                    "part": "许巍 《蓝莲花》 Cover_1",
                    "business": "archive",
                    "dt": 2
                },
                "videos": 1,
                "author_name": "硬核拆解",
                "author_face": "http://i1.hdslb.com/bfs/face/4e131c9609299303cdde882792fc62b9f99cdcde.jpg",
                "author_mid": 427494870,
                "view_at": 1592999572,
                "progress": 13,
                "badge": "",
                "show_title": "",
                "duration": 91,
                "current": "",
                "total": 0,
                "new_desc": "",
                "is_finish": 0,
                "is_fav": 0,
                "kid": 883617049,
                "tag_name": "演奏",
                "live_status": 0
            },
            {
                "title": "从清楚与混沌之分看Vtuber形象塑造",
                "long_title": "",
                "cover": "",
                "covers": [
                    "https://i0.hdslb.com/bfs/article/5ddb94dd1890c639622717c7083fb2917b4aa475.jpg"
                ],
                "uri": "",
                "history": {
                    "oid": 268656,
                    "epid": 0,
                    "bvid": "",
                    "page": 0,
                    "cid": 6233590,
                    "part": "",
                    "business": "article-list",
                    "dt": 2
                },
                "videos": 0,
                "author_name": "普天一光",
                "author_face": "http://i2.hdslb.com/bfs/face/3702810bdac3d5103d684e61dc5bc8492a74f904.jpg",
                "author_mid": 6614889,
                "view_at": 1592998686,
                "progress": 0,
                "badge": "专栏",
                "show_title": "",
                "duration": 0,
                "current": "",
                "total": 0,
                "new_desc": "",
                "is_finish": 0,
                "is_fav": 0,
                "kid": 268656,
                "tag_name": "",
                "live_status": 0
            },
            {
                "title": "百妖谱",
                "long_title": "庆忌(下)",
                "cover": "http://i0.hdslb.com/bfs/archive/695a4566d05620a24c51d6eb935fa4767d673b45.jpg",
                "covers": null,
                "uri": "https://www.bilibili.com/bangumi/play/ss26193",
                "history": {
                    "oid": 370908663,
                    "epid": 326789,
                    "bvid": "",
                    "page": 0,
                    "cid": 199204975,
                    "part": "",
                    "business": "pgc",
                    "dt": 3
                },
                "videos": 0,
                "author_name": "",
                "author_face": "",
                "author_mid": 0,
                "view_at": 1592985807,
                "progress": 533,
                "badge": "国创",
                "show_title": "第8话 庆忌(下)",
                "duration": 1402,
                "current": "",
                "total": 12,
                "new_desc": "更新至第10话",
                "is_finish": 0,
                "is_fav": 0,
                "kid": 26193,
                "tag_name": "",
                "live_status": 0
            }
        ]
    }
}

获取视频观看历史记录_web端旧版

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

请求方式:GET

认证方式:Cookie (SESSDATA)

本接口也可以返回已失效稿件的信息

url参数:

参数名 类型 内容 必要性 备注
pn num 页码 非必要 默认为1
ps num 每页项数 非必要

json回复:

根对象:

字段 类型 内容 备注
code num 返回值 0:成功
-101:账号未登录
-400:请求错误
message str 错误信息 默认为0
ttl num 1
data array 历史记录列表

data数组:

类型 内容 备注
0 obj 历史观看1
n obj 历史观看(n+1) 按照观看顺序排列
项数为总计观看视频数
…… obj …… ……

data数组中的对象:

字段 类型 内容 备注
aid num 稿件avid
videos num 视频分P总数 默认为1
tid num 分区tid
tname str 子分区名称
copyright num 是否转载 1:原创
2:转载
pic str 视频封面图片url
title str 稿件标题
pubdate num 稿件发布时间 时间戳
ctime num 用户提交稿件的时间 时间戳
desc str 视频简介
state num 视频状态 略,见获取视频详细信息(web端)中的state备注
attribute(仅做历史性保留) num 稿件属性位配置 本字段已被删除
略,见获取视频详细信息(web端)中的attribute备注
duration num 视频总计持续时长(所有分P) 单位为秒
rights obj 视频属性标志 略,见获取视频详细信息(web端)中的rights对象
owner obj 视频UP主信息 略,见获取视频详细信息(web端)中的owner对象
stat obj 视频状态数 略,见获取视频详细信息(web端)中的stat对象
dynamic str 视频同步发布的的动态的文字内容 无为空
cid num 视频1P cid
dimension obj 视频1P分辨率 略,见获取视频详细信息(web端)中的dimension对象
bangumi obj 番剧/影视信息 非番剧/影视无此项
cheese obj 课程信息 非课程无此项
favorite bool 是否已收藏 true:已收藏
false:未收藏
type num 视频属性 3:普通视频
4:剧集
10:课程
sub_type num 附视频属性 0:普通视频
1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
7:综艺
device num 观看平台代码 1 3 5 7:手机端
2:web端
4 6:pad端
33:TV端
0:其他
page obj 最后观看的分P信息
count num 分P数 非投稿视频无此项
progress num 观看进度 单位为秒
view_at num 观看时间 时间戳
kid num 稿件avid
business str 视频类型标识 archive:用户投稿视频
pgc:番剧/影视
cheese:课程
redirect_link str 重定向url
bvid str 稿件bvid

data数组中的对象bangumi对象:

字段 类型 内容 备注
cover str 番剧封面图片url
ep_id num 番剧epid
episode_status num ???
follow num 0 作用尚不明确
long_title str 单集标题
season obj 剧集信息
title str 集数

bangumi中的season对象:

字段 类型 内容 备注
is_finish num 是否完结 0:连载中
1:完结
newest_ep_id num 最细一话epid
newest_ep_index str 最细一话集数
season_id num 番剧ssid
season_status num ???
season_type num ???
title str 番剧标题
total_count num 总集数

data数组中的对象cheese对象:

字段 类型 内容 备注
cover str 课程封面图片url
long_title str 完整标题
number str 本集数
season_id num 课程ssid
update_info str 总集数

示例:

查询当前视频历史记录列表

curl -G 'https://api.bilibili.com/x/v2/history' \
--data-urlencode 'ps=5' \
--data-urlencode 'pn=1' \
-b 'SESSDATA=xxx'

查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": [
        {
            "aid": 96523832,
            "videos": 1,
            "tid": 33,
            "tname": "连载动画",
            "copyright": 2,
            "pic": "http://i0.hdslb.com/bfs/archive/dfc29be381565ee041a0ec9cfc7a32f8a63f76cd.jpg",
            "title": "【1月】异度侵入 ID:INVADED 12【独家正版】",
            "pubdate": 1584289800,
            "ctime": 1584289800,
            "desc": "#12",
            "state": 0,
            "attribute": 338688,
            "duration": 1481,
            "redirect_url": "https://www.bilibili.com/bangumi/play/ep307457",
            "rights": {
                "bp": 0,
                "elec": 0,
                "download": 0,
                "movie": 0,
                "pay": 1,
                "hd5": 1,
                "no_reprint": 0,
                "autoplay": 0,
                "ugc_pay": 0,
                "is_cooperation": 0,
                "ugc_pay_preview": 0,
                "no_background": 0
            },
            "owner": {
                "mid": 928123,
                "name": "哔哩哔哩番剧",
                "face": "http://i1.hdslb.com/bfs/face/7a8412cbacb9fd18f40ddbbf0ad183e45afc1365.jpg"
            },
            "stat": {
                "aid": 96523832,
                "view": 4772927,
                "danmaku": 108890,
                "reply": 48584,
                "favorite": 46,
                "coin": 61768,
                "share": 290,
                "now_rank": 0,
                "his_rank": 0,
                "like": 1241,
                "dislike": 0
            },
            "dynamic": "",
            "cid": 164789275,
            "dimension": {
                "width": 1920,
                "height": 1080,
                "rotate": 0
            },
            "favorite": false,
            "type": 4,
            "sub_type": 1,
            "device": 3,
            "page": {
                "cid": 164789275,
                "page": 1,
                "from": "vupload",
                "part": "ID_INVADED_112.encoded",
                "duration": 1481,
                "vid": "",
                "weblink": "",
                "dimension": {
                    "width": 1920,
                    "height": 1080,
                    "rotate": 0
                }
            },
            "bangumi": {
                "ep_id": 307457,
                "title": "12",
                "long_title": "CHANNELED",
                "episode_status": 13,
                "follow": 0,
                "cover": "http://i0.hdslb.com/bfs/archive/dfc29be381565ee041a0ec9cfc7a32f8a63f76cd.jpg",
                "season": {
                    "season_id": 29310,
                    "title": "异度侵入 ID:INVADED",
                    "season_status": 13,
                    "is_finish": 1,
                    "total_count": 13,
                    "newest_ep_id": 307774,
                    "newest_ep_index": "13",
                    "season_type": 1
                }
            },
            "progress": 277,
            "view_at": 1588831600,
            "kid": 29310,
            "business": "pgc",
            "redirect_link": "https://www.bilibili.com/bangumi/play/ep307457",
            "bvid": "BV1K7411f7uu"
        },
        {
            "aid": 497899395,
            "videos": 1,
            "tid": 189,
            "tname": "电脑装机",
            "copyright": 1,
            "pic": "http://i0.hdslb.com/bfs/archive/fd4e0893b234ee729cf15198065eced98367ebfe.jpg",
            "title": "600元的2007款iMac,如今过时了吗?",
            "pubdate": 1587727345,
            "ctime": 1587708111,
            "desc": "苹果东西是真的保值,酷睿2现在都还能卖的这么贵。第一次使用4K画质进行拍摄,应该比以前清楚一些。如有问题请在评论区指出,谢谢!",
            "state": 0,
            "attribute": 16768,
            "duration": 389,
            "mission_id": 13106,
            "rights": {
                "bp": 0,
                "elec": 0,
                "download": 0,
                "movie": 0,
                "pay": 0,
                "hd5": 1,
                "no_reprint": 1,
                "autoplay": 1,
                "ugc_pay": 0,
                "is_cooperation": 0,
                "ugc_pay_preview": 0,
                "no_background": 0
            },
            "owner": {
                "mid": 3391089,
                "name": "数字云糕Official",
                "face": "http://i2.hdslb.com/bfs/face/238dfbca5dda5de2d5ba95ee4e99804714e2b5e2.jpg"
            },
            "stat": {
                "aid": 497899395,
                "view": 23325,
                "danmaku": 92,
                "reply": 115,
                "favorite": 195,
                "coin": 132,
                "share": 23,
                "now_rank": 0,
                "his_rank": 0,
                "like": 555,
                "dislike": 0
            },
            "dynamic": "#IMAC##APPLE##MAC# 苹果东西是真的保值,酷睿2现在都还能卖的这么贵。第一次使用4K画质进行拍摄,应该比以前清楚一些。",
            "cid": 182570131,
            "dimension": {
                "width": 1920,
                "height": 1080,
                "rotate": 0
            },
            "favorite": false,
            "type": 3,
            "sub_type": 0,
            "device": 3,
            "page": {
                "cid": 182570131,
                "page": 1,
                "from": "vupload",
                "part": "iMac",
                "duration": 389,
                "vid": "",
                "weblink": "",
                "dimension": {
                    "width": 1920,
                    "height": 1080,
                    "rotate": 0
                }
            },
            "count": 1,
            "progress": -1,
            "view_at": 1588828357,
            "kid": 497899395,
            "business": "archive",
            "redirect_link": "https://www.bilibili.com/video/av497899395",
            "bvid": "BV1NK41157EF"
        }
    ]
}

删除历史记录

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

请求方式:POST

认证方式:Cookie (SESSDATA)

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

参数名 类型 内容 必要性 备注
kid str 删除的目标记录,格式为{业务类型}_{目标id}详见备注 必要 视频:archive_{稿件avid}
直播:live_{直播间id}
专栏:article_{专栏cvid}
剧集:pgc_{剧集ssid}
文集:article-list_{文集rlid}
csrf str CSRF Token(位于cookie) 必要

json回复:

根对象:

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

示例:

删除视频av540580868的观看历史记录

curl 'https://api.bilibili.com/x/v2/history/delete' \
--data-urlencode 'kid=archive_540580868' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'

查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

清空历史记录

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

请求方式:POST

认证方式:Cookie (SESSDATA)

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

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

json回复:

根对象:

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

示例:

清空历史记录

curl 'https://api.bilibili.com/x/v2/history/clear' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'

查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

停用历史记录

https://api.bilibili.com/x/v2/history/shadow/set

请求方式:POST

认证方式:Cookie (SESSDATA)

该操作不会影响原有历史记录

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

参数名 类型 内容 必要性 备注
switch bool 停用开关 非必要 true:停用
false:正常
默认为false
csrf str CSRF Token(位于cookie) 必要

json回复:

根对象:

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

示例:

停用历史记录功能

curl 'https://api.bilibili.com/x/v2/history/shadow/set' \
--data-urlencode 'switch=true' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'

查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

查询历史记录停用状态

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

请求方式:GET

认证方式:Cookie (SESSDATA)

json回复:

根对象:

字段 类型 内容 备注
code num 返回值 0:成功
-101:账号未登录
message str 错误信息 默认为0
ttl num 1
data bool 停用状态 true:停用
false:正常

示例:

当前状态为未停用视频历史记录

curl 'https://api.bilibili.com/x/v2/history/shadow' \
-b 'SESSDATA=xxx'

查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": false
}