Merge remote-tracking branch 'upstream/master' into patch-1

This commit is contained in:
wuziqian211 2024-07-07 12:16:06 +08:00
commit 5c2195821e
11 changed files with 349 additions and 147 deletions

View File

@ -237,6 +237,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC少部分接
- [ ] [直播红包](docs/live/redpocket.md)
- [ ] [直播间用户实用 API](docs/live/user.md)
- [x] [直播间禁言相关](docs/live/silent_user_manage.md)
- [ ] [关注UP直播情况](docs/live/follow_up_live)
- [ ] [转正答题](docs/newbie_exam)
- [x] [查询信息](docs/newbie_exam/info.md)
- [x] [拉取题目](docs/newbie_exam/fetch.md)

View File

@ -93,7 +93,7 @@ curl 'https://api.vc.bilibili.com/link_draw/v2/Vote/operate' \
收藏相簿`id=99184721`
```shell
curl 'https:///api.vc.bilibili.com/user_plus/v1/Fav/add' \
curl 'https://api.vc.bilibili.com/user_plus/v1/Fav/add' \
--data-urlencode 'fav_id=99184721' \
--data-urlencode 'biz_type=2' \
--data-urlencode 'csrf_token=xxx' \

View File

@ -132,7 +132,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | -------- | ---------------------------------------- |
| type | num | 是否认证 | -1<br />0个人认证<br />1机构认证 |
| type | num | 认证类型 | -1<br />0个人认证<br />1机构认证 |
| desc | str | 认证信息 | 无为空 |
`member`中的`vip`对象:

View File

@ -95,7 +95,7 @@
| posX | num | X坐标 | 区间:[118-549] |
| posY | num | Y坐标 | 区间:[82-293] |
| icon | str | 按钮图片url | 不应该是关注按钮吗,但这个是圆形的 |
| type | num | 关注按钮类型 | 0仅关注<br />1仅三<br />2关注+三联 |
| type | num | 关注按钮类型 | 0仅关注<br />1仅三<br />2关注+三连 |
消息`dmSetting`

View File

@ -10,95 +10,53 @@
**正文参数multipart/form-data**
| 参数名 | 类型 | 内容 |
| ---------- | ---- | ------ |
| dynamic_id | num | 动态id |
| csrf_token | str | csrf |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------ | ------ | ---- |
| dynamic_id | num | 动态id | 必要 | |
| csrf_token | str | csrf | 必要 | |
| csrf | str | csrf | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 |
| ------- | ---- | ----------------- |
| code | num | 0:成功 |
| | | 500404:已经删除过 |
| | | 500406:不是自己的 |
| msg | str | 错误信息 |
| message | str | 和msg一样 |
| data | obj | 未知 |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------------------------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />500404已经删除过该动态<br />500406动态不是自己的 |
| msg | str | 错误信息 | 成功时为空文本 |
| message | str | 错误信息 | 同`msg` |
| data | obj | 数据本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | ---- | ---------------- |
| \_gt\_ | num | 0 | **作用尚不明确** |
**示例:**
删除动态`dynamic_id=588320531406678918`
```shell
curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic' \
--data-urlencode 'dynamic_id=588320531406678918' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看示例</summary>
```bash
curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic' \
-X POST \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0' \
-H 'Referer: https://t.bilibili.com/' \
-H 'Cookie: SESSDATA=********; bili_jct=de2731532b4ab96bc8536da948932668;' \
--data-raw 'dynamic_id=588320531406678918&csrf_token=de2731532b4ab96bc8536da948932668&csrf=de2731532b4ab96bc8536da948932668'
```
<summary>查看响应示例:</summary>
```json
{
"code":0,
"msg":"",
"message":"",
"code": 0,
"msg": "",
"message": "",
"data": {
"_gt_":0
"_gt_": 0
}
}
```
</details>
## 删除草稿
> https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft
*请求方式POST*
认证方式CookieSESSDATA
**正文参数application/x-www-form-urlencoded**
| 参数名 | 类型 | 内容 |
| ---------- | ---- | -------------- |
| draft_id | num | 定时发送草稿id |
| csrf_token | str | csrf |
**json回复**
根对象:
| 字段 | 类型 | 内容 |
| ------- | ---- | ---------------------------- |
| code | num | 0:成功<br/>4120015: 系统异常 |
| message | str | 错误信息 |
| ttl | num | 1 |
| data | obj | 空对象 |
<details>
<summary>查看示例</summary>
```bash
curl -X POST 'https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft' \
--data-urlencode 'draft_id=755409289278914611' \
--data-urlencode 'csrf=xxxx'
-b 'SESSDATA=xxxx;' \
```
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>

