添加Java获取dev_id的示例 (#353)

* 添加漫画签到接口

* 添加积分商城相关接口

* 添加基本兑换状态码

* fix format

* 添加新项

* 链接勘误

* 添加Java获取dev_id的示例

* Revert "添加Java获取dev_id的示例"

This reverts commit 125828bb

* 添加Java获取dev_id的示例

* 大会员权益信息更新

* 查询自己收到的充电列表

* 更新视频取流相关参数

* 签到请求地址更正

* 添加查询签到状态接口

* 补充用户信息字段

* 补充粉丝勋章信息字段说明

* 添加系统提示类型

* UPDATE

* UPDATE

* UPDATE

* 添加: 查询我收到的充电留言

* 添加: 查询充电留言详情

* 添加: 回复充电留言

* UPDATE

* UPDATE

Co-authored-by: 社会易姐QwQ <45892418+SocialSisterYi@users.noreply.github.com>
This commit is contained in:
7rikka 2022-05-14 13:40:01 +08:00 committed by GitHub
parent 6ffd4d2ea3
commit f41151b8e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 694 additions and 47 deletions

View File

@ -36,7 +36,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-102账号被封停<br />-111csrf校验失败<br />-400请求错误<br />-404无此项<br />-509请求过于频繁<br />12001已经存在评论主题<br />12002评论区已关闭<br />12003禁止回复<br />12006没有该评论<br />12009评论主体的type不合法<br />12015需要评论验证码<br />12016评论内容包含敏感信息<br />12025评论字数过多<br />12035该账号被UP主列入评论黑名单<br />12051重复评论请勿刷屏<br />**(其他错误码有待补充)** |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-102账号被封停<br />-111csrf校验失败<br />-400请求错误<br />-404无此项<br />-509请求过于频繁<br />12001已经存在评论主题<br />12002评论区已关闭<br />12003禁止回复<br />12006没有该评论<br />12009评论主体的type不合法<br />12015需要评论验证码<br />12016评论内容包含敏感信息<br />12025评论字数过多<br />12035该账号被UP主列入评论黑名单<br />12051重复评论请勿刷屏<br />12052评论区已关闭<br />**(其他错误码有待补充)** |
| message | str | 错误信息 | <br /> |
| ttl | num | 1 | |
| data | obj | 数据本体 | |

View File

@ -128,7 +128,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ------------------------ | ---- | ------------------ | ----------------------------------- |
| input_disable | bool | 禁止输入? | |
| input_disable | bool | 是否禁止新增评论 | 用户涉及合约争议,锁定该用户所有稿件、动态的评论区,不允许新增评论,`root_input_text`和`child_input_text`值为“当前评论区不可新增评论” |
| root_input_text | str | 评论框文字 | |
| child_input_text | str | 评论框文字 | |
| bg_text | str | 空评论区文字 | |

View File

@ -293,3 +293,136 @@ curl -G 'http://api.bilibili.com/x/web-interface/elec/show' \
```
</details>
## 查询我收到的充电列表
> https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | -------- | ------ | -------------------------------- |
| currentPage | num | 页数 | 必要 | |
| pageSize | num | 分页大小 | 必要 | 取值范围[1,50] |
| customerId | num | (?) | 必要 | 目前为固定值10026 |
| beginTime | str | 开始日期 | | yyyy-MM-dd |
| endTime | str | 结束日期 | | yyyy-MM-dd |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />800501007user not login<br />800501008内部错误<br /> 800501011请求参数有误|
| errno | num | | |
| msg | str | | |
| showMsg | str | | |
| success | bool | | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| page | obj | 分页信息 | |
| result | array | 充电信息本体 | |
| config | array | (?) | |
`page`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| currentPage | num | 当前页数 | |
| pageSize | num | 当前分页大小 | |
| totalCount | num | 记录总数 | |
| totalPage | num | 总页数 | |
`config`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| mid | num | | 总是为null |
| name | str | | 总是为null |
| avatar | str | | 总是为null |
| originalThirdCoin | num | | 总是为null |
| brokerage | num | | 总是为null |
| remark | str | | 总是为null |
| ctime | str | | 总是为null |
`result`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| mid | num | 充电人mid | |
| name | str | 充电人昵称 | |
| avatar | str | 充电人头像 | |
| originalThirdCoin | num | 原始B币数 | |
| brokerage | num | 实际收到的贝壳数 | |
| remark | str | 充电渠道 | Web/安卓/iOS |
| ctime | str | 充电时间 | yyyy-MM-dd HH:mm:ss |
**示例:**
```shell
curl -L -X GET 'https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord?currentPage=1&pageSize=2&customerId=10026' \
-H 'Cookie: SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"errno": 0,
"msg": "SUCCESS",
"showMsg": "交易成功",
"data": {
"page": {
"currentPage": 1,
"pageSize": 2,
"totalCount": 311,
"totalPage": 156
},
"result": [
{
"mid": 2233,
"name": "2233",
"avatar": "http://i2.hdslb.com/bfs/face/f42b7f47c80648d2ee1231f2435b527c60302289.jpg",
"originalThirdCoin": 2,
"brokerage": 1.34,
"remark": "Web",
"ctime": "2022-04-12 17:34:47"
},
{
"mid": 2233,
"name": "2233",
"avatar": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
"originalThirdCoin": 2,
"brokerage": 0.68,
"remark": "iOS",
"ctime": "2022-04-10 03:41:10"
}
],
"config": [
{
"mid": null,
"name": null,
"avatar": null,
"originalThirdCoin": null,
"brokerage": null,
"remark": null,
"ctime": null
}
]
},
"success": true
}
```
</details>

View File

@ -1,6 +1,9 @@
# 充电留言
- [发送充电留言](#发送充电留言)
- [查询我收到的充电留言](#查询我收到的充电留言)
- [查询充电留言详情](#查询充电留言详情)
- [回复充电留言](#回复充电留言)
---
@ -54,3 +57,247 @@ curl 'http://api.bilibili.com/x/ugcpay/trade/elec/message' \
```
</details>
## 查询我收到的充电留言
> https://member.bilibili.com/x/web/elec/remark/list
*请求方式:GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------ | ------------ | ------------------ |
| begin | str | 起始日期 | | 默认2016-01-01 |
| end | str | 结束日期 | | 默认2050-01-01 |
| pn | str | 页数 | | |
| ps | str | 分页大小 | | 取值范围[1,12] |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录|
| msg | str | 0 | |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| page | obj | 分页信息 | |
| list | array | 信息本体 | |
`page`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| current | num | 当前页数 | |
| size | num | 当前分页大小 | |
| total | num | 记录总数 | |
`list`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| aid | num | | |
| bvid | str | | |
| id | num | 留言记录id | |
| mid | num | | |
| reply_mid | num | 0| |
| elec_num | num | 0 | |
| state | num | UP是否已经回复这条留言 | 0未回复<br />1已回复 |
| msg | str | 留言信息 | |
| aname | str | 空 | |
| uname | str |空 | |
| avator | str | 空 | |
| reply_name | str | 空 | |
| reply_avator | str | 空 | |
| reply_msg | str | 空 | |
| ctime | num | 留言时间 | 毫秒级时间戳 |
| reply_time | num | 0 | |
**示例:**
```shell
curl -L -X GET 'https://member.bilibili.com/x/web/elec/remark/list?begin=2016-01-01&end=2050-01-01&pn=1&ps=10' \
-H 'Cookie: SESSDATA=xxx;'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"aid": 0,
"bvid": "",
"id": 6715018,
"mid": 0,
"reply_mid": 0,
"elec_num": 0,
"state": 0,
"msg": "加油",
"aname": "",
"uname": "",
"avator": "",
"reply_name": "",
"reply_avator": "",
"reply_msg": "",
"ctime": 1650665119000,
"reply_time": 0
}
],
"pager": {
"current": 1,
"size": 10,
"total": 448
}
}
}
```
</details>
## 查询充电留言详情
> https://member.bilibili.com/x/web/elec/remark/detail?id=6662619
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | -------- | ------ | -------------------------------- |
| id | num | 留言id | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-400请求错误|
| message | str | 0 | |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| aid | num | | |
| bvid | str | | |
| id | num | 留言id | |
| mid | num | 留言者uid充电用户 | |
| reply_mid | num | UP主uid | |
| elec_num | num | 0 | |
| state | num | UP是否已经回复这条留言 | 0未回复<br />1已回复 |
| msg | str | 留言内容 | |
| aname | str | 空 | |
| uname | str | 留言者用户名 | |
| avator | str | 留言者头像 | |
| reply_name | str | UP主用户名 | |
| reply_avator | str | UP主头像 | |
| reply_msg | str | 回复内容 | |
| ctime | num | 留言时间 | 毫秒级时间戳 |
| reply_time | num | 回复时间 | 毫秒级时间戳 |
**示例:**
```shell
curl -L -X GET 'https://member.bilibili.com/x/web/elec/remark/detail?id=6507563' \
-H 'cookie: SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"aid": 0,
"bvid": "",
"id": 6507563,
"mid": 19978396,
"reply_mid": 2062760,
"elec_num": 0,
"state": 1,
"msg": "感谢搬运",
"aname": "",
"uname": "HANSOOOOOL",
"avator": "http://i1.hdslb.com/bfs/face/5c22af0261b8b3f9a54b6e0038e35430e9ed9cfd.jpg",
"reply_name": "一把近战都不给六花",
"reply_avator": "http://i2.hdslb.com/bfs/face/1804b716084908d4992bdd35827d0c2d7222fe97.jpg",
"reply_msg": "( ̄3 ̄)",
"ctime": 1646726966000,
"reply_time": 1646811946000
}
}
```
</details>
## 回复充电留言
> https://member.bilibili.com/x/web/elec/remark/reply
*请求方式POST*
认证方式CookieSESSDATA
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------ | ------ | ------------------------ | -------------- | ------------------------------------------------------------ |
| csrf | str | csrf | 必要 | |
| id | num | 留言id | 必要 | |
| msg | str | 回复信息 | | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf 校验失败<br />-400请求错误20004充电服务异常<br /> |
| message | str | 错误信息 | |
| ttl | num | 1 | |
**示例:**
```shell
curl -L -X POST 'https://member.bilibili.com/x/web/elec/remark/reply' \
-H 'cookie: SESSDATA=xxx' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'csrf=xxx' \
--data-urlencode 'id=6258929' \
--data-urlencode 'msg=( ̄3 ̄)'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": 1
}
```
</details>

