update 【danmaku thumbup list】 APIDoc

This commit is contained in:
SocialSisterYi 2023-05-17 09:42:12 +08:00
parent 894c802ac5
commit 87d56b66e7
No known key found for this signature in database
GPG Key ID: 4359DB0F41BEEBBA
4 changed files with 155 additions and 125 deletions

View File

@ -122,6 +122,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC少部分接
- [ ] 智能防挡弹幕
- [x] [弹幕个人配置修改](docs/danmaku/config.md)
- [x] [名词解释](docs/danmaku/buzzword.md)
- [x] [点赞查询](docs/danmaku/thumbup.md)
- [x] [视频笔记](docs/note)
- [x] [笔记列表](docs/note/list.md)
- [x] [笔记详细信息](docs/note/info.md)

View File

@ -483,88 +483,6 @@ curl -G 'https://api.bilibili.com/x/dm/adv/state' \
</details>
## 查询弹幕点赞数
> https://api.bilibili.com/x/v2/dm/thumbup/stats
*请求方式GET*
认证方式CookieSESSDATA或APP
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------ | ----------- | ------------------- |
| access_key | str | APP登录Token | APP方式必要 | |
| oid | num | 视频cid | 必要 | |
| ids | nums | 弹幕dmid列表 | 必要 | 多个id之间用`,`分隔 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ---------------- | --------------------------------- |
| {弹幕id} | obj | 弹幕id对应的信息 | id分别对应请求参数中的`ids`,下同 |
| …… | obj | 弹幕id对应的信息 | |
`{弹幕id}`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | -------- | ------------------------------------------------------------ |
| likes | num | 点赞数 | |
| user_like | num | 是否点赞 | 0未点赞<br />1已点赞<br />需要登录(Cookie或APP) <br />未登录恒为0 |
| id_str | str | 弹幕dmid | |
**示例**
查询`cid=236871317`下的弹幕`35600074482384899`、`38880975220375559`、`39052528418553863`点赞数
```shell
curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
--data-urlencode 'oid=236871317' \
--data-urlencode 'ids=39019145405661191,38880975220375559,39052528418553863' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"38880975220375559": {
"likes": 1,
"user_like": 1,
"id_str": "38880975220375559"
},
"39019145405661191": {
"likes": 3,
"user_like": 1,
"id_str": "39019145405661191"
},
"39052528418553863": {
"likes": 2,
"user_like": 0,
"id_str": "39052528418553863"
}
}
}
```
</details>
## 点赞弹幕
> https://api.bilibili.com/x/v2/dm/thumbup/add
@ -573,16 +491,18 @@ curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
认证方式CookieSESSDATA或APP
查询指定弹幕点赞状态参阅文档 [弹幕点赞查询](thumbup.md)
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | ------------------------ |
| access_key | str | APP登录Token | APP方式必要 | |
| dmid | num | 弹幕dmid | 必要 | |
| oid | num | 视频cid | 必要 | |
| op | num | 操作 | 必要 | 1点赞<br />2取消点赞 |
| platform | str | 平台 | 非必要 | |
| csrf | str | CSRF Token位于cookie | Cookie方式必要 | |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------- | --------------- | ------------------------------------------- |
| access_key | str | APP 登录 Token | APP 方式必要 | |
| dmid | num | 目标弹幕 dmid | 必要 | |
| oid | num | 目标弹幕所在视频 cid | 必要 | |
| op | num | 操作 | 必要 | 1点赞<br />2取消点赞 |
| platform | str | 平台标识 | 非必要 | web_playerweb 播放器<br />android安卓端 |
| csrf | str | CSRF Token位于 Cookie | Cookie 方式必要 | |
**json回复**
@ -600,12 +520,12 @@ curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
```shell
curl 'https://api.bilibili.com/x/v2/dm/thumbup/add' \
--data-urlencode 'dmid=35600074482384899' \
--data-urlencode 'oid=145928946' \
--data-urlencode 'op=1' \
--data-urlencode 'platform=web_player' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
--data-urlencode 'dmid=35600074482384899' \
--data-urlencode 'oid=145928946' \
--data-urlencode 'op=1' \
--data-urlencode 'platform=web_player' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>

View File

@ -1,8 +1,8 @@
# protobuf弹幕
2020年5月23日哔哩哔哩网页端及移动端启用了新的默认弹幕api,网页端弹幕显示的上限变为原弹幕池上限的两倍。
2020年5月23日哔哩哔哩网页端及移动端启用了新的默认弹幕 API,网页端弹幕显示的上限变为原弹幕池上限的两倍。
新的api是以6分钟为一个单位加载即每次加载6分钟内的弹幕
新的 API 是以 6min 为一个单位加载,即每次加载 6min 内的弹幕
## 获取实时弹幕
@ -18,26 +18,29 @@
只能返回普通弹幕(`pool=1` `mode=1-7`)和代码弹幕(`pool=2` `mode=8`BAS弹幕`pool=2` `mode=9`)请从[弹幕元数据](danmaku_view_proto.md)中获取
互动弹幕UP主头像弹幕、关联视频、内嵌关注按钮也不存在这个接口请从[弹幕元数据](danmaku_view_proto.md)中获取
互动弹幕UP 主头像弹幕、关联视频、内嵌关注按钮)也不存在这个接口,请从[弹幕元数据](danmaku_view_proto.md)中获取
**注仅获取6min的整数倍时间内的弹幕6min内最多弹幕数为6000条如第一包中弹幕`progress`值域为0-360000**
**注:仅获取 6min 的整数倍时间内的弹幕6min 内最多弹幕数为 6000 条(如第一包中弹幕`progress`值域为0-360000**
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------- | ---- | -------- | ------ | ----------- |
| type | num | 弹幕类 | 必要 | 1视频弹幕 |
| oid | num | 视频cid | 必要 | |
| pid | num | 稿件avid | 非必要 | |
| segment_index | num | 分包 | 必要 | 6分钟一包 |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------- | ---- | --------- | ------ | ---------------------------- |
| type | num | 弹幕类 | 必要 | 1视频弹幕<br />2漫画弹幕 |
| oid | num | 视频 cid | 必要 | |
| pid | num | 稿件 avid | 非必要 | |
| segment_index | num | 分包 | 必要 | 6min 一包 |
| pull_mode | num | | 非必要 | |
| ps | num | | 非必要 | |
| pe | num | | 非必要 | |
**proto回复**
proto定义见[bilibili.community.service.dm.v1.DmSegMobileReply](../grpc_api/bilibili/community/service/dm/v1/dm.proto)
proto定义见[bilibili.community.service.dm.v1.DmSegMobileReply](../../grpc_api/bilibili/community/service/dm/v1/dm.proto)
- [protogen.marcgravell](https://protogen.marcgravell.com/): 在线编译protogen工具, 无需再安装本地编译器(生成文件需加后缀_pb2.py才可使用)
- [protogen.marcgravell](https://protogen.marcgravell.com/): 在线编译 protogen 工具, 无需再安装本地编译器(生成文件需加后缀`_pb2.py`才可使用)
- [protobuf pip](https://pypi.org/project/protobuf/): 可一键安装的python的protogen解析库
- [protobuf pip](https://pypi.org/project/protobuf/): 可一键安装的 Python 的 protogen 解析库
消息`DmSegMobileReply`
@ -47,26 +50,28 @@ proto定义见[bilibili.community.service.dm.v1.DmSegMobileReply](../grpc_api
消息`DanmakuElem`
| 名称 | 类型 | 含义 | 备注 |
| -------- | ------ | ------------------ | ------------------------------------------------------------ |
| id | int64 | 弹幕dmid | 唯一 可用于操作参数 |
| progress | int32 | 视频内弹幕出现时间 | 毫秒 |
| mode | int32 | 弹幕类型 | 1 2 3普通弹幕<br />4底部弹幕<br />5顶部弹幕<br />6逆向弹幕<br />7高级弹幕<br />8代码弹幕<br />9BAS弹幕仅限于特殊弹幕专包 |
| fontsize | int32 | 弹幕字号 | 18<br />25标准<br />36大 |
| color | uint32 | 弹幕颜色 | 十进制RGB888值 |
| midHash | string | 发送者mid的HASH | 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户id |
| content | string | 弹幕内容 | utf-8编码 |
| ctime | int64 | 弹幕发送时间 | 时间戳 |
| weight | int32 | 权重 | 用于智能屏蔽根据弹幕语义及长度通过AI识别得出<br />范围:[0-10]<br />值越大权重越高 |
| action | string | 动作? | 作用尚不明确 |
| pool | int32 | 弹幕池 | 0普通池<br />1字幕池<br />2特殊池代码/BAS弹幕 |
| idStr | string | 弹幕dmid | 字串形式<br />唯一 可用于操作参数 |
| 名称 | 类型 | 含义 | 备注 |
| --------- | ------ | ------------------ | ------------------------------------------------------------ |
| id | int64 | 弹幕 dmid | 唯一 可用于操作参数 |
| progress | int32 | 视频内弹幕出现时间 | 毫秒 |
| mode | int32 | 弹幕类型 | 1 2 3普通弹幕<br />4底部弹幕<br />5顶部弹幕<br />6逆向弹幕<br />7高级弹幕<br />8代码弹幕<br />9BAS 弹幕(仅限于特殊弹幕专包) |
| fontsize | int32 | 弹幕字号 | 18<br />25标准<br />36大 |
| color | uint32 | 弹幕颜色 | 十进制 RGB888 值 |
| midHash | string | 发送者 mid 的 HASH | 用于屏蔽用户和查看用户发送的所有弹幕也可反查用户id |
| content | string | 弹幕内容 | utf-8编码 |
| ctime | int64 | 弹幕发送时间 | 时间戳 |
| weight | int32 | 权重 | 用于智能屏蔽根据弹幕语义及长度通过AI识别得出<br />范围:[0-10]<br />值越大权重越高 |
| action | string | 动作? | |
| pool | int32 | 弹幕池 | 0普通池<br />1字幕池<br />2特殊池代码/BAS弹幕 |
| idStr | string | 弹幕 dmid | 字串形式<br />唯一 可用于操作参数 |
| attr | int32 | 弹幕属性位 | bit0保护<br />bit1直播<br />bit2高赞 |
| animation | string | 动画? | |
**示例:**
获取视频`av810872(cid=1176840)`炮姐的实时弹幕分包1
获取视频`av810872(cid=1176840)`(炮姐)的实时弹幕分包 1
**注:[proto定义](../grpc_api/bilibili/community/service/dm/v1/dm.proto)需要编译,`bilibili.community.service.dm.v1.dm_pb2`并非通过pypi安装**
**注:以下[proto定义](../grpc_api/bilibili/community/service/dm/v1/dm.proto)需要编译,`bilibili.community.service.dm.v1.dm_pb2`并非通过 pypi 安装**
```python
import requests

