bilibili-API-collect/history&toview/toview.md

554 lines
22 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 稍后再看
<img src="/imgs/toview.png" width="25" height="25"/>
## 视频添加稍后再看
>http://api.bilibili.com/x/v2/history/toview/add
*请求方式POST*
认证方式CookieSESSDATA
最多添加100个视频
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------------ | ------------------ |
| aid | num | 稿件avID | 必要(可选) | avID与bvID任选一个 |
| bvid | str | 稿件bvID | 必要(可选) | avID与bvID任选一个 |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf校验失败<br />-400请求错误<br />90001列表已满<br />90003稿件已经被删除 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
**示例:**
添加视频`av41687433`/`BV1ht41147kj`到稍后再看列表
avID方式
```shell
curl 'http://api.bilibili.com/x/v2/history/toview/add' \
--data-urlencode 'aid=41687433' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
bvID方式
```shell
curl 'http://api.bilibili.com/x/v2/history/toview/add' \
--data-urlencode 'bvid=BV1ht41147kj' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1
}
```
</details>
## 添加频道中所有视频到稍后再看
> http://space.bilibili.com/ajax/channel/addAllToView
*请求方式POST*
认证方式CookieSESSDATA
鉴权方式Cookie中`DedeUserID`及`DedeUserID__ckMd5`存在且不为0referer为 `.bilibili.com`域名下
带有转义
超过容量后会截取容量之内的添加
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------ | ---- |
| cid | num | 目标频道ID | 必要 | |
| mid | num | 目标频道所属的用户UID | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | -------- | --------------------------- |
| status | bool | 是否成功 | false失败<br />true成功 |
| data | str | 错误信息 | |
**示例:**
添加用户`UID=282994`下的频道`4693`中所有视频到稍后再看
```shell
curl 'http://space.bilibili.com/ajax/channel/addAllToView' \
--data-urlencode 'cid=4693' \
--data-urlencode 'mid=282994' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;DedeUserID=1;DedeUserID__ckMd5=1;'
-e 'https://www.bilibili.com'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"status": true,
"data": "操作成功"
}
```
</details>
## 获取稍后再看视频列表
> http://api.bilibili.com/x/v2/history/toview
*请求方式GET*
认证方式CookieSESSDATA
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | data | 数据本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ------ | ---------------- | ---- |
| count | num | 稍后再看视频数 | |
| list | array | 稍后再看视频列表 | |
`data`中的`list`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------- | ---------------------------------------------- |
| 0 | obj | 稍后再看1 | |
| n | obj | 稍后再看(n+1) | 按照添加顺序排列<br />项数为总计稍后再看视频数 |
| …… | obj | …… | …… |
| 99 | obj | 最后一项 | |
`data`中的`list`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | ------------------------------ | ------------------------------------------------------------ |
| aid | num | 稿件avID | |
| videos | num | 稿件分P总数 | 默认为1 |
| tid | num | 分区tID | |
| tname | str | 子分区名称 | |
| copyright | num | 是否转载 | 1原创<br />2转载 |
| pic | str | 稿件封面图片url | |
| title | str | 稿件标题 | |
| pubdate | num | 稿件发布时间 | 时间戳 |
| ctime | num | 用户提交稿件的时间 | 时间戳 |
| desc | str | 视频简介 | |
| state | num | 视频状态 | 0开放浏览<br />1橙色通过<br />-1待审<br />-2被打回<br />-3网警锁定<br />-4被锁定<br />-5管理员锁定可浏览<br />-6修复待审<br />-7暂缓审核<br />-8补档待审<br />-9等待转码<br />-10延迟审核<br />-11视频源待修<br />-12转储失败<br />-13允许评论待审<br />-14临时回收站<br />-15分发中<br />-16转码失败<br />-20创建未提交<br />-30创建已提交<br />-40定时发布<br />-100用户删除 |
| attribute | num | 稿件属性位配置 | |
| duration | num | 稿件总时长所有分P | 单位为秒 |
| rights | obj | 稿件属性标志 | |
| owner | obj | 稿件UP主信息 | |
| stat | obj | 稿件状态数 | |
| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 |
| dimension | obj | 稿件1P分辨率 | |
| count | num | 稿件分P数 | 非投稿视频无此项 |
| cid | num | 视频CID | |
| progress | num | 观看进度时间 | 单位为秒 |
| add_at | num | 添加时间 | 时间戳 |
| bvid | str | 稿件bvID | |
`attribute`属性位二进制值表:
| 位 | 内容 | 备注 |
| ---- | ----------------- | ----------------------- |
| 0 | 禁止排行 | |
| 1 | 动态禁止 | |
| 2 | 禁止网页输出 | |
| 3 | 禁止客户端列表 | |
| 4 | 搜索禁止 | |
| 5 | 海外禁止 | |
| 6 | 禁止推荐 | |
| 7 | 禁止转载 | |
| 8 | 是否高清 | 视频清晰度>=1080P |
| 9 | 是否PGC稿件 | 番剧及影视 |
| 10 | 允许承包 | |
| 11 | 是否番剧 | |
| 12 | 是否私单 | |
| 13 | 是否限制地区 | 大多数番剧 |
| 14 | 允许其他人添加tag | |
| 15 | | |
| 16 | 跳转 | 番剧及影视av/bv->ep跳转 |
| 17 | 是否影视 | |
| 18 | 付费 | |
| 19 | 推送动态 | |
| 20 | 家长模式 | |
| 21 | UGC付费 | |
| 22 | | |
| 23 | 是否失效 | |
`data`中的`list`数组中的对象中的`rights`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ---- | ---------------- | ------------ |
| bp | num | 0 | 作用尚不明确 |
| elec | num | 是否支持充电 | |
| download | num | 是否允许下载 | |
| movie | num | 是否电影 | |
| pay | num | 是否PGC付费 | |
| hd5 | num | 是否有高码率 | |
| no_reprint | num | 是否禁止转载 | |
| autoplay | num | 是否可以自动播放 | |
| ugc_pay | num | 是否UGC付费 | |
| is_cooperation | num | 是否联合投稿 | |
| ugc_pay_preview | num | 0 | 作用尚不明确 |
| no_background | num | 0 | 作用尚不明确 |
`data`中的`list`数组中的对象中的`owner`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | -------- | ---- |
| mid | num | UP主UID | |
| name | str | UP主昵称 | |
| face | str | UP主头像 | |
`data`中的`list`数组中的对象中的`stat`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | ------------------------------ | ------------ |
| aid | num | 稿件avID | |
| view | num | 普通:观看次数<br />屏蔽时:-1 | |
| danmaku | num | 弹幕条数 | |
| reply | num | 评论条数 | |
| favorite | num | 收藏人数 | |
| coin | num | 投币枚数 | |
| share | num | 分享次数 | |
| now_rank | num | 0 | 作用尚不明确 |
| his_rank | num | 历史最高排行 | |
| like | num | 获赞次数 | |
| dislike | num | 0 | 作用尚不明确 |
| evaluation | str | 视频评分 | 默认为空 |
`data`中的`list`数组中的对象中的`pages`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | --------------- | ------------------------------------ |
| cid | num | 当前分P CID | |
| page | num | 当前分P | |
| from | str | 视频来源 | vupload用户上传<br />hunan芒果TV |
| part | str | 当前分P标题 | |
| duration | num | 当前分P持续时间 | 单位为秒 |
| vid | str | 空 | 作用尚不明确 |
| weblink | str | 空 | 作用尚不明确 |
| dimension | obj | 当前分P分辨率 | |
`pages`中的`dimension`对象(同`data`中的`list`数组中的对象中的`dimension`对象)
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | -------------- | -------------------- |
| width | num | 当前分P 宽度 | 可能为0 |
| height | num | 当前分P 高度 | 可能为0 |
| rotate | num | 是否将宽高对换 | 0正常<br />1对换 |
**示例:**
获取稍后再看视频列表
```shell
curl 'http://api.bilibili.com/x/v2/history/toview' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"count": 25,
"list": [
{
"aid": 200333024,
"videos": 1,
"tid": 95,
"tname": "手机平板",
"copyright": 1,
"pic": "http://i1.hdslb.com/bfs/archive/a5e3072e670daec4c01a182aae91c1f85a48001e.jpg",
"title": "【山新】疫情下,配音演员怎么开工录音?",
"pubdate": 1586959137,
"ctime": 1586959137,
"desc": "疫情这段时间,配音演员们是怎么录音的呢=W=",
"state": 0,
"attribute": 16768,
"duration": 218,
"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": 14082,
"name": "山新",
"face": "http://i0.hdslb.com/bfs/face/74c82caee6d9eb623e56161ea8ed6d68afabfeae.jpg"
},
"stat": {
"aid": 200333024,
"view": 361123,
"danmaku": 1792,
"reply": 1376,
"favorite": 7571,
"coin": 12129,
"share": 895,
"now_rank": 0,
"his_rank": 0,
"like": 54705,
"dislike": 0
},
"dynamic": "疫情这段时间,配音演员们是怎么录音的呢=W=",
"dimension": {
"width": 3840,
"height": 2160,
"rotate": 0
},
"page": {
"cid": 178808041,
"page": 1,
"from": "vupload",
"part": "无标题",
"duration": 218,
"vid": "",
"weblink": "",
"dimension": {
"width": 3840,
"height": 2160,
"rotate": 0
}
},
"count": 1,
"cid": 178808041,
"progress": 32,
"add_at": 1587041785,
"bvid": "BV1Yz411B7n3"
},
{
"aid": 710350011,
"videos": 1,
"tid": 124,
"tname": "趣味科普人文",
"copyright": 1,
"pic": "http://i0.hdslb.com/bfs/archive/c5b7e7c07a4abf27029c5afb3ab65fee4475b9a9.jpg",
"title": "不花一分钱建立自己的网站!给硬盘里的小姐姐换个新家!",
"pubdate": 1586919626,
"ctime": 1586898238,
"desc": "制作视频不易,你的点赞是对我最大的支持!\nUP主的个人网站https://amdradeonrin.github.io/MIKU/\n视频提到的文件在网站有下载\nGitHub上的网站源码https://github.com/AMDRadeonRin/MIKU",
"state": 0,
"attribute": 16768,
"duration": 169,
"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": 179757857,
"name": "GTX690战术核显卡导弹",
"face": "http://i2.hdslb.com/bfs/face/2504de8c1eeef22d91bbc45803f6b29afcbb0adf.jpg"
},
"stat": {
"aid": 710350011,
"view": 3293,
"danmaku": 37,
"reply": 117,
"favorite": 355,
"coin": 76,
"share": 11,
"now_rank": 0,
"his_rank": 0,
"like": 325,
"dislike": 0
},
"dynamic": "#网页制作##HTML##网页#给你们科普一下怎么弄网站吧你们也可以考虑整一个XD",
"dimension": {
"width": 1920,
"height": 1080,
"rotate": 0
},
"count": 1,
"cid": 0,
"progress": 0,
"add_at": 1587012410,
"bvid": "BV1LQ4y1T7Xh"
},
…………
]
}
}
```
</details>
## 删除稍后再看视频
> http://api.bilibili.com/x/v2/history/toview/del
*请求方式POST*
认证方式CookieSESSDATA
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
| viewed | bool | 是否删除所有已观看的视频 | 非必要 | true删除已观看视频<br />false不删除已观看视频<br />默认为false |
| aid | num | 删除的目标记录的avID | 非必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf校验失败<br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
**示例:**
删除视频`av540580868`的稍后再看记录
```shell
curl 'http://api.bilibili.com/x/v2/history/toview/del' \
--data-urlencode 'aid=540580868' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1
}
```
</details>
删除所有已观看的视频
```shell
curl 'http://api.bilibili.com/x/v2/history/toview/del' \
--data-urlencode 'viewed=true' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1
}
```
</details>
## 清空稍后再看视频列表
> http://api.bilibili.com/x/v2/history/toview/clear
*请求方式POST*
认证方式CookieSESSDATA
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------ | ---- |
| csrf | num | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf校验失败 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
**示例:**
清空稍后再看视频列表
```shell
curl 'http://api.bilibili.com/x/v2/history/toview/clear' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1
}
```
</details>