From 87d56b66e7ce375029bccf9efda5314964b0528d Mon Sep 17 00:00:00 2001
From: SocialSisterYi <1440239038@qq.com>
Date: Wed, 17 May 2023 09:42:12 +0800
Subject: [PATCH] =?UTF-8?q?update=20=E3=80=90danmaku=20thumbup=20list?=
=?UTF-8?q?=E3=80=91=20APIDoc?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 1 +
docs/danmaku/action.md | 112 +++++-----------------------------
docs/danmaku/danmaku_proto.md | 63 ++++++++++---------
docs/danmaku/thumbup.md | 104 +++++++++++++++++++++++++++++++
4 files changed, 155 insertions(+), 125 deletions(-)
create mode 100644 docs/danmaku/thumbup.md
diff --git a/README.md b/README.md
index c1f2983..8e59c88 100644
--- a/README.md
+++ b/README.md
@@ -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)
diff --git a/docs/danmaku/action.md b/docs/danmaku/action.md
index 309f5e0..1b26a3b 100644
--- a/docs/danmaku/action.md
+++ b/docs/danmaku/action.md
@@ -483,88 +483,6 @@ curl -G 'https://api.bilibili.com/x/dm/adv/state' \
-## 查询弹幕点赞数
-
-> https://api.bilibili.com/x/v2/dm/thumbup/stats
-
-*请求方式:GET*
-
-认证方式:Cookie(SESSDATA)或APP
-
-**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| oid | num | 视频cid | 必要 | |
-| ids | nums | 弹幕dmid列表 | 必要 | 多个id之间用`,`分隔 |
-
-**json回复**
-
-根对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | --------------------------- |
-| code | num | 返回值 | 0:成功
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
-
-`data`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| -------- | ---- | ---------------- | --------------------------------- |
-| {弹幕id} | obj | 弹幕id对应的信息 | id分别对应请求参数中的`ids`,下同 |
-| …… | obj | 弹幕id对应的信息 | |
-
-`{弹幕id}`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------- | ---- | -------- | ------------------------------------------------------------ |
-| likes | num | 点赞数 | |
-| user_like | num | 是否点赞 | 0:未点赞
1:已点赞
需要登录(Cookie或APP)
未登录恒为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'
-```
-
-
-查看响应示例:
-
-```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"
- }
- }
-}
-```
-
-
-
## 点赞弹幕
> https://api.bilibili.com/x/v2/dm/thumbup/add
@@ -573,16 +491,18 @@ curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
认证方式:Cookie(SESSDATA)或APP
+查询指定弹幕点赞状态参阅文档 [弹幕点赞查询](thumbup.md)
+
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------------------ | -------------- | ------------------------ |
-| access_key | str | APP登录Token | APP方式必要 | |
-| dmid | num | 弹幕dmid | 必要 | |
-| oid | num | 视频cid | 必要 | |
-| op | num | 操作 | 必要 | 1:点赞
2:取消点赞 |
-| platform | str | 平台 | 非必要 | |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ------------------------- | --------------- | ------------------------------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| dmid | num | 目标弹幕 dmid | 必要 | |
+| oid | num | 目标弹幕所在视频 cid | 必要 | |
+| op | num | 操作 | 必要 | 1:点赞
2:取消点赞 |
+| platform | str | 平台标识 | 非必要 | web_player:web 播放器
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'
```
diff --git a/docs/danmaku/danmaku_proto.md b/docs/danmaku/danmaku_proto.md
index 4835202..b3171bf 100644
--- a/docs/danmaku/danmaku_proto.md
+++ b/docs/danmaku/danmaku_proto.md
@@ -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:视频弹幕
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:普通弹幕
4:底部弹幕
5:顶部弹幕
6:逆向弹幕
7:高级弹幕
8:代码弹幕
9:BAS弹幕(仅限于特殊弹幕专包) |
-| fontsize | int32 | 弹幕字号 | 18:小
25:标准
36:大 |
-| color | uint32 | 弹幕颜色 | 十进制RGB888值 |
-| midHash | string | 发送者mid的HASH | 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户id |
-| content | string | 弹幕内容 | utf-8编码 |
-| ctime | int64 | 弹幕发送时间 | 时间戳 |
-| weight | int32 | 权重 | 用于智能屏蔽,根据弹幕语义及长度通过AI识别得出
范围:[0-10]
值越大权重越高 |
-| action | string | 动作? | 作用尚不明确 |
-| pool | int32 | 弹幕池 | 0:普通池
1:字幕池
2:特殊池(代码/BAS弹幕) |
-| idStr | string | 弹幕dmid | 字串形式
唯一 可用于操作参数 |
+| 名称 | 类型 | 含义 | 备注 |
+| --------- | ------ | ------------------ | ------------------------------------------------------------ |
+| id | int64 | 弹幕 dmid | 唯一 可用于操作参数 |
+| progress | int32 | 视频内弹幕出现时间 | 毫秒 |
+| mode | int32 | 弹幕类型 | 1 2 3:普通弹幕
4:底部弹幕
5:顶部弹幕
6:逆向弹幕
7:高级弹幕
8:代码弹幕
9:BAS 弹幕(仅限于特殊弹幕专包) |
+| fontsize | int32 | 弹幕字号 | 18:小
25:标准
36:大 |
+| color | uint32 | 弹幕颜色 | 十进制 RGB888 值 |
+| midHash | string | 发送者 mid 的 HASH | 用于屏蔽用户和查看用户发送的所有弹幕,也可反查用户id |
+| content | string | 弹幕内容 | utf-8编码 |
+| ctime | int64 | 弹幕发送时间 | 时间戳 |
+| weight | int32 | 权重 | 用于智能屏蔽,根据弹幕语义及长度通过AI识别得出
范围:[0-10]
值越大权重越高 |
+| action | string | 动作? | |
+| pool | int32 | 弹幕池 | 0:普通池
1:字幕池
2:特殊池(代码/BAS弹幕) |
+| idStr | string | 弹幕 dmid | 字串形式
唯一 可用于操作参数 |
+| attr | int32 | 弹幕属性位 | bit0:保护
bit1:直播
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
diff --git a/docs/danmaku/thumbup.md b/docs/danmaku/thumbup.md
new file mode 100644
index 0000000..0d59ff9
--- /dev/null
+++ b/docs/danmaku/thumbup.md
@@ -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:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 弹幕 id 与之对应数据的 Map | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ---- | -------------------------- | ---- |
+| {弹幕 dmid} | obj | {弹幕 dmid} 对应的点赞信息 | |
+
+`{弹幕 dmid}`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| -------------------- | ---- | ---------------------- | ------------------------------------------------------- |
+| likes | num | 对应弹幕所获得的点赞数 | |
+| user_like | num | 当前用户是否点赞 | 0:未点赞
1:已点赞
需要登录(Cookie 或 APP) |
+| id_str | str | 弹幕 dmid 字符串形式 | |
+| show_threshold | num | (?) | |
+| reply_count | num | (?) | |
+| gray_release_control | obj | (?) | |
+
+`gray_release_control`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------------- | ---- | ------ | ---- |
+| show_dm_reply | bool | (?) | |
+
+**示例:**
+
+获取视频 BV1AP411d7Qa 1P(cid=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'
+```
+
+
+查看响应示例:
+
+```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
+ }
+ }
+ }
+}
+```
+
+