View File

@ -1,6 +1,6 @@
# 根据关键字搜索用户(at别人时的填充列表)
# 根据关键字搜索用户 (at别人时的填充列表)
**注意关键字不一定顺序匹配,如最后示例**
**注意关键字不一定顺序匹配如最后示例**
> https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search
@ -8,60 +8,79 @@
认证方式CookieSESSDATA
**正文参数multipart/form-data**
**url参数**
| 参数名 | 类型 | 内容 |
| --- | --- | --- |
| uid | num | 自己的uid |
| keyword | str | 搜索关键字 |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ---- | ---------- | ------ | ---- |
| uid | num | 自己的mid | 必要 | |
| keyword | str | 搜索关键字 | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 |
| --- | --- | --- |
| code | num | 0成功 |
| msg | str | 成功为空文本 |
| message | str | 同msg |
| data | obj | 数据本体 |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------------------------------------------------------------------------- |
| code | num | 返回值 | 0成功<br />1024系统开小差了<br />2001关键字不合法<br />7600001参数出错了请输入正确参数<br />7600008`uid`参数与自己的mid不匹配 |
| msg | str | 错误信息 | 成功为空文本 |
| message | str | 错误信息 | 同`msg` |
| data | obj | 数据本体 | |
data对象:
`data`对象:
| 字段 | 类型 | 内容 |
| --- | --- | --- |
| groups | obj[] | 内容分组(好像是根据关注列表分) |
| \_gt_ | num | 0 |
| 字段 | 类型 | 内容 | 备注 |
| ------ | ----- | -------- | -------------------------------------------- |
| groups | array | 用户分组 | 根据是否关注该用户来分组,未找到用户时无此项 |
| \_gt\_ | num | 0 | **作用尚不明确** |
group对象:
`groups`数组:
| 字段 | 类型 | 内容 |
| --- | --- | --- |
| group_type | num | 2:我的关注<br>4:其他 |
| group_name | str | 分组名字 |
| items | obj[] | 用户信息 |
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------- | ---- |
| 0 | obj | 分组1 | |
| n | obj | 分组(n+1) | |
| …… | obj | …… | …… |
item对象:
`groups`数组中的对象:
| 字段 | 类型 | 内容 |
| --- | --- | --- |
| uid | num | 用户id |
| uname | str | 用户昵称 |
| face | str | 用户头像url |
| fans | num | 用户粉丝数 |
| official_verify_type | num | 认证信息? |
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ----- | ---------------- | ------------------------ |
| group_type | num | 分组类型 | 2我的关注<br />4其他 |
| group_name | str | 分组名称 | `我的关注`或`其他` |
| items | array | 搜索到的用户信息 | 按照认证状态与粉丝数排序 |
<details>
<summary>查看示例</summary>
`items`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------- | ---- |
| 0 | obj | 用户1 | |
| n | obj | 用户(n+1) | |
| …… | obj | …… | …… |
`items`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------------- | ---- | ------------ | ---------------------------------------- |
| uid | num | 用户mid | |
| uname | str | 用户昵称 | |
| face | str | 用户头像url | |
| fans | num | 用户粉丝数 | |
| official_verify_type | num | 用户认证状态 | -1<br />0个人认证<br />1机构认证 |
**示例:**
搜索关键字为`社会易`的用户
```shell
# 搜索关键字:社会易
curl 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search?uid=15858903&keyword=%e7%a4%be%e4%bc%9a%e6%98%93' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0' -H 'Accept: application/json, text/plain, */*' \
-H 'Referer: https://t.bilibili.com/' \
-H 'Cookie: SESSDATA=******'
curl -G 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search' \
--data-urlencode 'uid=15858903' \
--data-urlencode 'keyword=社会易' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
@ -77,7 +96,7 @@ curl 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search?uid=15858
"uid": 293793435,
"uname": "社会易姐QwQ",
"face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
"fans": 1179,
"fans": 3578,
"official_verify_type": -1
}
]
@ -87,24 +106,38 @@ curl 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search?uid=15858
"group_name": "其他",
"items": [
{
"uid": 250129011,
"uname": "社会小伙肖子易",
"face": "https://i0.hdslb.com/bfs/face/2ae12d7f71173baa8e00c4cfe97acb5a3de31566.jpg",
"uid": 484031754,
"uname": "社会易老师",
"face": "https://i0.hdslb.com/bfs/face/dbc456bdec5e7a4806c9d0311d95ebcc6be674cf.jpg",
"fans": 21169,
"official_verify_type": -1
},
{
"uid": 442101413,
"uname": "社会李易儒",
"face": "https://i2.hdslb.com/bfs/face/311cecf9298158b8a5f47ed3e641328ab5c0cfcd.jpg",
"fans": 10,
"official_verify_type": -1
},
{
"uid": 3546589855484501,
"uname": "日本国立貿易株式会社",
"face": "https://i2.hdslb.com/bfs/face/2dad05e4748b5e91e1ec5d3c5d4f0904a5bcdaf0.jpg",
"fans": 7,
"official_verify_type": -1
},
{
"uid": 394873001,
"uname": "社会你易叔",
"face": "https://i2.hdslb.com/bfs/face/bde2811aa895e349036aba9ece5630bcd1341ff0.jpg",
"fans": 5,
"uid": 250129011,
"uname": "社会小伙肖子易",
"face": "https://i0.hdslb.com/bfs/face/2ae12d7f71173baa8e00c4cfe97acb5a3de31566.jpg",
"fans": 6,
"official_verify_type": -1
},
{
"uid": 486568790,
"uname": "社会主义接班人小易",
"face": "https://i2.hdslb.com/bfs/face/1ebb0d4aa8e2c4b532f82983503ec38b62a1820f.jpg",
"fans": 3,
"fans": 4,
"official_verify_type": -1
},
{
@ -114,13 +147,6 @@ curl 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search?uid=15858
"fans": 2,
"official_verify_type": -1
},
{
"uid": 496622388,
"uname": "社会你易哥",
"face": "https://i0.hdslb.com/bfs/face/daac5514a7622741f767c68b1cbc6b91e60b4798.jpg",
"fans": 1,
"official_verify_type": -1
},
{
"uid": 457675287,
"uname": "易社会",
@ -129,10 +155,66 @@ curl 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search?uid=15858
"official_verify_type": -1
},
{
"uid": 123270058,
"uname": "周易社会",
"face": "https://i1.hdslb.com/bfs/face/c6100396729112230deb3b0972db1504e9ce21bf.jpg",
"fans": 1,
"uid": 1602175830,
"uname": "不谦易会社恐",
"face": "https://i0.hdslb.com/bfs/face/de6afbda484e114b7cedeb621c3cbbaef7800988.jpg",
"fans": 0,
"official_verify_type": -1
},
{
"uid": 155817540,
"uname": "社会易总",
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
"fans": 8,
"official_verify_type": -1
},
{
"uid": 3546578331634371,
"uname": "社会存在与社会易逝",
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
"fans": 0,
"official_verify_type": -1
},
{
"uid": 1983403996,
"uname": "社会易姐QAQ",
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
"fans": 0,
"official_verify_type": -1
},
{
"uid": 408471763,
"uname": "社会易大佬人狠话不多",
"face": "https://i1.hdslb.com/bfs/face/510cde8f4e3eb27aa50177d619a4200bb501797b.jpg",
"fans": 0,
"official_verify_type": -1
},
{
"uid": 384672256,
"uname": "社会易轩",
"face": "https://i1.hdslb.com/bfs/face/7324adb53362527a1bf5f20141a6ae4307011ea7.jpg",
"fans": 0,
"official_verify_type": -1
},
{
"uid": 284984452,
"uname": "社会易哥",
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
"fans": 0,
"official_verify_type": -1
},
{
"uid": 249112673,
"uname": "社会易姐",
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
"fans": 0,
"official_verify_type": -1
},
{
"uid": 167967213,
"uname": "社会易大佬",
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
"fans": 0,
"official_verify_type": -1
}
]

161
docs/live/follow_up_live.md Normal file
View File

@ -0,0 +1,161 @@
# 关注UP直播情况
## 用户关注的所有UP的直播情况
> https://api.bilibili.com/x/space/wbi/acc/info
*请求方式GET*
认证方式CookieSESSDATA
**URL参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---------|-----|------|-----|-------|
| page | num | 页码 | 非必要 | 默认为`1` |
| page_size | num | 每页的数据数量 | 非必要 | 有效值`1`-`10`, 默认为`10` |
| ignoreRecord | num | | | **尚不明确**<br />一般为`1` |
| hit_ab | bool | | | **尚不明确**<br />建议用`true`, 不填为`false` |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---------|-----|------|-----------------|
| code | num | 返回值 | `0`:成功<br />`-101`:错误 |
| message | str | 错误信息 | |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
|---------|-----|------|-----------------|
| title | str | 标题 | |
| pageSize | num | 每页的数据数量 | |
| totalPage | num | 分页数量 | |
| list | obj | UP直播情况列表 | |
| count | num | 曾直播过的UP数量 | |
| never_lived_count | num | 未直播过的UP数量 | |
| live_count | num | 正在直播的UP数量 | |
| never_lived_faces | list | | **尚不明确** |
`list`对象:
| 字段 | 类型 | 内容 | 备注 |
|--------------|-----|-----|-----------|
| roomid | num | 房间号 | |
| uid | num | 主播uid | |
| uname | str | 主播名 | |
| title | str | 直播标题 | |
| face | str | 主播头像 | |
| live_status | num | 是否正在直播 | `0`: 未直播<br />`1`: 正在直播 |
| record_num | num | | **尚不明确**<br />一般为0 |
| recent_record_id | str | | **尚不明确**<br />一般为空 |
| is_attention | num | | **尚不明确**<br />一般为1 |
| clipnum | num | | **尚不明确**<br />一般为0 |
| fans_num | num | | **尚不明确**<br />一般为0 |
| area_name | str | | **尚不明确**<br />一般为空 |
| area_value | str | | **尚不明确**<br />一般为空 |
| tags | str | | **尚不明确**<br />一般为空 |
| recent_record_id_v2 | str | | **尚不明确**<br />一般为空 |
| record_num_v2 | num | | **尚不明确**<br />一般为0 |
| record_live_time | num | 主播上一次直播结束的时间戳 | 正在直播时, 值为`0` |
| area_name_v2 | str | 频道的名称 | |
| room_news | str | 房间公告 | |
| switch | bool | | **尚不明确** |
| watch_icon | str | | **尚不明确** |
| text_small | str | | **尚不明确**<br />当主播正在直播时, 为在线人数(可能) |
| room_cover | str | 房间封面图片的URL | |
| parent_area_id | num | 父分区id | |
| area_id | num | 分区id | |
**示例:**
```shell
curl -G 'https://api.live.bilibili.com/xlive/web-ucenter/user/following' \
-b 'SESSDATA=xxx' \
--data-urlencode 'page=1' \
--data-urlencode 'page_size=2' \
--data-urlencode 'ignoreRecord=1' \
--data-urlencode 'hit_ab=true'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"title": "哔哩哔哩直播 - 我的关注",
"pageSize": 2,
"totalPage": 26,
"list": [
{
"roomid": 544853,
"uid": 686127,
"uname": "籽岷",
"title": "尝试双机位",
"face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
"live_status": 0,
"record_num": 0,
"recent_record_id": "",
"is_attention": 1,
"clipnum": 0,
"fans_num": 0,
"area_name": "",
"area_value": "",
"tags": "",
"recent_record_id_v2": "",
"record_num_v2": 0,
"record_live_time": 1720011626,
"area_name_v2": "新游推荐",
"room_news": "",
"switch": true,
"watch_icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png",
"text_small": "10.9万",
"room_cover": "http://i0.hdslb.com/bfs/live/new_room_cover/6c89c41d7695a080d31ae21c128f7759a7f419e5.jpg",
"parent_area_id": 6,
"area_id": 889
},
{
"roomid": 21686237,
"uid": 456664753,
"uname": "央视新闻",
"title": "央视新闻的直播间",
"face": "https://i1.hdslb.com/bfs/face/38a8db1c187b64a1412fafffbf350f8a3f436371.jpg",
"live_status": 0,
"record_num": 0,
"recent_record_id": "",
"is_attention": 1,
"clipnum": 0,
"fans_num": 0,
"area_name": "",
"area_value": "",
"tags": "",
"recent_record_id_v2": "",
"record_num_v2": 0,
"record_live_time": 1720001717,
"area_name_v2": "社科法律心理",
"room_news": "",
"switch": false,
"watch_icon": "https://i0.hdslb.com/bfs/live/0b265af1af0a77abc47aa3b8f1a5c0769d8bd23b.png",
"text_small": "0",
"room_cover": "http://i0.hdslb.com/bfs/live/d650d0e6e49397ea71d630be0a0e686679df16d8.jpg",
"parent_area_id": 11,
"area_id": 376
}
],
"count": 52,
"never_lived_count": 30,
"live_count": 0,
"never_lived_faces": []
}
}
```
</details>

View File

@ -590,7 +590,7 @@ curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \
**示例:**
查询用户`mid=672328094的直播间信息
查询用户`mid=672328094`的直播间信息
```shell
# GET方式
@ -779,7 +779,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' \
**示例:**
查询room_id=3的直播间信息
查询`room_id=3`的直播间信息
```shell
curl -L -X GET 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?room_id=3&protocol=0,1&format=0,1,2&codec=0,1&qn=10000'

