bilibili-API-collect/danmaku/action.md

823 lines
32 KiB
Markdown
Raw Normal View History

# 弹幕操作
2020-11-20 20:13:12 +08:00
- [发送视频弹幕](#发送视频弹幕)
- [发送互动弹幕](#发送互动弹幕)
- [撤回弹幕](#撤回弹幕)
- [购买高级弹幕发送权限](#购买高级弹幕发送权限)
- [检测高级弹幕发送权限](#检测高级弹幕发送权限)
- [查询弹幕点赞数](#查询弹幕点赞数)
- [点赞弹幕](#点赞弹幕)
- [举报弹幕](#举报弹幕)
- [保护&删除弹幕](#保护&删除弹幕)
- [修改字幕池](#修改字幕池)
---
## 发送视频弹幕
> https://api.bilibili.com/x/v2/dm/post
2020-07-14 18:44:44 +08:00
*请求方式POST*
认证方式CookieSESSDATA或APP
此接口与漫画弹幕相同
`mode=6`的逆向弹幕与`mode=8`的代码弹幕不可发送
2020-06-08 22:44:46 +08:00
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ |
| access_key | str | APP登录Token | APP方式必要 | |
| type | num | 弹幕类选择 | 必要 | 1视频弹幕 |
| oid | num | 视频cid | 必要 | |
| msg | str | 弹幕内容 | 必要 | 长度小于100字符 |
| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
| progress | num | 弹幕出现在视频内的时间 | 非必要 | 单位为毫秒<br />默认为0 |
| color | num | 弹幕颜色设置 | 非必要 | 十进制RGB888值<br />默认为16777215#FFFFFF白色 |
| fontsize | num | 弹幕字号设置 | 非必要 | 默认为25<br />极小12<br />超小16<br />18<br />标准25<br />36<br />超大45<br />极大64 |
| pool | num | 弹幕池选择 | 非必要 | 0普通池<br />1字幕池<br />2特殊池代码/BAS弹幕<br />默认为0 |
| mode | num | 弹幕类型选择 | 必要 | 1普通弹幕<br />4底部弹幕<br />5顶部弹幕<br />7高级弹幕<br />9BAS弹幕`pool`必须为2 |
| rnd | num | 当前时间戳*1000000 | 非必要 | **若无此项则发送弹幕冷却时间限制为90s**<br />若有此项则发送弹幕冷却时间限制为5s |
| csrf | str | CSRF Token位于cookie | Cookie方式必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-102账号被封停<br />-111csrf校验失败<br />-400请求错误<br />-404无此项<br />36700系统升级中<br />36701弹幕包含被禁止的内容<br />36702弹幕长度大于100<br />36703发送频率过快<br />36704禁止向未审核的视频发送弹幕<br />36705您的等级不足不能发送弹幕<br />36706您的等级不足不能发送顶端弹幕<br />36707您的等级不足不能发送底端弹幕<br />36708您的等级不足不能发送彩色弹幕<br />36709您的等级不足不能发送高级弹幕<br />36710您的权限不足不能发送这种样式的弹幕<br />36711该视频禁止发送弹幕<br />36712level 1用户发送弹幕的最大长度为20<br />36713稿件未付费<br />36714弹幕发送时间不合法<br />36715当日操作数量超过上限 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
2020-06-16 23:09:49 +08:00
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------- | ------------ |
| action | str | 空 | 作用尚不明确 |
| dmid | num | 弹幕dmid | |
| dmid_str | str | 弹幕dmid | 字串形式 |
2020-06-16 23:09:49 +08:00
| visible | bool | true | 作用尚不明确 |
**示例:**
为视频`av2`/`BV1xx411c7mD`cid为`62131`的5000ms位置发送一条弹幕`前来考古`(颜色为#FFFFFF字号25普通弹幕游动弹幕
```shell
curl 'https://api.bilibili.com/x/v2/dm/post' \
--data-urlencode 'type=1' \
--data-urlencode 'oid=62131' \
--data-urlencode 'msg=前来考古' \
--data-urlencode 'aid=2' \
--data-urlencode 'progress=5000' \
--data-urlencode 'color=16777215' \
--data-urlencode 'fontsize=25' \
--data-urlencode 'pool=0' \
--data-urlencode 'mode=1' \
--data-urlencode 'rnd=3456789987654321' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
2020-08-31 16:37:38 +08:00
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"action":"",
"dmid":32161968826613767,
"dmid_str":"32161968826613767",
"visible":true
}
}
```
2020-08-31 16:37:38 +08:00
</details>
## 发送互动弹幕
> https://api.bilibili.com/x/v2/dm/command/post
*请求方式POST*
认证方式CookieSESSDATA或APP
2020-09-25 B站更新了互动弹幕功能包括UP主头像弹幕、关联视频弹幕、视频内嵌引导关注按钮三大功能
详情见:
[【客户端更新】6.10版本更新UP主支持发布关联视频弹幕]( https://www.bilibili.com/read/cv7728299 )
[引导关注卡片]( https://www.bilibili.com/blackboard/activity-c8a0iDRQy.html )
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ |
| access_key | str | APP登录Token | APP方式必要 | |
| type | num | 互动弹幕类型 | 必要 | 1UP主头像弹幕<br />2关联视频弹幕<br />5视频内嵌引导关注按钮 |
| aid | num | 稿件avid | 必要 | |
| cid | num | 视频cid | 必要 | |
| progress | num | 弹幕出现在视频内的时间 | 非必要 | 单位为毫秒<br />默认为0 |
| plat | num | 平台标识 | 必要 | 1web端<br />2安卓端<br />8视频管理页面 |
| data | str | json序列 | 必要 | |
| dmid | num | 修改互动弹幕的弹幕id | 非必要 | 注:修改弹幕`plat`必须为8 |
| csrf | str | CSRF Token位于cookie | Cookie方式必要 | |
`data`参数json序列
类型为【UP主头像弹幕】时
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | -------- | ---- |
| msg | str | 弹幕内容 | |
类型为【关联视频弹幕】时:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | -------------- | ---- |
| msg | str | 弹幕内容 | |
| bvid | str | 关联视频的bvid | |
类型为【视频内嵌引导关注按钮】时:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------- | --------------- |
| duration | num | 持续时间 | 单位为毫秒 |
| posX | num | X坐标 | 区间:[118-549] |
| posY | num | Y坐标 | 区间:[82-293] |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ----------------------------- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-102账号被封停<br />-111csrf校验失败<br />-400请求错误<br />-404无此项<br />-500服务器错误<br />36711该视频禁止发送弹幕<br />79026发送失败请勿填写当前稿件bvid<br />79024发送失败请输入正确的bvid<br />79036该指令弹幕超出限制<br />79037关注弹幕坐标溢出 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | 正确时obj<br />错误时null | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ---------------------- | ------------------------------------------------------------ |
| command | str | 指令? | UP主头像弹幕#UP#<br />关联视频弹幕:#LINK#<br />视频内嵌引导关注按钮:#ATTENTION# |
| content | str | 弹幕内容 | |
| extra | str | 弹幕数据 | json序列 |
| id | num | 弹幕dmid | |
| idStr | str | 弹幕dmid | 字串形式 |
| mid | num | 用户mid | |
| oid | num | 视频cid | |
| progress | num | 弹幕出现在视频内的时间 | |
| type | num | 互动弹幕类型 | 1UP主头像弹幕<br />2关联视频弹幕<br />5视频内嵌引导关注按钮 |
`extra`序列数据:
类型为【UP主头像弹幕】时
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ----------- | ---- |
| icon | str | UP主头像url | |
类型为【关联视频弹幕】时:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | -------------- | ---- |
| aid | num | 关联视频的avid | |
| title | str | 关联视频的标题 | |
| bvid | str | 关联视频的bvid | |
类型为【视频内嵌引导关注按钮】时:
2020-11-28 13:06:00 +08:00
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ------------ | ------------------------------------------ |
| duration | num | 持续时间 | 单位为毫秒 |
| posX | num | X坐标 | 区间:[118-549] |
| posY | num | Y坐标 | 区间:[82-293] |
| icon | str | 按钮图片url | 不应该是关注按钮吗,但这个是圆形的 |
| type | num | 关注按钮类型 | 0仅关注<br />1仅三联<br />2关注+三联 |
**示例:**
为视频`av201947622`cid为`230709860`的5000ms位置发送一条UP主头像弹幕`test`
```shell
curl 'https://api.bilibili.com/x/v2/dm/command/post' \
--data-urlencode 'type=1' \
--data-urlencode 'aid=201947622' \
--data-urlencode 'cid=230709860' \
--data-urlencode 'progress=5000' \
--data-urlencode 'plat=1' \
--data-urlencode 'data={"msg":"test"}' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"id": 39053842117558279,
"oid": 230709860,
"mid": 293793435,
"type": 1,
"command": "#UP#",
"content": "test",
"extra": "{\"icon\":\"http://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg\"}",
"idStr": "39053842117558279"
}
}
```
</details>
为视频`av201947622`cid为`230709860`的5000ms位置发送一条发送关联视频弹幕`测试1234`关联视频为`BV1kz4y1X7XP`
```shell
curl 'https://api.bilibili.com/x/v2/dm/command/post' \
--data-urlencode 'type=2' \
--data-urlencode 'aid=201947622' \
--data-urlencode 'cid=230709860' \
--data-urlencode 'progress=5000' \
--data-urlencode 'plat=1' \
--data-urlencode 'data={"bvid":"BV1kz4y1X7XP","msg":"测试1234"}' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"id": 39054383689236483,
"oid": 230709860,
"mid": 293793435,
"type": 2,
"command": "#LINK#",
"content": "测试1234",
"progress": 11925,
"extra": "{\"aid\":583785685,\"title\":\"【cmd】访问api 命令行也能上B站\",\"bvid\":\"BV1kz4y1X7XP\"}",
"idStr": "39054383689236483"
}
}
```
</details>
为视频`av201947622`cid为`230709860`的5000ms位置发送视频内嵌引导关注按钮X坐标为118Y坐标为82持续时间为5000ms
```shell
curl 'https://api.bilibili.com/x/v2/dm/command/post' \
--data-urlencode 'type=5' \
--data-urlencode 'aid=201947622' \
--data-urlencode 'cid=230709860' \
--data-urlencode 'progress=5000' \
--data-urlencode 'plat=1' \
--data-urlencode 'data={"duration":5000,"posX":118,"posY":82}' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"id": 39055158405496839,
"oid": 230709860,
"mid": 293793435,
"type": 5,
"command": "#ATTENTION#",
"progress": 5000,
"extra": "{\"duration\":5000,\"posX\":118,\"posY\":82}",
"idStr": "39055158405496839"
}
}
```
</details>
## 撤回弹幕
> https://api.bilibili.com/x/dm/recall
2020-07-14 18:44:44 +08:00
*请求方式POST*
认证方式CookieSESSDATA或APP
仅能撤回自己两分钟内的弹幕且每天只有3次机会
2020-06-08 22:44:46 +08:00
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | ---- |
| access_key | str | APP登录Token | APP方式必要 | |
| dmid | num | 弹幕dmid | 必要 | |
| cid | num | 视频cid | 必要 | |
| csrf | str | CSRF Token位于cookie | Cookie方式必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-102账号被封停<br />-111csrf校验失败<br />-400请求错误<br />-404无此项<br />36301撤回失败弹幕发送已过2分钟<br />36302撤回失败弹幕已经被删除或撤回<br />36303撤回失败今天撤回的机会已经用完<br />36304撤回失败服务器出错 |
| message | str | 错误信息 | 成功后显示剩余次数 |
| ttl | num | 1 | |
**示例:**
撤回`cid=168901231`下的弹幕`32310301474947077`的弹幕
```shell
curl 'https://api.bilibili.com/x/dm/recall' \
--data-urlencode 'cid=168901231' \
--data-urlencode 'dmid=32310301474947077' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
2020-08-31 16:37:38 +08:00
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "撤回成功你还有3次撤回机会"
}
```
2020-08-31 16:37:38 +08:00
</details>
## 购买高级弹幕发送权限
> https://api.bilibili.com/x/dm/adv/buy
2020-07-14 18:44:44 +08:00
*请求方式POST*
认证方式CookieSESSDATA或APP
购买一次需要2硬币同时向up主发送请求
2020-06-08 22:44:46 +08:00
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | ---- |
| access_key | str | APP登录Token | APP方式必要 | |
| mode | str | sp | 必要 | |
| cid | num | 视频cid | 必要 | |
| csrf | str | CSRF Token位于cookie | Cookie方式必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-102账号被封停<br />-111csrf校验失败<br />-107硬币不足<br />-400请求错误<br />36007不允许购买<br />36009正在确认中<br />36010已购买 |
| message | str | 返回信息 | |
| ttl | num | 1 | |
示例:
购买视频cid为`168901231`的高级弹幕发送权限
```shell
curl 'https://api.bilibili.com/x/dm/adv/buy' \
--data-urlencode 'cid=168901231' \
--data-urlencode 'mode=sp' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
2020-08-31 16:37:38 +08:00
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"已成功购买"
}
```
2020-08-31 16:37:38 +08:00
</details>
## 检测高级弹幕发送权限
> https://api.bilibili.com/x/dm/adv/state
2020-07-14 18:44:44 +08:00
*请求方式GET*
认证方式CookieSESSDATA或APP
2020-06-08 22:44:46 +08:00
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------ | ----------- | ---- |
| access_key | str | APP登录Token | APP方式必要 | |
| mode | str | sp | 必要 | |
| cid | num | 视频cid | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ----------------------------- | ---------------- | -------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />--400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | 有效时obj<br />无效时null | 有效时:信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | ---------------- | ------------------------------------------ |
| coins | num | 需要支付的硬币数 | |
| confirm | num | 是否同意 | 1同意<br />2未同意<br />未购买时无此项 |
| accept | bool | 是否允许申请 | true允许<br />false不允许 |
| hasBuy | bool | 是否已购买 | true已购买<br />未购买时无此项 |
**示例:**
查询视频cid为`168901231`的视频高级弹幕权限购买状态
当前状态为已购买且同意
```shell
curl -G 'https://api.bilibili.com/x/dm/adv/state' \
--data-urlencode 'cid=168901231' \
--data-urlencode 'mode=sp' \
-b 'SESSDATA=xxx'
```
2020-08-31 16:37:38 +08:00
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"coins": 2,
"confirm": 1,
"accept": true,
"hasBuy": true
}
}
```
2020-08-31 16:37:38 +08:00
</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>
2020-10-02 18:46:00 +08:00
## 点赞弹幕
> https://api.bilibili.com/x/v2/dm/thumbup/add
2020-10-02 18:46:00 +08:00
*请求方式POST*
认证方式CookieSESSDATA或APP
2020-10-02 18:46:00 +08:00
**正文参数( 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方式必要 | |
2020-10-02 18:46:00 +08:00
**json回复**
根对象:
2023-01-18 12:12:58 +08:00
| 字段 | 类型 | 内容 | 备注 |
|---------|-----|------|------------------------------------------------------------------------------------------------------------------------------------|
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf 校验失败<br />-400请求错误<br />36106该弹幕已被删除<br/>36805该视频禁止点赞弹幕<br/>65004取消赞失败 未点赞过<br />65006已赞过 |
| message | str | 错误信息 | 默认为0 |
| tll | num | 1 | |
2020-10-02 18:46:00 +08:00
**示例**
为`cid=145928946`下的弹幕`35600074482384899`点赞
2020-10-02 18:46:00 +08:00
```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' \
2020-10-02 18:46:00 +08:00
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1
}
```
</details>
2020-10-02 19:24:06 +08:00
## 举报弹幕
> https://api.bilibili.com/x/dm/report/add
2020-10-02 19:24:06 +08:00
*请求方式POST*
认证方式CookieSESSDATA或APP
2020-10-02 19:24:06 +08:00
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | ------------------ |
| access_key | str | APP登录Token | APP方式必要 | |
| cid | num | 视频cid | 必要 | |
| dmid | num | 弹幕dmid | 必要 | |
| reason | num | 举报类型 | 必要 | **类型代码见下表** |
| content | str | 其他举报备注 | 非必要 | `reason=11`时有效 |
| csrf | str | CSRF Token位于cookie | Cookie方式必要 | |
2020-10-02 19:24:06 +08:00
举报类型`reason`
| 代码 | 含义 |
| ---- | ---------- |
| 1 | 违法违禁 |
| 2 | 色情低俗 |
| 3 | 赌博诈骗 |
| 4 | 人身攻击 |
| 5 | 侵犯隐私 |
| 6 | 垃圾广告 |
| 7 | 引战 |
| 8 | 剧透 |
| 9 | 恶意刷屏 |
| 10 | 视频无关 |
| 11 | 其他 |
| 12 | 青少年不良 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf 校验失败<br />-400请求错误<br />36201举报弹幕不存在<br />36203举报原因类型错误<br />36204已举报 |
| message | str | 错误信息 | 默认为空 |
2020-10-02 19:24:06 +08:00
| tll | num | 1 | 举报失败时 |
**示例**
举报`cid=145928946`下的弹幕`35600074482384899`,理由是`引战`
2020-10-02 19:24:06 +08:00
```shell
curl 'https://api.bilibili.com/x/dm/report/add' \
--data-urlencode 'cid=145928946' \
--data-urlencode 'dmid=35600074482384899' \
--data-urlencode 'reason=7' \
--data-urlencode 'csrf=xxx' \
2020-10-02 19:24:06 +08:00
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":""
}
```
</details>
## 保护&删除弹幕
> https://api.bilibili.com/x/v2/dm/edit/state
*请求方式POST*
认证方式CookieSESSDATA 或APP
注:只能操作自己的稿件或有骑士权限的稿件
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | --------------------------------------------- |
| access_key | str | APP登录Token | APP方式必要 | |
| type | num | 弹幕类选择 | 必要 | 1视频弹幕 |
| oid | num | 视频cid | 必要 | |
| dmids | nums | 弹幕dmid | 必要 | 多个id之间用`,`分隔 |
| state | num | 操作代码 | 必要 | 1删除弹幕<br />2弹幕保护<br />3取消保护 |
| csrf | str | CSRF Token位于cookie | Cookie方式必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf 校验失败<br />-400请求错误<br />-403访问权限不足 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
**示例**
删除`cid=145928946`下的弹幕`35600074482384899`、`39067304918515717`、`39082777041174531`
```shell
curl 'https://api.bilibili.com/x/v2/dm/edit/state' \
--data-urlencode 'type=1' \
--data-urlencode 'oid=145928946' \
--data-urlencode 'dmids=35600074482384899,39067304918515717,39082777041174531' \
--data-urlencode 'state=1' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1
}
```
</details>
## 修改字幕池
> https://api.bilibili.com/x/v2/dm/edit/pool
*请求方式POST*
认证方式CookieSESSDATA 或APP
注:只能操作自己的稿件或有骑士权限的稿件
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | -------------------------------- |
| access_key | str | APP登录Token | APP方式必要 | |
| type | num | 弹幕类选择 | 必要 | 1视频弹幕 |
| oid | num | 视频cid | 必要 | |
| dmids | nums | 弹幕dmid | 必要 | 多个id之间用`,`分隔 |
| pool | num | 操作代码 | 必要 | 0移出字幕池<br />1移入字幕池 |
| csrf | str | CSRF Token位于cookie | Cookie方式必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf 校验失败<br />-400请求错误<br />-403访问权限不足 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
**示例**
将`cid=145928946`下的弹幕`35600074482384899`、`39067304918515717`、`39082777041174531`移入字幕池
```shell
curl 'https://api.bilibili.com/x/v2/dm/edit/state' \
--data-urlencode 'type=1' \
--data-urlencode 'oid=145928946' \
--data-urlencode 'pool=1' \
--data-urlencode 'dmids=35600074482384899,39067304918515717,39082777041174531' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1
}
```
</details>