104
docs/danmaku/thumbup.md Normal file
View File

@ -0,0 +1,104 @@
# 弹幕点赞查询
## 查询指定dmid的点赞数
> https://api.bilibili.com/x/v2/dm/thumbup/stats
*请求方式GET*
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ----------------- | ------ | --------------------- |
| oid | num | 视频 cid | 必要 | |
| ids | nums | 欲查询的弹幕 dmid | 必要 | 多个 id 之间用`,`分隔 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------------------------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-400请求错误 |
| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | obj | 弹幕 id 与之对应数据的 Map | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | -------------------------- | ---- |
| {弹幕 dmid} | obj | {弹幕 dmid} 对应的点赞信息 | |
`{弹幕 dmid}`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------------- | ---- | ---------------------- | ------------------------------------------------------- |
| likes | num | 对应弹幕所获得的点赞数 | |
| user_like | num | 当前用户是否点赞 | 0未点赞<br />1已点赞<br />需要登录Cookie 或 APP |
| id_str | str | 弹幕 dmid 字符串形式 | |
| show_threshold | num | | |
| reply_count | num | | |
| gray_release_control | obj | | |
`gray_release_control`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------- | ---- | ------ | ---- |
| show_dm_reply | bool | | |
**示例:**
获取视频 BV1AP411d7Qa 1Pcid=1131648710下的几个弹幕 dmid`1318231376180646144,1318231518484950784,1318231736680887808`
```bash
curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
--data-urlencode 'oid=1131648710' \
--data-urlencode 'ids=1318231376180646144,1318231518484950784,1318231736680887808' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"1318231376180646144": {
"likes": 0,
"user_like": 0,
"id_str": "1318231376180646144",
"show_threshold": 10,
"reply_count": 0,
"gray_release_control": {
"show_dm_reply": false
}
},
"1318231518484950784": {
"likes": 0,
"user_like": 0,
"id_str": "1318231518484950784",
"show_threshold": 10,
"reply_count": 0,
"gray_release_control": {
"show_dm_reply": false
}
},
"1318231736680887808": {
"likes": 0,
"user_like": 0,
"id_str": "1318231736680887808",
"show_threshold": 10,
"reply_count": 0,
"gray_release_control": {
"show_dm_reply": false
}
}
}
}
```
</details>