View File

@ -943,7 +943,7 @@ curl -G 'https://api.bilibili.com/x/space/myinfo' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ----------------- | ------ | ------------------- |
| uids | nums | 目标用户的UID列表 | 必要 | 每个成员间用`,`分隔 |
| uids | nums | 目标用户的mid列表 | 必要 | 每个成员间用`,`分隔 |
**json回复**
@ -1200,13 +1200,13 @@ curl -G 'https://api.bilibili.com/x/polymer/pc-electron/v1/user/cards' \
*请求方式GET*
本接口较其他接口相比,只会返回非常有限的信息,但可以同时获取较多的用户信息(据测试可以一次性获取 40000 多个用户的信息)
本接口较其他接口相比,只会返回非常有限的信息
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ----------------- | ------ | ------------------- |
| uids | nums | 目标用户的UID列表 | 必要 | 每个成员间用`,`分隔 |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ----------------- | ------ | --------------------------------------------------------------------- |
| uids | nums | 目标用户的mid列表 | 必要 | 每个成员间用`,`分隔最多50个成员若超过此限制则返回的`data`数组为空 |
**json回复**

View File

@ -775,7 +775,7 @@ https://i1.hdslb.com/bfs/archive/ea0dd34bf41e23a68175680a00e3358cd249105f.jpg
`Related`数组中的对象:
基本同「[获取视频详细信息(web端)](#获取视频详细信息(web端))」中的data对象
基本同「[获取视频详细信息(web端)](#获取视频详细信息(web端))」中的data对象已知没有分P信息
`data`中的`hot_share`对象:

View File

@ -42,7 +42,7 @@
`data`数组中的对象:
基本同「[获取视频详细信息web端](info.md#获取视频详细信息web端)」中的data对象
基本同「[获取视频详细信息web端](info.md#获取视频详细信息web端)」中的data对象已知没有分P信息
**示例:**