View File

@ -36,7 +36,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| code | num | 返回值 | 0成功<br />-102账号被封停 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
@ -130,7 +130,7 @@ curl 'http://api.bilibili.com/x/v3/fav/folder/add' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| code | num | 返回值 | 0成功<br />-102账号被封停 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |

View File

@ -1,6 +1,6 @@
# 签到
> http://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn
> https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn
*请求方式POST*
@ -21,18 +21,15 @@
| code | num / str | 返回值 | 0成功<br />invalid_argument今日已签到 |
| msg | str | 错误信息 | 成功:空<br />已签到clockin clockin is duplicate |
| meta | obj | 错误信息 | 今日已签到时存在 |
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | -------- | ---- |
| data | str | 错误信息 | |
| data | obj | | |
**示例:**
```bash
curl 'http://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn' \
-b 'SESSDATA=xxx'
curl -L -X POST 'https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn' \
-H 'Cookie: SESSDATA=xxx' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'platform=android'
```
<details>
@ -63,4 +60,129 @@ curl 'http://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn' \
}
```
</details>
# 查询签到状态
> https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo
*请求方式POST*
认证方式CookieSESSDATA/ APP
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功 |
| msg | str | 错误信息 | 空 |
| data | obj | 信息本体 | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| day_count | num | 连续签到天数 | |
| status | num | 今日是否已签到 | 0未签到<br />1已签到 |
| credit_icon | str | | |
| sign_before_icon | str | | |
| sign_today_icon | str | | |
| breathe_icon | str | | |
| new_credit_x_icon | str | | |
| coupon_pic | str | | |
| points | array | 一次签到周期中每次签到可获得点数 | |
| point_infos | array | | |
`point_infos`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| point | num | 签到可获取积分 | |
| origin_point | num | | |
| is_activity | bool | | |
| title | str | 签到奖励描述 | |
**示例:**
```bash
curl -L -X POST 'https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo' \
-H 'Cookie: SESSDATA=xxx'
```
<details>
<summary>成功:</summary>
```json
{
"code": 0,
"msg": "",
"data": {
"day_count": 58,
"status": 1,
"points": [
10,
20,
20,
10,
10,
10,
30
],
"credit_icon": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/9da6QImiK_w192_h192.png",
"sign_before_icon": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/BuA6z3lhN_w192_h192.png",
"sign_today_icon": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/TWSLUHbbg_w192_h192.png",
"breathe_icon": "http://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/anime.breathe.svga",
"point_infos": [
{
"point": 10,
"origin_point": 10,
"is_activity": false,
"title": "10积分"
},
{
"point": 20,
"origin_point": 20,
"is_activity": false,
"title": "20积分"
},
{
"point": 20,
"origin_point": 20,
"is_activity": false,
"title": "20积分"
},
{
"point": 10,
"origin_point": 10,
"is_activity": false,
"title": "10积分"
},
{
"point": 10,
"origin_point": 10,
"is_activity": false,
"title": "10积分"
},
{
"point": 10,
"origin_point": 10,
"is_activity": false,
"title": "10积分"
},
{
"point": 30,
"origin_point": 30,
"is_activity": false,
"title": "30积分+福利券"
}
],
"new_credit_x_icon": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/QP5DsW2S_w192_h192.png",
"coupon_pic": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/Yalqqoiz_w402_h162.png"
}
}
```
</details>

View File

@ -96,6 +96,28 @@ const deviceid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (functi
代码来自 [andywang425/BLTH](https://github.com/andywang425/BLTH/blob/45fe93e31754ca8bf07059d46266398e787dbf45/B%E7%AB%99%E7%9B%B4%E6%92%AD%E9%97%B4%E6%8C%82%E6%9C%BA%E5%8A%A9%E6%89%8B.js#L6618)
以Java为例
```java
public class Util{
private String getDevId() {
char[] b = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
char[] s = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".toCharArray();
for (int i = 0; i < s.length; i++) {
if ('-' == s[i] || '4' == s[i]) {
continue;
}
int randomInt = (int) (16 * Math.random());
if ('x' == s[i]) {
s[i] = b[randomInt];
} else {
s[i] = b[3 & randomInt | 8];
}
}
return new String(s);
}
}
```
---
`msg[content]`消息内容:

View File

@ -84,10 +84,13 @@
| type | num | 会员类型 | 0<br />1月大会员<br />2年度及以上大会员 |
| status | num | 会员状态 | 0<br />1有 |
| due_date | num | 会员过期时间 | Unix时间戳(毫秒) |
| vip_pay_type | num | 1 | |
| theme_type | num | 0 | 作用尚不明确 |
| label | obj | 会员标签 | |
| avatar_subscript | num | 是否显示会员图标 | 0不显示<br />1显示 |
| nickname_color | str | 会员昵称颜色 | 颜色码 |
| role | num | 3 | |
| avatar_subscript_url | str | 大会员角标地址 | |
`vip`中的`label`对象:
@ -96,15 +99,21 @@
| path | str | 空 | 作用尚不明确 |
| text | str | 会员类型文案 | |
| label_theme | str | 会员标签 | vip大会员<br />annual_vip年度大会员<br />ten_annual_vip十年大会员<br />hundred_annual_vip百年大会员 |
| text_color | str | 会员标签 | |
| bg_style | num | | |
| bg_color | str | | |
| border_color | str | | |
`data`中的`pendant`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | ------------- | -------------------- |
| pid | num | 头像框id | **详细说明有待补充** |
| pid | num | 头像框id | |
| name | str | 头像框名称 | |
| image | str | 头像框图片url | |
| expire | num | (?) | |
| image_enhance | str | (?) | |
| image_enhance_frame | str | (?) | |
`data`中的`nameplate`对象:
@ -117,11 +126,40 @@
| level | str | 勋章等级 | |
| condition | str | 勋章条件 | |
`data`中的`fans_medal`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ---------------- | -------------------- |
| show | bool | | |
| wear | bool | 是否佩戴了粉丝勋章 | |
| medal | obj | 粉丝勋章信息 | |
`fans_medal`中的`medal`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ---------------- | -------------------- |
| uid | num | 此用户mid | |
| target_id | num | 粉丝勋章所属UP的mid | |
| medal_id | num | 粉丝勋章id | |
| level | num | 粉丝勋章等级 | |
| medal_name | str | 粉丝勋章名称 | |
| medal_color | num | 颜色 | |
| intimacy | num | 当前亲密度 | |
| next_intimacy | num |下一等级所需亲密度 | |
| day_limit | num | 每日亲密度获取上限 | |
| medal_color_start | num | | |
| medal_color_end | num | | |
| medal_color_border | num | | |
| is_lighted | num | | |
| light_status | num | | |
| wearing_status | num | 当前是否佩戴 | 0未佩戴<br />1已佩戴 |
| score | num | | |
`data`中的`sys_notice`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | --------------- | ----------------------------------------------- |
| id | num | 系统提示类型id | 8争议账号<br />20纪念账号<br />22合约诉讼 |
| id | num | 系统提示类型id | 8争议账号<br />11合约争议<br/>20纪念账号<br />22合约诉讼<br />24合约争议<br />25严重指控 |
| content | str | 提示文案 | |
| url | str | 提示信息页面url | |
| notice_type | num | | 作用尚不明确<br />此字段非必须 |
@ -129,6 +167,17 @@
| text_color | str | 提示文字颜色 | 此字段非必须<br />颜色码 |
| bg_color | str | 提示背景颜色 | 此字段非必须<br />颜色码 |
`sys_notice`示例
| id |type| 内容 |
| ----------- | ---- | --------------- |
| 8 | |
| 11 | 1 |该账号涉及合约争议,暂冻结其账号功能使用。详见公告->|
| 20 | 2|请允许我们在此献上最后的告别,以此纪念其在哔哩哔哩留下的回忆与足迹。请点此查看纪念账号相关说明 |
| 22 | |该账号涉及合约诉讼,封禁其账号使用。 |
| 24 | 1|该账号涉及合约争议,暂冻结其账号功能使用。 |
| 25 | 1|该用户涉及严重指控,暂冻结其账号功能使用 |
`data`中的`live_room`对象:
| 字段 | 类型 | 内容 | 备注 |
@ -166,6 +215,17 @@
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| name | str | (?) | |
| department | str | (?) | |
| title | str | (?) | |
| is_show | num | (?) | |
`data`中的`user_honour_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| mid | num | 0 | |
| colour | str | null | |
| tags | array | null | |
`data`中的`series`对象:

