XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

update 【danmaku thumbup list】 APIDoc

87d56b6
SocialSisterYi <1440239038@qq.com>
提交于

代码差异

4 个文件 +155 -125
Modified README.md +1 -0
@@ -122,6 +122,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
122 122 - [ ] 智能防挡弹幕
123 123 - [x] [弹幕个人配置修改](docs/danmaku/config.md)
124 124 - [x] [名词解释](docs/danmaku/buzzword.md)
125 - [x] [点赞查询](docs/danmaku/thumbup.md)
125 126 - [x] [视频笔记](docs/note)
126 127 - [x] [笔记列表](docs/note/list.md)
127 128 - [x] [笔记详细信息](docs/note/info.md)
Modified docs/danmaku/action.md +16 -96
@@ -483,88 +483,6 @@ curl -G 'https://api.bilibili.com/x/dm/adv/state' \
483 483
484 484 </details>
485 485
486 ## 查询弹幕点赞数
487
488 > https://api.bilibili.com/x/v2/dm/thumbup/stats
489
490 *请求方式:GET*
491
492 认证方式:Cookie(SESSDATA)或APP
493
494 **url参数:**
495 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
496 | ---------- | ---- | ------------ | ----------- | ------------------- |
497 | access_key | str | APP登录Token | APP方式必要 | |
498 | oid | num | 视频cid | 必要 | |
499 | ids | nums | 弹幕dmid列表 | 必要 | 多个id之间用`,`分隔 |
500
501 **json回复**
502
503 根对象:
504
505 | 字段 | 类型 | 内容 | 备注 |
506 | ------- | ---- | -------- | --------------------------- |
507 | code | num | 返回值 | 0:成功<br />-400:请求错误 |
508 | message | str | 错误信息 | 默认为0 |
509 | ttl | num | 1 | |
510 | data | obj | 信息本体 | |
511
512 `data`对象:
513
514 | 字段 | 类型 | 内容 | 备注 |
515 | -------- | ---- | ---------------- | --------------------------------- |
516 | {弹幕id} | obj | 弹幕id对应的信息 | id分别对应请求参数中的`ids`,下同 |
517 | …… | obj | 弹幕id对应的信息 | |
518
519 `{弹幕id}`对象:
520
521 | 字段 | 类型 | 内容 | 备注 |
522 | --------- | ---- | -------- | ------------------------------------------------------------ |
523 | likes | num | 点赞数 | |
524 | user_like | num | 是否点赞 | 0:未点赞<br />1:已点赞<br />需要登录(Cookie或APP) <br />未登录恒为0 |
525 | id_str | str | 弹幕dmid | |
526
527 **示例**
528
529 查询`cid=236871317`下的弹幕`35600074482384899`、`38880975220375559`、`39052528418553863`点赞数
530
531 ```shell
532 curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
533 -b 'SESSDATA=xxx'
534 ```
535
536 <details>
537 <summary>查看响应示例:</summary>
538
539 ```json
540 {
541 "code": 0,
542 "message": "0",
543 "ttl": 1,
544 "data": {
545 "38880975220375559": {
546 "likes": 1,
547 "user_like": 1,
548 "id_str": "38880975220375559"
549 },
550 "39019145405661191": {
551 "likes": 3,
552 "user_like": 1,
553 "id_str": "39019145405661191"
554 },
555 "39052528418553863": {
556 "likes": 2,
557 "user_like": 0,
558 "id_str": "39052528418553863"
559 }
560 }
561 }
562 ```
563
564 </details>
565
566 486 ## 点赞弹幕
567 487
568 488 > https://api.bilibili.com/x/v2/dm/thumbup/add
@@ -573,16 +491,18 @@ curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
573 491
574 492 认证方式:Cookie(SESSDATA)或APP
575 493
494 查询指定弹幕点赞状态参阅文档 [弹幕点赞查询](thumbup.md)
495
576 496 **正文参数( application/x-www-form-urlencoded ):**
577 497
578 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
579 | ---------- | ---- | ------------------------ | -------------- | ------------------------ |
580 | access_key | str | APP登录Token | APP方式必要 | |
581 | dmid | num | 弹幕dmid | 必要 | |
582 | oid | num | 视频cid | 必要 | |
583 | op | num | 操作 | 必要 | 1:点赞<br />2:取消点赞 |
584 | platform | str | 平台 | 非必要 | |
585 | csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
498 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
499 | ---------- | ---- | ------------------------- | --------------- | ------------------------------------------- |
500 | access_key | str | APP 登录 Token | APP 方式必要 | |
501 | dmid | num | 目标弹幕 dmid | 必要 | |
502 | oid | num | 目标弹幕所在视频 cid | 必要 | |
503 | op | num | 操作 | 必要 | 1:点赞<br />2:取消点赞 |
504 | platform | str | 平台标识 | 非必要 | web_player:web 播放器<br />android:安卓端 |
505 | csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
586 506
587 507 **json回复:**
588 508
@@ -600,12 +520,12 @@ curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
600 520
601 521 ```shell
602 522 curl 'https://api.bilibili.com/x/v2/dm/thumbup/add' \
603 -b 'SESSDATA=xxx'
523 --data-urlencode 'dmid=35600074482384899' \
524 --data-urlencode 'oid=145928946' \
525 --data-urlencode 'op=1' \
526 --data-urlencode 'platform=web_player' \
527 --data-urlencode 'csrf=xxx' \
528 -b 'SESSDATA=xxx'
604 529 ```
605 530
606 531 <details>
Modified docs/danmaku/danmaku_proto.md +34 -29
@@ -1,8 +1,8 @@
1 1 # protobuf弹幕
2 2
3 2020年5月23日,哔哩哔哩网页端及移动端启用了新的默认弹幕api,网页端弹幕显示的上限变为原弹幕池上限的两倍。
3 2020年5月23日,哔哩哔哩网页端及移动端启用了新的默认弹幕 API,网页端弹幕显示的上限变为原弹幕池上限的两倍。
4 4
5 新的api是以6分钟为一个单位加载,即每次加载6分钟内的弹幕
5 新的 API 是以 6min 为一个单位加载,即每次加载 6min 内的弹幕
6 6
7 7 ## 获取实时弹幕
8 8
@@ -18,26 +18,29 @@
18 18
19 19 只能返回普通弹幕(`pool=1` `mode=1-7`)和代码弹幕(`pool=2` `mode=8`),BAS弹幕(`pool=2` `mode=9`)请从[弹幕元数据](danmaku_view_proto.md)中获取
20 20
21 互动弹幕(UP主头像弹幕、关联视频、内嵌关注按钮)也不存在这个接口,请从[弹幕元数据](danmaku_view_proto.md)中获取
21 互动弹幕(UP 主头像弹幕、关联视频、内嵌关注按钮)也不存在这个接口,请从[弹幕元数据](danmaku_view_proto.md)中获取
22 22
23 **注:仅获取6min的整数倍时间内的弹幕,6min内最多弹幕数为6000条(如第一包中弹幕`progress`值域为0-360000)**
23 **注:仅获取 6min 的整数倍时间内的弹幕,6min 内最多弹幕数为 6000 条(如第一包中弹幕`progress`值域为0-360000)**
24 24
25 25 **url参数:**
26 26
27 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
28 | ------------- | ---- | -------- | ------ | ----------- |
29 | type | num | 弹幕类 | 必要 | 1:视频弹幕 |
30 | oid | num | 视频cid | 必要 | |
31 | pid | num | 稿件avid | 非必要 | |
32 | segment_index | num | 分包 | 必要 | 6分钟一包 |
27 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
28 | ------------- | ---- | --------- | ------ | ---------------------------- |
29 | type | num | 弹幕类 | 必要 | 1:视频弹幕<br />2:漫画弹幕 |
30 | oid | num | 视频 cid | 必要 | |
31 | pid | num | 稿件 avid | 非必要 | |
32 | segment_index | num | 分包 | 必要 | 6min 一包 |
33 | pull_mode | num | (?) | 非必要 | |
34 | ps | num | (?) | 非必要 | |
35 | pe | num | (?) | 非必要 | |
33 36
34 37 **proto回复:**
35 38
36 proto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](../grpc_api/bilibili/community/service/dm/v1/dm.proto)
39 proto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](../../grpc_api/bilibili/community/service/dm/v1/dm.proto)
37 40
38 - [protogen.marcgravell](https://protogen.marcgravell.com/): 在线编译protogen工具, 无需再安装本地编译器(生成文件需加后缀‘_pb2.py‘才可使用)
41 - [protogen.marcgravell](https://protogen.marcgravell.com/): 在线编译 protogen 工具, 无需再安装本地编译器(生成文件需加后缀`_pb2.py`才可使用)
39 42
40 - [protobuf pip](https://pypi.org/project/protobuf/): 可一键安装的python的protogen解析库
43 - [protobuf pip](https://pypi.org/project/protobuf/): 可一键安装的 Python 的 protogen 解析库
41 44
42 45 消息`DmSegMobileReply`:
43 46
@@ -47,26 +50,28 @@ proto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](../grpc_api
47 50
48 51 消息`DanmakuElem`:
49 52
50 | 名称 | 类型 | 含义 | 备注 |
51 | -------- | ------ | ------------------ | ------------------------------------------------------------ |
52 | id | int64 | 弹幕dmid | 唯一 可用于操作参数 |
53 | progress | int32 | 视频内弹幕出现时间 | 毫秒 |
54 | mode | int32 | 弹幕类型 | 1 2 3:普通弹幕<br />4:底部弹幕<br />5:顶部弹幕<br />6:逆向弹幕<br />7:高级弹幕<br />8:代码弹幕<br />9:BAS弹幕(仅限于特殊弹幕专包) |
55 | fontsize | int32 | 弹幕字号 | 18:小<br />25:标准<br />36:大 |
56 | color | uint32 | 弹幕颜色 | 十进制RGB888值 |
57 | midHash | string | 发送者mid的HASH | 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户id |
58 | content | string | 弹幕内容 | utf-8编码 |
59 | ctime | int64 | 弹幕发送时间 | 时间戳 |
60 | weight | int32 | 权重 | 用于智能屏蔽,根据弹幕语义及长度通过AI识别得出<br />范围:[0-10]<br />值越大权重越高 |
61 | action | string | 动作? | 作用尚不明确 |
62 | pool | int32 | 弹幕池 | 0:普通池<br />1:字幕池<br />2:特殊池(代码/BAS弹幕) |
63 | idStr | string | 弹幕dmid | 字串形式<br />唯一 可用于操作参数 |
53 | 名称 | 类型 | 含义 | 备注 |
54 | --------- | ------ | ------------------ | ------------------------------------------------------------ |
55 | id | int64 | 弹幕 dmid | 唯一 可用于操作参数 |
56 | progress | int32 | 视频内弹幕出现时间 | 毫秒 |
57 | mode | int32 | 弹幕类型 | 1 2 3:普通弹幕<br />4:底部弹幕<br />5:顶部弹幕<br />6:逆向弹幕<br />7:高级弹幕<br />8:代码弹幕<br />9:BAS 弹幕(仅限于特殊弹幕专包) |
58 | fontsize | int32 | 弹幕字号 | 18:小<br />25:标准<br />36:大 |
59 | color | uint32 | 弹幕颜色 | 十进制 RGB888 值 |
60 | midHash | string | 发送者 mid 的 HASH | 用于屏蔽用户和查看用户发送的所有弹幕,也可反查用户id |
61 | content | string | 弹幕内容 | utf-8编码 |
62 | ctime | int64 | 弹幕发送时间 | 时间戳 |
63 | weight | int32 | 权重 | 用于智能屏蔽,根据弹幕语义及长度通过AI识别得出<br />范围:[0-10]<br />值越大权重越高 |
64 | action | string | 动作? | |
65 | pool | int32 | 弹幕池 | 0:普通池<br />1:字幕池<br />2:特殊池(代码/BAS弹幕) |
66 | idStr | string | 弹幕 dmid | 字串形式<br />唯一 可用于操作参数 |
67 | attr | int32 | 弹幕属性位 | bit0:保护<br />bit1:直播<br />bit2:高赞 |
68 | animation | string | 动画? | |
64 69
65 70 **示例:**
66 71
67 获取视频`av810872(cid=1176840)`(炮姐)的实时弹幕分包1
72 获取视频`av810872(cid=1176840)`(炮姐)的实时弹幕分包 1
68 73
69 **注:[proto定义](../grpc_api/bilibili/community/service/dm/v1/dm.proto)需要编译,`bilibili.community.service.dm.v1.dm_pb2`并非通过pypi安装**
74 **注:以下[proto定义](../grpc_api/bilibili/community/service/dm/v1/dm.proto)需要编译,`bilibili.community.service.dm.v1.dm_pb2`并非通过 pypi 安装**
70 75
71 76 ```python
72 77 import requests
Added docs/danmaku/thumbup.md +104 -0
@@ -0,0 +1,104 @@
1 # 弹幕点赞查询
2
3 ## 查询指定dmid的点赞数
4
5 > https://api.bilibili.com/x/v2/dm/thumbup/stats
6
7 *请求方式:GET*
8
9 **url参数:**
10
11 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
12 | ------ | ---- | ----------------- | ------ | --------------------- |
13 | oid | num | 视频 cid | 必要 | |
14 | ids | nums | 欲查询的弹幕 dmid | 必要 | 多个 id 之间用`,`分隔 |
15
16 **json回复:**
17
18 根对象:
19
20 | 字段 | 类型 | 内容 | 备注 |
21 | ------- | ---- | -------------------------- | --------------------------- |
22 | code | num | 返回值 | 0:成功<br />-400:请求错误 |
23 | message | str | 错误信息 | 默认为 0 |
24 | ttl | num | 1 | |
25 | data | obj | 弹幕 id 与之对应数据的 Map | |
26
27 `data`对象:
28
29 | 字段 | 类型 | 内容 | 备注 |
30 | ----------- | ---- | -------------------------- | ---- |
31 | {弹幕 dmid} | obj | {弹幕 dmid} 对应的点赞信息 | |
32
33 `{弹幕 dmid}`对象:
34
35 | 字段 | 类型 | 内容 | 备注 |
36 | -------------------- | ---- | ---------------------- | ------------------------------------------------------- |
37 | likes | num | 对应弹幕所获得的点赞数 | |
38 | user_like | num | 当前用户是否点赞 | 0:未点赞<br />1:已点赞<br />需要登录(Cookie 或 APP) |
39 | id_str | str | 弹幕 dmid 字符串形式 | |
40 | show_threshold | num | (?) | |
41 | reply_count | num | (?) | |
42 | gray_release_control | obj | (?) | |
43
44 `gray_release_control`对象:
45
46 | 字段 | 类型 | 内容 | 备注 |
47 | ------------- | ---- | ------ | ---- |
48 | show_dm_reply | bool | (?) | |
49
50 **示例:**
51
52 获取视频 BV1AP411d7Qa 1P(cid=1131648710)下的几个弹幕 dmid`1318231376180646144,1318231518484950784,1318231736680887808`
53
54 ```bash
55 curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
56 --data-urlencode 'oid=1131648710' \
57 --data-urlencode 'ids=1318231376180646144,1318231518484950784,1318231736680887808' \
58 -b 'SESSDATA=xxx'
59 ```
60
61 <details>
62 <summary>查看响应示例:</summary>
63
64 ```json
65 {
66 "code": 0,
67 "message": "0",
68 "ttl": 1,
69 "data": {
70 "1318231376180646144": {
71 "likes": 0,
72 "user_like": 0,
73 "id_str": "1318231376180646144",
74 "show_threshold": 10,
75 "reply_count": 0,
76 "gray_release_control": {
77 "show_dm_reply": false
78 }
79 },
80 "1318231518484950784": {
81 "likes": 0,
82 "user_like": 0,
83 "id_str": "1318231518484950784",
84 "show_threshold": 10,
85 "reply_count": 0,
86 "gray_release_control": {
87 "show_dm_reply": false
88 }
89 },
90 "1318231736680887808": {
91 "likes": 0,
92 "user_like": 0,
93 "id_str": "1318231736680887808",
94 "show_threshold": 10,
95 "reply_count": 0,
96 "gray_release_control": {
97 "show_dm_reply": false
98 }
99 }
100 }
101 }
102 ```
103
104 </details>