历史记录
获取历史记录列表_web端
https://api.bilibili.com/x/web-interface/history/cursor
请求方式:GET
认证方式:Cookie (SESSDATA)
注:max、business、view_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=archive或business=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=archive或business=pgc时):视频cid 文集(当business=article-list时):文章cvid |
| part |
str |
观看到的视频分 P 标题 |
仅用于稿件视频 |
| business |
str |
业务类型 |
见请求参数 |
| dt |
num |
记录查看的平台代码 |
1 3 5 7:手机端 2:web端 4 6:pad端 9: 智能音箱/游戏机33:TV端 0:其他 |
示例:
获取当前时间截止的5条历史记录
curl -G 'https://api.bilibili.com/x/web-interface/history/cursor' \
--data-urlencode 'ps=5' \
-b 'SESSDATA=xxx'
查看响应示例:
```json
{
"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'
查看响应示例:
```json
{
"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'
查看响应示例:
```json
{
"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'
查看响应示例:
```json
{
"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'
查看响应示例:
```json
{
"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'
查看响应示例:
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": false
}
```