View File

@ -30,6 +30,8 @@
| 字段 | 类型 | 内容 | 备注 |
| ----- | -------|----------------|------ |
| list | array | 卡券列表 | |
| is_short_vip | bool | (?) | |
| is_freight_open | bool | (?) | |
`list`数组:
@ -37,15 +39,19 @@
| ----- | -------|-----------------|------ |
| 0 | obj | B币兑换状态 | |
| 1 | obj | 会员购优惠券兑换状态 | |
| 2 | obj | 漫画福利券兑换状态 | |
| 3 | obj | 会员购运费券兑换状态 | |
`list`中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------- | -----|------------------|------ |
| type | num | 卡券类型 | 1B币<br />2会员购优惠券<br />3漫画福利券 |
| type | num | 卡券类型 | 1B币<br />2会员购优惠券<br />3漫画福利券<br />4会员购运费券 |
| state | num | 兑换状态 | 0当月未兑换<br />1已兑换 |
| expire_time | num | 当月过期时间 | 当月月底 |
| vip_type | num | (?) | |
| vip_type | num | | 2年度大会员可兑换 |
| next_receive_days | num | 距下一轮兑换剩余天数 | |
| period_end_unix | num | 距下一轮兑换截止时间戳 | 秒级时间戳 |
**示例:**
@ -60,31 +66,55 @@ curl -G 'http://api.bilibili.com/x/vip/privilege/my' \
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"type": 1,
"state": 1,
"expire_time": 1640966399,
"vip_type": 2
},
{
"type": 2,
"state": 1,
"expire_time": 1640966399,
"vip_type": 2
},
{
"type": 3,
"state": 0,
"expire_time": 1640966399,
"vip_type": 2
}
]
}
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"type": 1,
"state": 1,
"expire_time": 1651334399,
"vip_type": 2,
"next_receive_days": 20,
"period_end_unix": 1651420800
},
{
"type": 2,
"state": 0,
"expire_time": 1651334399,
"vip_type": 2,
"next_receive_days": 20,
"period_end_unix": 1651420800
},
{
"type": 3,
"state": 1,
"expire_time": 1651334399,
"vip_type": 2,
"next_receive_days": 20,
"period_end_unix": 1651420800
},
{
"type": 4,
"state": 0,
"expire_time": 1651334399,
"vip_type": 2,
"next_receive_days": 20,
"period_end_unix": 1651420800
},
{
"type": 5,
"state": 0,
"expire_time": 1651334399,
"vip_type": 2,
"next_receive_days": 20,
"period_end_unix": 1651420800
}
],
"is_short_vip": false,
"is_freight_open": true
}
}
```
@ -102,7 +132,7 @@ curl -G 'http://api.bilibili.com/x/vip/privilege/my' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ---------- | -------- | ---------------------- |
| type | num | 兑换类型 | 必要 | 1B币<br />2会员购优惠券<br />3漫画福利券<br />4.会员购运费券 |
| type | num | 兑换类型 | 必要 | 1B币<br />2会员购优惠券<br />3漫画福利券<br />4会员购运费券 |
| csrf | num | CSRF token | 必要 | Cookie bili_jct字段 |
**json回复**

View File

@ -101,6 +101,9 @@ B站的视频为http流媒体需要对应的api以视频id获取取流url
| fnval | num | 视频获取方式选择 | 非必要 | 默认为0<br />0 2flv方式可能会有分段<br />1低清mp4方式仅240P与360P且限速65K/s<br />16 80dash方式音视频分流支持H.265 |
| fnver | num | 0 | 非必要 | 固定为0 |
| fourk | num | 是否允许4K视频 | 非必要 | 默认为0<br />画质最高1080P0<br />画质最高4K1 |
| session | str | | 非必要 | 从视频播放页的网页源码中获取 |
| otype | str | | 非必要 | 固定为json |
| type | str | | 非必要 | 目前为空 |
**json回复**
@ -126,11 +129,13 @@ B站的视频为http流媒体需要对应的api以视频id获取取流url
| accept_format | str | 视频支持的全部格式 | 每项用`,`分隔 |
| accept_description | array | 视频支持的分辨率列表 | |
| accept_quality | array | 视频支持的分辨率代码列表 | **值含义见上表** |
| video_codecid | num | 7 | 作用尚不明确 |
| seek_param | str | start | 作用尚不明确 |
| seek_type | str | | 作用尚不明确 |
| video_codecid | num | 固定值:7 | 作用尚不明确 |
| seek_param | str | 固定值:start | 作用尚不明确 |
| seek_type | str | 固定值offset | 作用尚不明确 |
| durl | array | 视频分段 | **注仅flv/mp4存在此项** |
| dash | obj | dash音视频流信息 | **注仅dash存在此项** |
| support_formats | array | 支持格式的详细信息 | |
| high_format | | null | |
`data`中的`accept_description`数组:
@ -148,6 +153,33 @@ B站的视频为http流媒体需要对应的api以视频id获取取流url
| n | str | 分辨率代码(n+1) | |
| …… | str | …… | |
`data`中的`support_formats`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------------- | ---- |
| 0 | obj | 播放格式详细信息1 | |
| n | obj | 播放格式详细信息(n+1) | |
| …… | obj | …… | |
`support_formats`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ------ | ------------ | ---------------------------------- |
| quality | num | 视频清晰度代码 | |
| format | str | 视频格式 | |
| new_description | str | 格式描述 | |
| display_desc | str | 格式描述 | |
| superscript | str | (?) | |
| codecs | array | (?) | |
`support_formats`中的`codecs`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------------- | ---- |
| 0 | str | (?) | |
| 1 | str | (?) | |
---
**flv/mp4方式**
@ -357,11 +389,12 @@ curl -G 'http://api.bilibili.com/x/player/playurl' \
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ----- | ---------- | ------------ |
| duration | num | 677 | 作用尚不明确 |
| duration | num | 677 | 视频长度(秒) |
| minBufferTime | num | 1.5 | 作用尚不明确 |
| min_buffer_time | num | 1.5 | 作用尚不明确 |
| video | array | 视频流信息 | |
| audio | array | 音频流信息 | |
| dolby | | null | |
`dash`中的`video`数组: