merge: pull request #1242 from SessionHu/master

feat: 专栏动态图文相关接口整理更新
This commit is contained in:
Session小胡
2025-08-16 08:24:23 +08:00
committed by GitHub
31 changed files with 19426 additions and 10160 deletions
+5 -5
View File
@@ -8,7 +8,7 @@ body:
attributes:
label: "提交前请确认"
options:
- label: "我已检索仓库中文档,确认不包含所提及内容,且 Issues、Pull Requests 中无相关提交"
- label: "我已阅读贡献指南, 已检索仓库中文档,确认不包含所提及内容,且 Issues、Pull Requests 中无相关提交"
required: true
- type: dropdown
id: source
@@ -17,7 +17,7 @@ body:
description: "该 API 在何平台中使用"
multiple: true
options:
- "Web 端(含 h5"
- "Web 端(含 H5"
- "PC 客户端(Electron"
- "Android 客户端(含粉版、平板版、蓝版、概念版、国际版等)"
- "TV 客户端(含云视听小电视、车机、物联网版等)"
@@ -35,7 +35,7 @@ body:
options:
- "REST"
- "gRPC"
- "长连接数据帧(含 ws、TCP"
- "长连接数据帧(含 WS、TCP"
- "其他类型(请在详情中备注)"
validations:
required: true
@@ -43,7 +43,7 @@ body:
id: address
attributes:
label: "API 地址"
description: "REST 的 url,或 gRPC 的包名+服务名"
description: "REST 的 URL,或 gRPC 的包名+服务名"
placeholder: "eg: https://api.bilibili.com/2333333"
validations:
required: true
@@ -53,4 +53,4 @@ body:
label: "详情描述"
description: "请描述该 API 的使用场景、请求及响应字段等,可附上原始抓包记录"
validations:
required: true
required: true
+2 -2
View File
@@ -8,7 +8,7 @@ body:
attributes:
label: "提交前请确认"
options:
- label: "我已确认文档中相关内容存在错误或不足,且 Issues、Pull Requests 中无相关提交"
- label: "我已阅读贡献指南, 已确认文档中相关内容存在错误或不足,且 Issues、Pull Requests 中无相关提交"
required: true
- type: input
id: document_link
@@ -26,4 +26,4 @@ body:
label: "更新内容"
description: "请指出原文档中与最新 API 行为不符之处,并附上已知的最新改动和验证信息"
validations:
required: true
required: true
+48 -48
View File
@@ -1,64 +1,64 @@
name: "错误修正"
description: "发现文档内容有误并提交修正请求"
title: "[错误修正] <title>"
name: "错误修正"
description: "发现文档内容有误并提交修正请求"
title: "[错误修正] <title>"
labels: ["错误/Mistakes"]
body:
- type: checkboxes
id: confirmations
attributes:
label: "提交前请确认"
options:
- label: "我已确认文档中错误存在,且 Issues、Pull Requests 中无相同修正"
required: true
- label: "我已验证修正内容的正确性"
required: false
body:
- type: checkboxes
id: confirmations
attributes:
label: "提交前请确认"
options:
- label: "我已阅读贡献指南, 已确认文档中错误存在,且 Issues、Pull Requests 中无相同修正"
required: true
- label: "我已验证修正内容的正确性"
required: false
- type: input
id: document_link
attributes:
label: "错误所在文档链接"
- type: input
id: document_link
attributes:
label: "错误所在文档链接"
description: |
需要修正的文档链接,指定到具体 API<br>
eg: https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/bangumi/info.md#获取剧集明细web端ssidepid方式<br>
https://socialsisteryi.github.io/bilibili-API-collect/docs/bangumi/info.html#获取剧集明细-web端-ssid-epid方式
validations:
required: true
validations:
required: true
- type: dropdown
id: error_type
attributes:
label: "错误类型"
- type: dropdown
id: error_type
attributes:
label: "错误类型"
multiple: true
options:
- "API 地址/鉴权方式错误"
- "参数错误"
- "响应数据结构或响应示例错误"
options:
- "API 地址/鉴权方式错误"
- "参数错误"
- "响应数据结构或响应示例错误"
- "描述性内容错误(如拼写/流程说明)"
- "接口已弃用下线"
- "其他(请在下文说明)"
validations:
required: true
- "接口已弃用下线"
- "其他(请在下文说明)"
validations:
required: true
- type: textarea
id: error_description
attributes:
label: "错误描述"
description: "请详细说明具体错误所在,如有多个错误请编号列出"
validations:
required: true
- type: textarea
id: error_description
attributes:
label: "错误描述"
description: "请详细说明具体错误所在,如有多个错误请编号列出"
validations:
required: true
- type: textarea
id: evidence
attributes:
attributes:
label: "纠错依据"
description: "如果有,请提供抓包记录等佐证,方便确认。如果有多个错误,请将依据对应错误描述的编号列出"
validations:
description: "如果有,请提供抓包记录等佐证,方便确认。如果有多个错误,请将依据对应错误描述的编号列出"
validations:
required: false
- type: textarea
id: correction
attributes:
label: "修正方案"
description: "如果可以,请提供修正后的内容,如有多个修正点请编号列出"
validations:
required: false
- type: textarea
id: correction
attributes:
label: "修正方案"
description: "如果可以,请提供修正后的内容,如有多个修正点请编号列出"
validations:
required: false
+3
View File
@@ -6,3 +6,6 @@
.vscode/
.DS_Store
*.swp
/*.*js
/*.json
/*.sh
+20 -18
View File
@@ -1,6 +1,6 @@
# 贡献指南
欢迎来到 bilibili-API-collect 社区贡献指南,本文主要面向需要进行提交贡献文档内容的用户。
欢迎来到 bilibili-API-collect 社区贡献指南,本文主要面向想要对本项目参与贡献的用户, 请务必认真阅读本文正文与潜在的注释
## 总则
@@ -12,7 +12,7 @@
## Issue、Discussion 与社群讨论
对文档内容存在**不理解**之处、以及发现文档内容有所**缺失**或**错误**,可直接提出,强烈建议以提交 **Issue** 的形式添加 / 补充 / 更新文档中的说明,以发起 **Discussion** 的形式提出问题、代码用例、情报分享,并希望关于本项目的各种交流都是**公开进行**的,因为这样才可以保证关键信息的一致性。
对文档内容存在**不理解**之处、以及发现文档内容有所**缺失**或**错误**,可直接提出,强烈建议以提交 **Issue** 的形式 添加 / 补充 / 更新 文档中的说明,以发起 **Discussion** 的形式提出问题、代码用例、情报分享,并希望关于本项目的各种交流都是**公开进行**的,因为这样才可以保证关键信息的一致性。
提交 Issue 请遵守以下原则:
@@ -57,7 +57,7 @@ Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bi
### 目录
文档目录以 **Markdown 无序列表**语法写在 [README.md](README.md) 中,使用缩进标识文档的层级,如 `视频` 下存在 `基本信息``快照``视频推荐``TAG` 等子分类,使用 **Markdown 复选框**语法该标注文档是否编写完成
文档目录以 **Markdown 无序列表**语法写在 [README.md](README.md) 中,使用缩进标识文档的层级,如 `视频` 下存在 `基本信息``快照``视频推荐``TAG` 等子分类,使用 **Markdown 复选框**语法该标注文档是否编写完成, 新文档写完后记得在目录添加入口
```markdown
- [ ] 视频
@@ -97,9 +97,9 @@ Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bi
接口说明分为 `标题``地址``说明``请求参数``响应正文``示例` 这些部分
接口标题为**二级以下**的标签,接口地址使用**引用**语法,地址只保留 REST API 路径,不应携带 query 等内容
接口标题为**二级以下**的标签<!--别顶着一级标题就开写-->,接口地址使用**引用**语法,地址只保留 REST API 路径,不应携带 query 等内容
接口地址下方需要注明接口的请求方,如 `GET``POST``PUT` 等,使用*斜体*语法
接口地址下方需要注明接口的请求方,如 `GET``POST``PUT` 等,使用*斜体*语法
若接口存在认证或鉴权,需要在说明中注明,如 `Cookie (SESSDATA)``APP`(认证是针对用户的,鉴权是针对接口使用的)
@@ -112,16 +112,16 @@ e.g.
> https://api.bilibili.com/x/web-interface/view
*请求方式:GET*
*请求方法: GET*
认证方式Cookie (SESSDATA)
认证方式: Cookie (SESSDATA)
限制游客访问的视频需要登录
```
**请求参数**应在**接口说明**的下方,应注明参数类型 url 参数或正文参数(正文参数应注明 content-type,如 `application/x-www-form-urlencoded``multipart/form-data`),使用**加粗**语法
**请求参数**应在**接口说明**的下方,应注明参数类型 URL 参数或正文参数(正文参数应注明 `Content-Type`,如 `application/x-www-form-urlencoded``multipart/form-data`),使用**加粗**语法
对象的字段及其含义使用**表格**进行整理,表头统一依次为 `参数名``类型``内容``必要性``备注`类型为 `num``str``bool``nums``strs``file` (未来可能会统一改为基于 TypeScript 的类型系统),必要性为 `必要``非必要``必要 (可选)` 等,表格内每个字段为一行
对象的字段及其含义使用**表格**进行整理,表头统一依次为 `参数名``类型``内容``必要性``备注`使用 `object``number``string``boolean``number[]``string[]``file`这种类似 TypeScript 的类型系统,必要性为 `必要``非必要``必要 (可选)` 等,表格内每个字段为一行
e.g.
@@ -134,7 +134,7 @@ e.g.
JSON Object 或 ProtoBuf Message 应以对象的**表格**形式书写,表头为 `根对象``xx 中的 yy 对象``xx.yy.zz 对象`,若对象位于数组中则为 `xx 数组中的对象``xx[] 中的对象`
表头统一依次为 `字段``类型``内容``备注`,类型为 JSON / Protobuf 的标准类型,`num``str``bool``obj``array``null`
表头统一依次为 `字段``类型``内容``备注`,类型为 JSON / Protobuf 的标准类型,具体同请求参数一致
不明确定义的字段说明在内容的末尾添加问号,如 `播放数?`;定义尚未明确的字段使用 `(?)` 在内容中占位,并在备注中填写 `作用尚不明确`
@@ -174,12 +174,12 @@ e.g.
示例命令前后可以适当添加一些文字说明
响应体示例为一段格式化后的 JSON 或 ProtoBuf Message,使用**代码块**语法书写并使用 `<details>` 标签进行折叠, 仍一律使用 **2****空格** 进行缩进
响应体示例为一段格式化后的 JSON 或 ProtoBuf Message,使用**代码块**语法书写, 代码块语言填写清楚, 注意 `json` `jsonc` 区别. 并使用 `<details>` 标签进行折叠, 仍一律使用 **2****空格** 进行缩进
e.g.
````markdown
**示例**
**示例:**
获取视频 `av85440373` 的基本信息
@@ -189,7 +189,7 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
```
<details>
<summary>查看响应示例</summary>
<summary>查看响应示例:</summary>
```jsonc
{
@@ -262,22 +262,24 @@ message Author {
本项目仓库仅托管于 GitHub, 使用 Git 作为版本控制系统, 你需要对两者有基础的了解
请先 fork, 然后在自己的 fork 上进行修改
请先 fork, 然后在自己的 fork 上进行修改<!--废话-->
提交的标题不要使用默认的 `Update xxx`, 建议遵循 [Conventional Commits (约定式提交) 规范](https://www.conventionalcommits.org/zh-hans/v1.0.0/), 标题语言可根据个人习惯
提交的标题不要使用默认的 `Update xxx`, 遵循 [Conventional Commits (约定式提交) 规范](https://www.conventionalcommits.org/zh-hans/v1.0.0/), 标题语言可根据个人习惯
<!--下面这两段属于常识, 但好像还有人不知道-->
当发现远程与本地仓库不一致时, 若你操作的 fork 的 branch 无打开的 PR, 建议使用变基拉取, 而不是生成一个额外的合并提交的合并拉取, 反之则相反
移动文件请使用 `git mv`, 而不是删除并添加同一个文件于不同位置 (该问题在 VSCode 的 GUI 版 Git 中存在)
移动文件请使用 `git mv`, 而不是删除并添加同一个文件于不同位置 (该问题在 VSCode 的 GUI 版 Git 中存在<!--某个易姓owner干过-->), 以便后续 blame 操作
### 拉取请求 (Pull Request)
使用 拉取请求 (Pull Request, PR) 将修改后的文档提交到 `master` 分支,标题需写明修改或新增的内容, `gh_pages` 分支将在 PR 合并后自动更新
使用 拉取请求 (Pull Request, PR) 将修改后的文档提交到 `master` 分支,标题需写明修改或新增的内容, 同样也需要遵循约定式提交规范, `gh_pages` 分支将在 PR 合并后自动更新
如果你还没有完成计划的全部修改, 请创建 Draft Pull Request 表示你还没有做好被合并的准备 ~~(抢占先机, 精神可嘉, 值得鼓励)~~
PR 正文使用 **无序列表** 写明更改的每一项内容, 可以使用复选框表明进度, 需要关闭的 Issue 请使用 `close #xxxx` 这样的格式一并包含在内
如果内容包含代码, 请一并提供测试的输入与输出的文本或截图, 最好可以附上完整的测试环境及相关可执行文件等
如果内容包含代码, 请一并提供测试的输入与输出的文本或截图, 最好可以附上完整的测试环境及相关可执行文件等
<!--这也是常识喵-->
PR 合并后, 请及时删除或更新分支. 特别是在使用压缩合并或变基合并后, 请 `Discard changes` 或直接删除分支, 以免在下一次 PR 后出现重复相同提交的问题
+35 -27
View File
@@ -74,6 +74,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
- [x] [获取当前时间戳](docs/misc/time_stamp.md)
- [x] [公共错误码](docs/misc/errcode.md)
- [x] [图片格式化](docs/misc/picture.md)
- [x] [表达式渲染](docs/misc/mathjax.md)
- [x] [bvid 说明](docs/misc/bvid_desc.md)
- [ ] [设备唯一标识 BUVID](docs/misc/device_identity.md)
- [ ] [获取 buvid3 / buvid4 / b_nut](docs/misc/buvid3_4.md)
@@ -105,6 +106,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
- [x] [用户认证类型一览](docs/user/official_role.md)
- [ ] [加入老粉计划](docs/user/contract.md)
- [x] [所有粉丝勋章](docs/user/medals.md)
- [ ] [批量查询](docs/user/batch.md)
- [ ] [大会员](docs/vip)
- [ ] [大会员基本信息](docs/vip/info.md)
- [ ] [大会员中心](docs/vip/center.md)
@@ -153,12 +155,41 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
- [x] [笔记列表](docs/note/list.md)
- [x] [笔记详细信息](docs/note/info.md)
- [x] [笔记操作](docs/note/action.md)
- [ ] [图文](docs/opus)
- [x] [图文详细](docs/opus/detail.md)
- [x] [空间图文](docs/opus/space.md)
- [ ] [功能模块](docs/opus/features.md)
- [ ] [富文本节点](docs/opus/rich_text_nodes.md)
- [ ] [专栏](docs/article)
- [ ] [专栏内容](docs/article/view.md)
- [ ] [专栏分类](docs/article/category.md)
- [x] [基本信息](docs/article/info.md)
- [x] [点赞 & 投币 & 收藏 & 分享](docs/article/action.md)
- [x] [文集基本信息](docs/article/articles.md)
- [x] [删除](docs/article/delete.md)
- [x] [卡片信息](docs/article/card.md)
- [X] [基本信息](docs/article/info.md)
- [X] [点赞 & 投币 & 收藏 & 分享](docs/article/action.md)
- [X] [文集基本信息](docs/article/articles.md)
- [ ] [动态](docs/dynamic)
- [ ] [获取动态列表](docs/dynamic/all.md)
- [ ] [用户空间动态](docs/dynamic/space.md)
- [ ] [动态基本信息](docs/dynamic/basicInfo.md)
- [ ] [动态卡片信息字段](docs/dynamic/card_info.md)
- [ ] [获取动态详情](docs/dynamic/detail.md)
- [ ] [动态类型对照](docs/dynamic/dynamic_enum.md)
- [ ] [动态信息](docs/dynamic/content.md)
- [ ] [发送 & 转载动态](docs/dynamic/publish.md)
- [ ] [根据关键字搜索用户(at 别人时的填充列表)](docs/dynamic/atlist.md)
- [ ] [操作](docs/dynamic/action.md)
- [ ] [话题](docs/dynamic/topic.md)
- [ ] [动态内容](docs/dynamic/get_dynamic_detail.md)
- [ ] [导航栏动态](docs/dynamic/nav.md)
- [x] [首页公告栏](docs/dynamic/banner.md)
- [ ] [创作中心](docs/creativecenter)
- [ ] [投稿](docs/creativecenter/upload.md)
- [ ] [统计与数据](docs/creativecenter/statistics&data.md)
- [ ] 列表查询相关
- [x] [电磁力数据](docs/creativecenter/railgun.md)
- [ ] [合集管理](docs/creativecenter/season.md)
- [ ] [视频相关杂项](docs/creativecenter/videos.md)
- [ ] [图文操作](docs/creativecenter/opus.md)
- [ ] [音频](docs/audio)
- [x] [歌曲基本信息](docs/audio/info.md)
- [ ] [歌单 & 音频收藏夹详细信息](docs/audio/music_list.md)
@@ -189,13 +220,6 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
- [ ] [表情](docs/emoji)
- [x] [表情及表情包信息](docs/emoji/list.md)
- [x] [操作](docs/emoji/action.md)
- [ ] [创作中心](docs/creativecenter)
- [ ] [投稿](docs/creativecenter/upload.md)
- [ ] [统计与数据](docs/creativecenter/statistics&data.md)
- [ ] 列表查询相关
- [x] [电磁力数据](docs/creativecenter/railgun.md)
- [ ] [合集管理](docs/creativecenter/season.md)
- [ ] [视频相关杂项](docs/creativecenter/videos.md)
- [x] [实时广播(通讯协议)](docs/broadcast)
- [x] [视频内广播](docs/broadcast/video_room.md)
- [ ] [充电](docs/electric)
@@ -205,22 +229,6 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
- [x] [微信 & 支付宝方式充电](docs/electric/WeChat&Alipay.md)
- [x] [充电留言](docs/electric/charge_msg.md)
- [x] [充电列表](docs/electric/charge_list.md)
- [ ] [动态](docs/dynamic)
- [ ] [获取动态列表](docs/dynamic/all.md)
- [ ] [获取用户空间动态](docs/dynamic/space.md)
- [ ] [动态基本信息](docs/dynamic/basicInfo.md)
- [ ] [动态详细信息字段](docs/dynamic/card_info.md)
- [ ] [获取动态详情](docs/dynamic/detail.md)
- [ ] [动态类型对照](docs/dynamic/dynamic_enum.md)
- [ ] [动态信息](docs/dynamic/content.md)
- [ ] [话题搜索](docs/dynamic/topic.md)
- [ ] [发送 & 转载动态](docs/dynamic/publish.md)
- [ ] [根据关键字搜索用户(at 别人时的填充列表)](docs/dynamic/atlist.md)
- [ ] [操作](docs/dynamic/action.md)
- [ ] 动态列表
- [x] [特定话题动态列表](docs/dynamic/tag_dynamics.md)
- [ ] [动态内容](docs/dynamic/get_dynamic_detail.md)
- [ ] [导航栏动态](docs/dynamic/nav.md)
- [ ] ~~[相簿](docs/album)~~ (已下线)
- [x] ~~[基本信息](docs/album/info.md)~~
- [x] ~~[相簿列表](docs/album/list.md)~~
+463
View File
@@ -0,0 +1,463 @@
# 卡片信息
## 获取专栏显示卡片信息
> https://api.bilibili.com/x/article/cards
*请求方法: GET*
鉴权方式: 请求头 `Referer``.bilibili.com`
**URL 参数:**
| 参数 | 类型 | 内容 | 必要性 | 备注 |
| ----- | ------ | ---- | ------ | ---- |
| ids | string | 被查询的 id 列表 | 不必要 | 以 `,` 分隔, 可填视频完整 AV/BV 号, 专栏 CV 号, 直播间长短 lv 号 (可能会合并同类项) |
| web_location | string | `333.1305` | 不必要 | |
| w_rid | string | WBI 签名 | 不必要 | 参见 [WBI 签名](../misc/sign/wbi.md) |
| wts | number | UNIX 秒级时间戳 | 不必要 | 参见 [WBI 签名](../misc/sign/wbi.md) |
**JSON 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| code | number | 返回值 | 0: 成功 |
| data | object | 数据本体 | |
| message | string | 错误信息 | 成功时为 `0` |
| ttl | number | `1` | |
`data` 对象:
以请求时 `ids` 字段中每一项为键, 其内容对象为值的表, 注意可能会合并同类项
`data` 中代表视频的对象 (`avxxx``Bvxxxxxxxxxx`):
详细可参见 [视频基本信息] (../video/info.md)
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| aid | number | | |
| bvid | string | | |
| cid | number | | |
| copyright | number | | |
| cover43 | string | | |
| ctime | number | | |
| desc | string | | |
| dimension | object | | |
| duration | number | | |
| dynamic | string | | |
| owner | object | | |
| pic | string | | |
| pubdate | number | | |
| rights | object | | |
| short_link_v2 | string | | |
| stat | object | | |
| state | number | | |
| tid | number | | |
| title | string | | |
| tname | string | | |
| videos | number | | |
| vt_switch | boolean | | |
`data` 中代表专栏的对象 (`cvxxx`):
详细可参见 [专栏内容](view.md)
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| act_id | number | | |
| apply_time | string | | |
| attributes | number | | |
| authenMark | null | | |
| author | object | | |
| banner_url | string | | |
| categories | object[] | | |
| category | object | | |
| check_state | number | | |
| check_time | string | | |
| content_pic_list | null | | |
| cover_avid | number | | |
| ctime | number | | |
| dispute | null | | |
| dynamic | string | | |
| id | number | | |
| image_urls | string[] | | |
| is_like | boolean | | |
| list | object | | |
| media | object | | |
| mtime | number | | |
| origin_image_urls | string[] | | |
| origin_template_id | number | | |
| original | number | | |
| private_pub | number | | |
| publish_time | number | | |
| reprint | number | | |
| state | number | | |
| stats | object | | |
| summary | string | | |
| template_id | number | | |
| title | string | | |
| top_video_info | null | | |
| type | number | | |
| words | number | | |
`data` 中代表直播间的对象:
详细可参见 [直播间基本信息](../live/info.md)
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| area_v2_name | string | 分区完整名称 | |
| cover | string | 直播封面 | |
| face | string | 主播头像 | |
| live_status | number | 直播状态 | |
| online | number | 在线人数 | |
| pendent_ru | string | | |
| pendent_ru_color | string | | |
| pendent_ru_pic | string | | |
| role | number | | |
| room_id | number | 直播间长 id | |
| title | string | 直播间标题 | |
| uid | number | 主播 UID (mid) | |
| uname | string | 主播用户名 | |
**示例:**
```shell
curl 'https://api.bilibili.com/x/article/cards?ids=av2,cv1,cv2,15111509,lv1,lv5440' \
--referer 'https://www.bilibili.com/'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"data": {
"av2": {
"aid": 2,
"bvid": "BV1xx411c7mD",
"cid": 62131,
"copyright": 2,
"cover43": "",
"ctime": 1497344798,
"desc": "www",
"dimension": {
"height": 360,
"rotate": 0,
"width": 480
},
"duration": 2055,
"dynamic": "",
"owner": {
"face": "https://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg",
"mid": 2,
"name": "碧诗"
},
"pic": "http://static.hdslb.com/images/transparent.gif",
"pubdate": 1252458549,
"rights": {
"arc_pay": 0,
"autoplay": 1,
"bp": 0,
"download": 0,
"elec": 0,
"hd5": 0,
"is_cooperation": 0,
"movie": 0,
"no_background": 0,
"no_reprint": 0,
"pay": 0,
"pay_free_watch": 0,
"ugc_pay": 0,
"ugc_pay_preview": 0
},
"short_link_v2": "https://b23.tv/BV1xx411c7mD",
"stat": {
"aid": 2,
"coin": 38042,
"danmaku": 121342,
"dislike": 0,
"favorite": 107375,
"his_rank": 0,
"like": 261036,
"now_rank": 0,
"reply": 86021,
"share": 20052,
"view": 4983587,
"vt": 0,
"vv": 0
},
"state": 0,
"tid": 130,
"title": "字幕君交流场所",
"tname": "音乐综合",
"videos": 1,
"vt_switch": false
},
"cv1": {
"act_id": 0,
"apply_time": "",
"attributes": 24,
"authenMark": null,
"author": {
"face": "https://i1.hdslb.com/bfs/face/89fe260a17891fdadc3365a9698fee52796c7765.jpg",
"fans": 0,
"level": 0,
"mid": 91221505,
"name": "健行见远渐忘",
"nameplate": {
"condition": "2018.6.26-7.8某一天是年度大会员",
"image": "https://i2.hdslb.com/bfs/face/421179426c929dfeaed4117461c83f5d07ffb148.png",
"image_small": "https://i1.hdslb.com/bfs/face/682001c2e1c2ae887bdf2a0e18eef61180c48f84.png",
"level": "稀有勋章",
"name": "大会员2018年度勋章",
"nid": 74
},
"official_verify": {
"desc": "",
"type": -1
},
"pendant": {
"expire": 0,
"image": "https://i1.hdslb.com/bfs/face/7ae15f06f8c912435206a2578509d6bc77c12353.png",
"name": "作文鬼才",
"pid": 255
},
"vip": {
"avatar_subscript": 1,
"due_date": 0,
"label": {
"label_theme": "annual_vip",
"path": "http://i0.hdslb.com/bfs/vip/label_annual.png",
"text": "年度大会员"
},
"nickname_color": "#FB7299",
"status": 1,
"theme_type": 0,
"type": 2,
"vip_pay_type": 0
}
},
"banner_url": "https://i0.hdslb.com/bfs/article/b1e1029c08d8ad1bb06460d736839a7741dd7925.jpg",
"categories": [
{
"id": 3,
"name": "生活",
"parent_id": 0
},
{
"id": 15,
"name": "日常",
"parent_id": 3
}
],
"category": {
"id": 15,
"name": "日常",
"parent_id": 3
},
"check_state": 0,
"check_time": "",
"content_pic_list": null,
"cover_avid": 0,
"ctime": 1497973729,
"dispute": null,
"dynamic": "It's now or never !",
"id": 1,
"image_urls": [
"https://i0.hdslb.com/bfs/article/d2eedf1fd338bceca10099e2f7b33fa9017c859b.jpg"
],
"is_like": false,
"list": {
"apply_time": "",
"articles_count": 0,
"check_time": "",
"ctime": 1588601669,
"id": 253534,
"image_url": "",
"mid": 91221505,
"name": "静夜思",
"publish_time": 1625900652,
"read": 0,
"reason": "",
"state": 1,
"summary": "",
"update_time": 1625900518,
"words": 3059
},
"media": {
"area": "",
"cover": "",
"media_id": 0,
"score": 0,
"season_id": 0,
"spoiler": 0,
"title": "",
"type_id": 0,
"type_name": ""
},
"mtime": 1589209079,
"origin_image_urls": [
"https://i0.hdslb.com/bfs/article/b1e1029c08d8ad1bb06460d736839a7741dd7925.jpg"
],
"origin_template_id": 4,
"original": 0,
"private_pub": 0,
"publish_time": 1519913233,
"reprint": 0,
"state": 0,
"stats": {
"coin": 2545,
"dislike": 1,
"dynamic": 0,
"favorite": 17524,
"like": 32489,
"reply": 14399,
"share": 616,
"view": 1631442
},
"summary": "天空像是倾倒出的墨水,黑得静谧而深邃。黎明还远,光亮全无。夜不能寐。披衣,起床。茶香的弥漫,一盏灯的相伴。夜,你是我久别重逢的朋友,那一刹那的相见,带给了我久违的安思。如果不是梦魇的皮闹,我本不该投入",
"template_id": 4,
"title": "未知的光",
"top_video_info": null,
"type": 0,
"words": 1190
},
"cv2": {
"act_id": 0,
"apply_time": "",
"authenMark": null,
"author": {
"face": "http://i0.hdslb.com/bfs/face/ff6b51c3b339dae5f341d1693f52132ab11c86b6.jpg",
"fans": 0,
"level": 0,
"mid": 144900660,
"name": "专栏小天使",
"nameplate": {
"condition": "",
"image": "",
"image_small": "",
"level": "",
"name": "",
"nid": 0
},
"official_verify": {
"desc": "专栏小天使 官方账号",
"type": 0
},
"pendant": {
"expire": 0,
"image": "",
"name": "",
"pid": 0
},
"vip": {
"avatar_subscript": 0,
"due_date": 0,
"label": {
"label_theme": "",
"path": "",
"text": ""
},
"nickname_color": "",
"status": 0,
"theme_type": 0,
"type": 0,
"vip_pay_type": 0
}
},
"banner_url": "https://i0.hdslb.com/bfs/article/131b1d41b857d5308f5bff36591d117bddc48d96.jpg@90p.webp",
"categories": [
{
"id": 3,
"name": "生活",
"parent_id": 0
},
{
"id": 15,
"name": "日常",
"parent_id": 3
}
],
"category": {
"id": 15,
"name": "日常",
"parent_id": 3
},
"check_state": 0,
"check_time": "",
"content_pic_list": null,
"cover_avid": 0,
"ctime": 1497973871,
"dispute": null,
"id": 2,
"image_urls": [
"https://i0.hdslb.com/bfs/article/0a72422ce8e77d8512f010d93b1b7f9bc4e64e52.jpg"
],
"is_like": false,
"list": null,
"media": {
"area": "",
"cover": "",
"media_id": 0,
"score": 0,
"season_id": 0,
"spoiler": 0,
"title": "",
"type_id": 0,
"type_name": ""
},
"mtime": 1640696950,
"origin_image_urls": [
"https://i0.hdslb.com/bfs/article/131b1d41b857d5308f5bff36591d117bddc48d96.jpg"
],
"origin_template_id": 4,
"original": 0,
"private_pub": 0,
"publish_time": 1509517123,
"reprint": 1,
"state": 0,
"stats": {
"coin": 3590,
"dislike": 0,
"dynamic": 0,
"favorite": 5614,
"like": 16956,
"reply": 1944,
"share": 371,
"view": 1184187
},
"summary": "欢迎各位使用Bilibili专栏,为了保证Bilibili专栏的内容质量,维护专栏的内容生态,让创作者和读者都拥有良好的使用体验和阅读体验,请各位谨遵以下规范条例:\n\n严令禁止条例\nbilibili严",
"template_id": 4,
"title": "专栏行为准则 ",
"top_video_info": null,
"type": 0,
"words": 3711
},
"lv5440": {
"area_v2_name": "历史·人文·综合",
"cover": "https://i0.hdslb.com/bfs/live/9fe50921ab9b49e80dcb398f65135191d1b8252c.jpg",
"face": "https://i0.hdslb.com/bfs/face/8f6a614a48a3813d90da7a11894ae56a59396fcd.jpg",
"live_status": 2,
"online": 0,
"pendent_ru": "",
"pendent_ru_color": "",
"pendent_ru_pic": "",
"role": 0,
"room_id": 5440,
"title": "一场穿越20年的直播|梦回千禧文学",
"uid": 9617619,
"uname": "哔哩哔哩直播"
}
},
"message": "0",
"ttl": 1
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-04-26T08:24:57.605652577Z -->
-46
View File
@@ -1,46 +0,0 @@
# 删除专栏
> <https://member.bilibili.com/x/web/article/delete>
*请求方式:POST*
认证方式:CookieSESSDATA
**正文参数(application/x-www-form-urlencoded):**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------ | ---- |
| aid | num | 文章cvid | 必要 | |
| csrf | str | CSRF Token(位于cookie | 必要 | |
**json回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------- |
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111csrf校验失败<br />-400:请求错误<br />-404:无此项<br />37104:无权限操作他人专栏 |
| message | str | 错误信息 | 默认为`0` |
| ttl | num | 1 | |
**示例:**
```shell
curl 'https://member.bilibili.com/x/web/article/delete' \
--data-urlencode 'aid=114514' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1
}
```
</details>
+1346
View File
File diff suppressed because one or more lines are too long
+110
View File
@@ -0,0 +1,110 @@
# 图文操作
## 删除动态
> https://api.bilibili.com/x/dynamic/feed/operate/remove
*请求方法: POST*
认证方式:Cookie (SESSDATA)
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ------ | ---- | ------ | ---- |
| csrf | string | CSRF Token (即 Cookie 中 bili_jct) | 必要 | |
| platform | string | 平台标识 | 不必要 | 如 `web` |
**正文参数 (application/json):**
根对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ------ | -------------- | ------ | ---- |
| dyn_id_str | string | 动态的 opus id | 必要 | |
| dyn_type | number | 动态类型? | 不必要 | |
| rid_str | string | | 不必要 | |
**JSON 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ------ | ------ | ---- |
| code | number | 返回值 | 0: 成功<br />-101: 帐号未登录<br />-111: csrf 校验失败<br />-400: 请求错误<br />4101001: 参数错误<br />4101144: 只能删除自身的动态 |
| message | string | 错误信息 | 成功时为 `0` |
| ttl | number | `1` | |
| data | object | 空对象 | |
**示例:**
删除动态 `667831766353969169`
```shell
curl 'https://api.bilibili.com/x/dynamic/feed/operate/remove' \
--url-query 'csrf=05fa8d65755655c2893d40d3692d4c70' \
-H 'content-type: application/json'
--data-raw '{"dyn_id_str":"667831766353969169"}' \
-b 'SESSDATA=xxxxxx' \
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
## 删除专栏
> <https://member.bilibili.com/x/web/article/delete>
*请求方式:POST*
认证方式:CookieSESSDATA
**正文参数(application/x-www-form-urlencoded):**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------ | ---- |
| aid | num | 文章cvid | 必要 | |
| csrf | str | CSRF Token(位于cookie | 必要 | |
**json回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------- |
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111csrf校验失败<br />-400:请求错误<br />-404:无此项<br />37104:无权限操作他人专栏 |
| message | str | 错误信息 | 默认为`0` |
| ttl | num | 1 | |
**示例:**
```shell
curl 'https://member.bilibili.com/x/web/article/delete' \
--data-urlencode 'aid=114514' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1
}
```
</details>
+238
View File
@@ -1,7 +1,125 @@
# 动态操作
## 点赞动态
> https://api.bilibili.com/x/dynamic/feed/dyn/thumb
*请求方法: POST*
认证方式: Cookie (SESSDATA)
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ------ | ------ | ------ | ---- |
| csrf | string | CSRF Token (即 Cookie 中 bili_jct) | 必要 | |
**正文参数 (application/json):**
根对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ------ | -------- | ------ | ---- |
| dyn_id_str | string | 动态 id | 必要 | |
| up | number | 点赞状态 | 必要 | 0: 切换<br />1: 点赞<br />2: 取消点赞 |
| spmid | string | `333.1369.0.0` | 不必要 | |
| from_spmid | string | `333.999.0.0` | 不必要 | |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ------ | ---- | ---- |
| code | number | 返回值 | 0: 成功<br />-101: 账号未登录<br />-111: csrf 校验失败<br />4100001: 参数错误 |
| message | string | 错误消息 | 成功时为 `0` |
| ttl | number | `1` | |
| data | object | 空对象 | |
**示例:**
点赞动态 `1057955152016703512`
```shell
curl -X POST 'https://api.bilibili.com/x/dynamic/feed/dyn/thumb' \
--url-query 'csrf=xxx' \
-b 'SESSDATA=xxxxx' \
-H 'content-type: application/json' \
--data-raw '{"dyn_id_str":"1057955152016703512","up":1}'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
## 点赞动态 (旧版)
> https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/thumb
*请求方法: POST*
认证方式: Cookie (SESSDATA)
**正文参数 (application/x-www-form-urlencoded):**
根对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ------ | -------- | ------ | ---- |
| dynamic_id | string | 动态 id | 必要 | |
| up | number | 点赞状态 | 必要 | 0: 切换<br />1: 点赞<br />2: 取消点赞 |
| csrf | string | CSRF Token (即 Cookie 中 bili_jct) | 必要 | |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ------ | ---- | ---- |
| code | number | 返回值 | 0: 成功<br />-101: 账号未登录<br />-111: csrf 校验失败<br />4100001: 参数错误 |
| message | string | 错误消息 | 成功时为 `0` |
| ttl | number | `1` | |
| data | object | 空对象 | |
**示例:**
点赞动态 `1060771233257226247`
```shell
curl -X POST 'https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/thumb' \ --data-urlencode 'csrf=xxxxxx' \
--data-urlencode 'dynamic_id=1060771233257226247' \
--data-urlencode 'up=1' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
## 删除动态
参见 [创作中心 -> 图文操作 -> 删除动态](../creativecenter/opus.md#删除动态)
## 删除动态 (旧版)
> <https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic>
*请求方式:POST*
@@ -111,3 +229,123 @@ curl 'https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft' \
```
</details>
## 设置置顶动态
> https://api.bilibili.com/x/dynamic/feed/space/set_top
**请求方法: POST**
认证方式: Cookie (SESSDATA)
鉴权方式: Cookie 中 `buvid3` 不为空
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ------ | ------ | ------ | ---- |
| csrf | string | CSRF Token (即 Cookie 中 bili_jct) | 必要 | |
**正文参数 (application/json):**
根对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ------ | -------- | ------ | ---- |
| dyn_str | string | 动态 id | 必要 | |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ------ | ---- | ---- |
| code | number | 返回值 | 0: 成功<br />-101: 账号未登录<br />-111: csrf 校验失败<br />4100001: 参数错误 |
| message | string | 错误消息 | 成功时为 `0` |
| ttl | number | `1` | |
| data | object | 空对象 | |
**示例:**
置顶动态 `1063487284684259332`
```shell
curl -X POST 'https://api.bilibili.com/x/dynamic/feed/space/set_top' \
--url-query 'csrf=xxx' \
-b 'SESSDATA=xxxxx; buvid3=aaa' \
-H 'content-type: application/json' \
--data-raw '{"dyn_str":"1063487284684259332"}'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
## 取消置顶动态
> https://api.bilibili.com/x/dynamic/feed/space/rm_top
**请求方法: POST**
认证方式: Cookie (SESSDATA)
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ------ | ------ | ------ | ---- |
| csrf | string | CSRF Token (即 Cookie 中 bili_jct) | 必要 | |
**正文参数 (application/json):**
根对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ------ | -------- | ------ | ---- |
| dyn_str | string | 动态 id | 必要 | |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ------ | ---- | ---- |
| code | number | 返回值 | 0: 成功<br />-101: 账号未登录<br />-111: csrf 校验失败<br />4100001: 参数错误 |
| message | string | 错误消息 | 成功时为 `0` |
| ttl | number | `1` | |
| data | object | 空对象 | |
**示例:**
取消置顶动态 `1063487284684259332`
```shell
curl -X POST 'https://api.bilibili.com/x/dynamic/feed/space/rm_top' \
--url-query 'csrf=xxx' \
-b 'SESSDATA=xxxxx' \
-H 'content-type: application/json' \
--data-raw '{"dyn_str":"1063487284684259332"}'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
+59 -238
View File
@@ -76,125 +76,15 @@
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| module_author | obj | UP主信息 | |
| module_author | obj | UP主信息 | 参见 [MODULE_TYPE_AUTHOR](../opus/features.md#module-type-author) 中的 `module_author` 对象 |
| module_dynamic | obj | 动态内容信息 | |
| module_more | obj | 动态右上角三点菜单 | |
| module_stat | obj | 动态统计数据 | |
| module_more | obj | 动态右上角三点菜单 | 参见 [module_more](../opus/features.md#module-more) 中的 `module_more` 对象 |
| module_stat | obj | 动态统计数据 | 参见 [MODULE_TYPE_STAT](../opus/features.md#module-type-stat) 中的 `module_stat` 对象 |
| module_interaction | obj | 热度评论 | |
| module_fold | obj | 动态折叠信息 | |
| module_dispute | obj | 争议小黄条 | |
| module_tag | obj | 置顶信息 | |
`data.items[n].modules.module_author`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| avater | obj | 头像信息 | 主要用于网页渲染, 若感兴趣可参考 [图片格式化](../misc/picture.md) |
| face | str | 头像 URL | |
| face_nft | bool | 是否为NFT头像 | |
| following | bool | 是否关注此UP主 | 自己的动态为`null` |
| jump_url | str | 跳转链接 | |
| label | str | 名称前标签 | `合集`<br/>`电视剧`<br/>`番剧` |
| mid | num | UP主UID<br/>剧集SeasonId | |
| name | str | UP主名称<br/>剧集名称<br/>合集名称 | |
| official_verify | obj | UP主认证信息 | |
| pendant | obj | UP主头像框 | |
| pub_action | str | 更新动作描述 | `投稿了视频`<br/>`直播了`<br/>`投稿了文章`<br/>`更新了合集`<br/>`与他人联合创作`<br/>`发布了动态视频`<br/>`投稿了直播回放` |
| pub_location_text | str | 空 | |
| pub_time | str | 更新时间 | `x分钟前`<br/>`x小时前`<br/>`昨天` |
| pub_ts | num | 更新时间戳 | UNIX 秒级时间戳 |
| type | str | 作者类型 | [作者类型](./dynamic_enum.md#作者类型) |
| vip | obj | UP主大会员信息 | |
| decorate | obj | 装扮信息 | |
| nft_info | obj | NFT头像信息 | |
`data.items[n].modules.module_author.official_verify`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| desc | str | 认证说明 | |
| type | num | 认证类型 | |
`data.items[n].modules.module_author.pendant`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| expire | num | 过期时间 | 此接口返回恒为`0` |
| image | str | 头像框图片url | |
| image_enhance | str | 头像框图片url | |
| image_enhance_frame | str | 头像框图片逐帧序列url | |
| name | str | 头像框名称 | |
| pid | num | 头像框id | |
| n_pid | num | 同 pid | |
`data.items[n].modules.module_author.vip`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| avatar_subscript | num | 是否显示角标 | 0:不显示<br/>1:显示 |
| avatar_subscript_url | str | `空串` | |
| due_date | num | 大会员过期时间戳 | UNIX 毫秒时间戳 |
| label | obj | 大会员标签 | |
| nickname_color | str | 名字显示颜色 | 大会员:`#FB7299` |
| status | num | 大会员状态 | 0:无<br />1:有<br/>2:封禁? |
| theme_type | num | `0` | |
| type | num | 大会员类型 | 0:无<br />1:月大会员<br />2:年度及以上大会员 |
`data.items[n].modules.module_author.vip.label`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| bg_color | str | 会员标签背景颜色 | `#FB7299` |
| bg_style | num | `0` `1` | |
| border_color | str | 空 | |
| img_label_uri_hans | str | 大会员牌子图片 | 动态版 简体版 |
| img_label_uri_hans_static | str | 大会员牌子图片 | 静态版 简体版 |
| img_label_uri_hant | str | 大会员牌子图片 | 动态版 繁体版 |
| img_label_uri_hant_static | str | 大会员牌子图片 | 静态版 繁体版 |
| label_theme | str | 会员标签 | vip:大会员<br />annual_vip:年度大会员<br />ten_annual_vip:十年大会员<br />hundred_annual_vip:百年大会员<br/>fools_day_hundred_annual_vip:最强绿鲤鱼 |
| path | str | 空 | |
| text | str | 会员类型文案 | `大会员` `年度大会员` `十年大会员` `百年大会员` `最强绿鲤鱼` |
| text_color | str | 用户名文字颜色 | |
| use_img_label | bool | `true` | |
`data.items[n].modules.module_author.decorate`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| card_url | str | 动态卡片小图标图片URL | |
| fan | obj | 粉丝装扮信息 | |
| id | num | 装扮ID | |
| jump_url | str | 跳转URL | |
| name | str | 装扮名称 | |
| type | num | `1` `2` `3` | |
`data.items[n].modules.module_author.decorate.fan`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| color | str | 编号颜色 | |
| color_format | obj | 颜色格式 | |
| is_fan | bool | 是否是粉丝装扮 | |
| num_str | str | 装扮编号前缀 | 如 `NO.` |
| number | num | 装扮编号 | |
`data.items[n].modules.module_author.decorate.fan.color_format`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| colors | array | 颜色 | 带 `#` 前缀的 16 进制颜色代码 |
| end_point | str| 端点 | `0,100` |
| gradients | array | 渐变 | 内容 [0, 100] |
| start_point | str | 起点 | `0,0` |
`data.items[n].modules.module_author.nft_info`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| region_icon | str | NFT头像角标URL | 类型1https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/j8AeXAkEul.gif <br/>类型2https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/IOHoVs1ebP.gif |
| region_type | num | NFT头像角标类型 | 1,2 |
| show_status | num | `1` | |
`data.items[n].modules.module_dynamic`:
| 字段 | 类型 | 内容 | 备注 |
@@ -202,7 +92,7 @@
| additional | obj | 相关内容卡片信息 | |
| desc | obj | 动态文字内容 |其他动态时为null |
| major | obj | 动态主体对象 |转发动态时为null |
| topic | obj | 话题信息 | |
| topic | obj | 话题信息 | 无时为 null, 参见 [MODULE_TYPE_TOPIC](../opus/features.md#module-type-topic) |
`data.items[n].modules.module_dynamic.additional`:
@@ -214,6 +104,8 @@
| goods | obj | 商品内容 | `ADDITIONAL_TYPE_GOODS`类型独有 |
| vote | obj | 投票信息 | `ADDITIONAL_TYPE_VOTE`类型独有 |
| ugc | obj | 视频信息 | `ADDITIONAL_TYPE_UGC`类型独有 |
| match | object | 比赛信息? | `ADDITIONAL_TYPE_MATCH`类型独有, 参见 [MODULE_TYPE_CONTENT](../opus/features.md#module-type-content) 的 `module_content.paragraphs[].link_card.match` |
| upower_lottery | object | 充电专属抽奖信息 | `ADDITIONAL_TYPE_UPOWER_LOTTERY`类型独有, 参见 [MODULE_TYPE_CONTENT](../opus/features.md#module-type-content) 的 `module_content.paragraphs[].link_card.upower_lottery` |
`data.items[n].modules.module_dynamic.additional.common`:
@@ -387,38 +279,9 @@
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| rich_text_nodes | array | 富文本节点列表 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) |
| rich_text_nodes | array | 富文本节点列表 | [富文本节点类型](../opus/rich_text_nodes.md#富文本节点类型) |
| text | str | 动态的文字内容 | |
`data.items[n].modules.module_dynamic.desc.rich_text_nodes[o]`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| orig_text | str | 原始文本 | |
| text | str | 替换后的文本 | |
| type | str | 节点类型 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) |
| emoji | obj | 表情信息 | |
| jump_url | str | 跳转URL | |
| rid | str | 关联id | |
| goods | obj | 商品信息 | |
| icon_name | str | 图标名称 | `taobao` |
`data.items[n].modules.module_dynamic.desc.rich_text_nodes[o].emoji`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| icon_url | str | 表情图片URL | |
| size | num | 表情尺寸 | `1` `2` |
| text | str | 表情的文字代码 | |
| type | num | 表情类型 | `1` `2` `3` |
`data.items[n].modules.module_dynamic.desc.rich_text_nodes[o].goods`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| jump_url | str | 跳转URL | |
| type | num | `1` | |
`data.items[n].modules.module_dynamic.major`:
| 字段 | 类型 | 内容 | 备注 |
@@ -436,6 +299,53 @@
| opus | obj | 图文动态 | `MAJOR_TYPE_OPUS` |
| live | obj | | |
| none | obj | 动态失效 | `MAJOR_TYPE_NONE` |
| upower_common | obj | 充电相关 | `MAJOR_TYPE_UPOWER_COMMON` |
`data.items[].modules.module_dynamic.major.upower_common` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| background | object | 背景 | |
| button | object | 按钮 | |
| icon | object | 图标 | |
| jump_url | string | 跳转 URL | |
| rid | string | 关联 id | |
| title | string | 标题 | |
| title_prefix | string | 标题前缀 | |
| type | number | 类型 | |
| up_mid | number | UP 主 mid (UID) | |
| upower_action_state | number | 充电操作状态? | |
| upower_level | number | 充电级别? | |
`data.items[].modules.module_dynamic.major.upower_common.background` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| dark_src | string | 深色背景 | |
| light_src | string | 浅色背景 | |
`data.items[].modules.module_dynamic.major.upower_common.button` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| jump_style | object | 跳转样式 | |
| jump_url | string | 跳转 URL | |
| type | number | 类型 | |
`data.items[].modules.module_dynamic.major.upower_common.button.jump_style` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| text | string | 文本 | |
`data.items[].modules.module_dynamic.major.upower_common.icon` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| dark_src | string | 深色图标 URL | |
| light_src | string | 浅色图标 URL | |
<!-- Generated by json-apidoc-gen @ 2025-07-20T07:08:06.175919645Z -->
`data.items[n].modules.module_dynamic.major.ugc_season`:
@@ -551,9 +461,9 @@
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| bg_color | str | `空串` | |
| color | str | `空串` | |
| text | str | `空串` | |
| bg_color | str | 背景色 | |
| color | str | 前景色 | |
| text | str | 文本 | |
`data.items[n].modules.module_dynamic.major.pgc`:
@@ -659,76 +569,6 @@
| --- | --- | --- | --- |
| tips | str | 动态失效显示文案 | deprecated? |
`data.items[n].modules.module_dynamic.topic`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| id | num | 话题id | |
| jump_url | str | 跳转URL | |
| name | str | 话题名称 | |
`data.items[n].modules.module_more`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| three_point_items | array | 右上角三点菜单 | |
`data.items[n].modules.module_more.three_point_items[o]`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| label | str | 显示文本 | |
| type | str | 类型 | 参见 [动态主体类型](dynamic_enum.md#动态主体类型) |
| modal | obj | 弹出框信息 | 删除动态时弹出 |
| params | obj | 参数 | 置顶/取消置顶时使用 |
`data.items[n].modules.module_more.three_point_items[o].modal`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| cancel | str | 取消按钮 | `我点错了` |
| confirm | str | 确认按钮 | `删除` |
| content | str | 提示内容 | `确定要删除此条动态吗?` |
| title | str | 标题 | `删除动态` |
`data.items[n].modules.module_more.three_point_items[o].params`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| dynamic_id | str | 当前动态ID | deprecated? |
| status | bool | 当前动态是否处于置顶状态 | deprecated? |
`data.items[n].modules.module_stat`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| comment | obj | 评论数据 | |
| forward | obj | 转发数据 | |
| like | obj | 点赞数据 | |
`data.items[n].modules.module_stat.comment`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| count | num | 评论数 | |
| forbidden | bool | `false` | |
| hidden | bool | 是否隐藏 | 直播类型动态会隐藏回复功能 |
`data.items[n].modules.module_stat.forward`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| count | num | 转发数 | |
| forbidden | bool | `false` | |
`data.items[n].modules.module_stat.like`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| count | num | 点赞数 | |
| forbidden | bool | `false` | |
| status | bool | 当前用户是否点赞 | |
`data.items[n].modules.module_interaction`:
| 字段 | 类型 | 内容 | 备注 |
@@ -746,28 +586,9 @@
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| rich_text_nodes | array | 富文本节点列表 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) |
| rich_text_nodes | array | 富文本节点列表 | [富文本节点类型](../opus/rich_text_nodes.md#富文本节点类型) |
| text | str | 评论内容 | |
`data.items[n].modules.module_interaction.items[o].desc.rich_text_nodes`数组中的:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| orig_text | str | 原始文本 | |
| rid | str | 关联ID | 用户UID |
| text | str | 替换后文本 | |
| type | str | 富文本节点类型 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) |
| emoji | obj | 表情信息 | |
`data.items[n].modules.module_interaction.items[o].desc.rich_text_nodes[n].emoji`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| icon_url | str | 表情图片URL | |
| size | num | 表情尺寸 | `1` `2` |
| text | str | 表情的文字代码 | |
| type | num | 表情类型 | `1` `2` `3` |
`data.items[n].modules.module_fold`:
| 字段 | 类型 | 内容 | 备注 |
@@ -7946,4 +7767,4 @@ curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all/update' \
}
```
</details>
</details>
+132
View File
@@ -0,0 +1,132 @@
# 首页公告栏
## 动态首页公告栏 (新版)
> https://api.bilibili.com/x/dynamic/feed/dyn/banner
*请求方法: GET*
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ---- | ------ | ---- |
| platform | number | 平台? | 不必要 | 默认为 `1`, 留空无 |
| position | string | 位置? | 不必要 | 默认为 `web动态`, 留空无 |
| web_location | string | `333.1365` | 不必要 | |
**JSON 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| code | number | 返回值 | 0: 成功 |
| data | object | 数据本体 | |
| message | string | 错误信息 | 成功时为 `0` |
| ttl | number | `1` | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| banners | object[] | 横幅们 | 套了个娃 |
`data.banners[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| banner_id | number | 横幅 id | 旧版接口无 |
| end_time | number | 结束时间 | UNIX 秒级时间戳 |
| img_url | string | 图片 URL | |
| link | string | 跳转链接 | |
| platform | number | 平台 | 与请求参数对应 |
| position | string | 位置 | 与请求参数对应 |
| start_time | number | 开始时间 | UNIX 秒级时间戳 |
| title | string | 标题 | |
| weight | number | 权重 | |
**示例:**
```shell
curl 'https://api.bilibili.com/x/dynamic/feed/dyn/banner?platform=1&position=web动态&web_location=333.1365'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"data": {
"banners": [
{
"banner_id": 20,
"end_time": 2056204800,
"img_url": "https://i0.hdslb.com/bfs/vc/9c699f2acbcad00197e92c401b835d2c6aba8a55.png",
"link": "https://www.bilibili.com/blackboard/activity-5zJxM3spoS.html",
"platform": 1,
"position": "web动态",
"start_time": 1582862523,
"title": "点击进入",
"weight": 1
}
]
},
"message": "0",
"ttl": 1
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-05-01T00:21:48.81113265Z -->
## 动态首页公告栏 (旧版)
> https://api.vc.bilibili.com/banner_svr/v1/banner_svr/show
*请求方法: GET*
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ---- | ------ | ---- |
| platform | number | 平台? | 不必要 | 默认为 `1` |
| position | string | 位置? | 不必要 | 默认为 `web动态` |
**JSON 回复:**
与 [动态首页公告栏 (新版)](#动态首页公告栏-新版) 相同, 除了少了个 `data.banners[].banner_id`
**示例:**
```shell
curl 'https://api.vc.bilibili.com/banner_svr/v1/banner_svr/show'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"banners": [
{
"img_url": "https://i0.hdslb.com/bfs/vc/9c699f2acbcad00197e92c401b835d2c6aba8a55.png",
"title": "点击进入",
"link": "https://www.bilibili.com/blackboard/activity-5zJxM3spoS.html",
"platform": 1,
"weight": 1,
"position": "web动态",
"start_time": 1582862523,
"end_time": 2056204800
}
]
}
}
```
</details>
+120 -8
View File
@@ -1,14 +1,16 @@
# 动态详细信息字段
# 动态卡片信息字段
不同动态内容卡片的具体信息。包含在***获取特定动态卡片信息,话题下特定动态信息***等API的Json回复中
不同动态内容卡片的具体信息。包含在 [获取特定动态卡片信息](get_dynamic_detail.md#获取特定动态卡片信息) 等 API 的 JSON 回复中
以card字段的形式出现,内容为一个可被解析为Json对象的字符串。
不同类型的动态内容拥有不同的字段。
注: 本处 `type` 一般不包含在 `card` 字符串代表的对象内
****
## 转发动态中(type=1
## 转发动态 (type=1)
需注意账号转发视频投稿,其他用户的动态以及分享收藏夹等均为转发类内容,并不属于type=4300的收藏类动态等。
@@ -104,7 +106,7 @@
</details>
## 图片动态中(type=2
## 图片动态 (type=2)
在type=2的图片动态中,解析出的对象包含以下内容:
@@ -168,7 +170,7 @@
</details>
## 文字动态中(type=4
## 文字动态 (type=4)
在type=4的文字动态中,解析出的对象包含以下内容:
@@ -203,7 +205,7 @@
</details>
## 视频投稿动态中(type=8
## 视频投稿动态 (type=8)
在type=8的视频投稿动态中,解析出的对象包含以下内容:
@@ -302,7 +304,11 @@
</details>
## 在专栏投稿动态中(type=64
## 小视频 (type=16)
## 戏剧? (type=32)
## 专栏投稿动态 (type=64)
在type=64的专栏投稿动态中,解析出的对象包含以下内容:
@@ -449,7 +455,7 @@
</details>
## 音频投稿动态中(type=256
## 音频投稿动态 (type=256)
在type=256的音频投稿动态中,解析出的对象包含以下内容:
@@ -490,3 +496,109 @@
```
</details>
## 番剧 (type=512)
## ??? (type=1000)
## ??? (type=1001)
## ??? (type=1024)
## H5 活动动态 (type=2048)
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| rid | number | 动态 id | |
| sketch | object | 动态卡片内容 | |
| user | object | 用户信息 | |
| vest | object | 动态正文内容 | |
`sketch` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| cover_url | string | 封面 URL | |
| desc_text | string | 描述文本 | |
| sketch_id | number | 卡片 id | 即动态 id |
| target_url | string | 目标 URL | |
| text | string | 文本? | 空? |
| title | string | 标题 | |
`user` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| face | string | 头像 URL | |
| uid | number | mid (UID) | |
| uname | string | 用户名 | |
`vest` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| content | string | 内容 | |
| uid | number | 用户 mid (UID) | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"rid": 1093384350151475200,
"sketch": {
"cover_url": "https://i0.hdslb.com/bfs/game/65e4fa4b3cf2d177148328e2ff76535500bc563c.png",
"desc_text": "分享了一条动态",
"sketch_id": 1093755435448533000,
"target_url": "https://space.bilibili.com/645769214",
"text": "",
"title": "你好,世界"
},
"user": {
"face": "https://i2.hdslb.com/bfs/face/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
"uid": 645769214,
"uname": "Session小胡"
},
"vest": {
"content": "[笑哭]",
"uid": 645769214
}
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-26T01:40:56.464495209Z -->
## 漫画分享 (type=2049)
## PGC 番剧 (type=4097)
## 电影 (type=4098)
## 电视剧 (type=4099)
## 国创动漫 (type=4100)
## 纪录片 (type=4101)
## 直播 (type=4200)
## 直播 (type=4201)
## 收藏夹 (type=4300)
## 付费课程 (type=4302)
## 付费课程 (type=4303)
## 直播 (type=4308)
## 合集 (type=4310)
## ??? (type=4311)
## ??? (type=268435455)
+1585 -2
View File
File diff suppressed because it is too large Load Diff
+40 -24
View File
@@ -29,27 +29,7 @@
## 富文本节点类型
| 类型 | 说明 | 示例 |
|---------------------------------|------|-----------------------------------------------------------------|
| RICH_TEXT_NODE_TYPE_NONE | | |
| RICH_TEXT_NODE_TYPE_TEXT | 文字节点 | [721295772787671059](https://t.bilibili.com/721295772787671059) |
| RICH_TEXT_NODE_TYPE_AT | @用户 | [721296515797090324](https://t.bilibili.com/721296515797090324) |
| RICH_TEXT_NODE_TYPE_LOTTERY | 互动抽奖 | [720907383182721040](https://t.bilibili.com/720907383182721040) |
| RICH_TEXT_NODE_TYPE_VOTE | 投票 | [721203899129659408](https://t.bilibili.com/721203899129659408) |
| RICH_TEXT_NODE_TYPE_TOPIC | 话题 | [721188862459641879](https://t.bilibili.com/721188862459641879) |
| RICH_TEXT_NODE_TYPE_GOODS | 商品链接 | [721282703208480790](https://t.bilibili.com/721282703208480790) |
| RICH_TEXT_NODE_TYPE_BV | 视频链接 | [716752002311258165](https://t.bilibili.com/716752002311258165) |
| RICH_TEXT_NODE_TYPE_AV | | |
| RICH_TEXT_NODE_TYPE_EMOJI | 表情 | [716751108968546393](https://t.bilibili.com/716751108968546393) |
| RICH_TEXT_NODE_TYPE_USER | | |
| RICH_TEXT_NODE_TYPE_CV | | |
| RICH_TEXT_NODE_TYPE_VC | | |
| RICH_TEXT_NODE_TYPE_WEB | 网页链接 | [716751027361022055](https://t.bilibili.com/716751027361022055) |
| RICH_TEXT_NODE_TYPE_TAOBAO | | |
| RICH_TEXT_NODE_TYPE_MAIL | 邮箱地址 | [721314095109767220](https://t.bilibili.com/721314095109767220) |
| RICH_TEXT_NODE_TYPE_OGV_SEASON | 剧集信息 | [721282046064853080](https://t.bilibili.com/721282046064853080) |
| RICH_TEXT_NODE_TYPE_OGV_EP | | |
| RICH_TEXT_NODE_TYPE_SEARCH_WORD | | |
参见 [图文富文本节点类型](../opus/rich_text_nodes.md#富文本节点类型)
## 作者类型
@@ -60,6 +40,8 @@
| AUTHOR_TYPE_PGC | 剧集更新 | |
| AUTHOR_TYPE_UGC_SEASON | 合集更新 | |
##
| 类型 | 说明 | 示例 |
|-----------------|-----|-----|
| EMOJI_TYPE_NONE | | |
@@ -76,10 +58,13 @@
| ADDITIONAL_TYPE_GOODS | 商品信息 | |
| ADDITIONAL_TYPE_VOTE | 投票 | [716365292050055176](https://t.bilibili.com/716365292050055176) |
| ADDITIONAL_TYPE_COMMON | 一般类型 | 游戏<br/>[716357878942793745](https://t.bilibili.com/716357878942793745) |
| ADDITIONAL_TYPE_MATCH | | |
| ADDITIONAL_TYPE_MATCH | 比赛信息? | |
| ADDITIONAL_TYPE_UP_RCMD | | |
| ADDITIONAL_TYPE_UGC | 视频跳转 | [716489253410832401](https://t.bilibili.com/716489253410832401) |
| ADDITIONAL_TYPE_RESERVE | | 直播预约<br/>[716524987542929443](https://t.bilibili.com/716524987542929443) |
| ADDITIONAL_TYPE_UPOWER_LOTTERY | 充电专属抽奖 | |
##
| 类型 | 说明 | 示例 |
|-------------------------------|-----|-----|
@@ -87,28 +72,38 @@
| ADDITIONAL_BUTTON_TYPE_JUMP | | |
| ADDITIONAL_BUTTON_TYPE_BUTTON | | |
##
| 类型 | 说明 | 示例 |
|----------------------------------|-----|-----|
| ADDITIONAL_BUTTON_STATUS_NONE | | |
| ADDITIONAL_BUTTON_STATUS_UNCHECK | | |
| ADDITIONAL_BUTTON_STATUS_CHECK | | |
##
| 类型 | 说明 | 示例 |
|-------------------------------|-----|-----|
| ADD_BUTTON_CLICK_TYPE_NONE | | |
| ADD_BUTTON_CLICK_TYPE_RESERVE | | |
##
| 类型 | 说明 | 示例 |
|-------------------------|-----|-----|
| DISABLE_STATE_HIGHLIGHT | | |
| DISABLE_STATE_GRAY | | |
##
| 类型 | 说明 | 示例 |
|----------------------------|-----|-----|
| ADD_BUTTON_BG_STYLE_FILL | | |
| ADD_BUTTON_BG_STYLE_STROKE | | |
| ADD_BUTTON_BG_STYLE_GRAY | | |
##
| 类型 | 说明 | 示例 |
|----------------------------------|-----|-----|
| HIGHLIGHT_TEXT_STYLE_TYPE_NONE | | |
@@ -135,6 +130,9 @@
| MAJOR_TYPE_LIVE_RCMD | 直播状态 | |
| MAJOR_TYPE_UGC_SEASON | 合计更新 | [716509100448415814](https://t.bilibili.com/716509100448415814) |
| MAJOR_TYPE_SUBSCRIPTION_NEW | | |
| MAJOR_TYPE_UPOWER_COMMON | 充电相关 | [1087983622038749191](https://t.bilibili.com/1087983622038749191) |
##
| 类型 | 说明 | 示例 |
|-----------------|-----|-----|
@@ -143,6 +141,8 @@
| MEDIA_TYPE_PGC | | |
| MEDIA_TYPE_LIVE | | |
##
| 类型 | 说明 | 示例 |
|--------------------------|-----|-----|
| PGC_SUB_TYPE_NONE | | |
@@ -152,6 +152,8 @@
| PGC_SUB_TYPE_DOMESTIC | | |
| PGC_SUB_TYPE_TV | | |
##
| 类型 | 说明 | 示例 |
|----------------------|-----|-----|
| DRAW_TAG_TYPE_NONE | | |
@@ -161,29 +163,39 @@
| DRAW_TAG_TYPE_TOPIC | | |
| DRAW_TAG_TYPE_LBS | | |
##
| 类型 | 说明 | 示例 |
|----------------------------------|-----|-----|
| MAJOR_COMMON_STYLE_TYPE_NONE | | |
| MAJOR_COMMON_STYLE_TYPE_SQUARE | | |
| MAJOR_COMMON_STYLE_TYPE_VERTICAL | | |
##
| 类型 | 说明 | 示例 |
|---------------------|-----|-----|
| RESERVE_TYPE_NONE | | |
| RESERVE_TYPE_RECALL | | |
##
| 类型 | 说明 | 示例 |
|--------------------------|-----|-----|
| LIVE_STATE_TYPE_NONE | | |
| LIVE_STATE_TYPE_LIVE | | |
| LIVE_STATE_TYPE_ROTATION | | |
##
| 类型 | 说明 | 示例 |
|----------------------------------|-----|-----|
| SUBSCRIPTION_NEW_STYLE_TYPE_NONE | | |
| SUBSCRIPTION_NEW_STYLE_TYPE_DRAW | | |
| SUBSCRIPTION_NEW_STYLE_TYPE_LIVE | | |
## 右上角三点菜单
| 类型 | 说明 | 示例 |
|------------------------------|---------|-----|
| THREE_POINT_DELETE | 删除 | |
@@ -197,6 +209,8 @@
| THREE_POINT_RCMD_RESOURCE | | |
| THREE_POINT_RCMD_FEEDBACK | | |
##
| 类型 | 说明 | 示例 |
|--------------------|-----|-----|
| FOLD_TYPE_NONE | | |
@@ -205,6 +219,8 @@
| FOLD_TYPE_UNITE | | |
| FOLD_TYPE_LIMIT | | |
##
| 类型 | 说明 | 示例 |
|------------------------------|-----|-----|
| DYN_STATUS_TYPE_NONE | | |
@@ -213,6 +229,8 @@
| DYN_STATUS_TYPE_SELF_VISIBLE | | |
| DYN_STATUS_TYPE_DELETED | | |
##
| 类型 | 说明 | 示例 |
|---------------|-----|-----|
| SCENE_DETAIL | | |
@@ -220,5 +238,3 @@
| SCENE_GENERAL | | |
| SCENE_SPACE | | |
| SCENE_TOPIC | | |
+104 -167
View File
@@ -1,8 +1,10 @@
# 获取特定动态卡片信息
# 特定动态卡片信息
## 获取特定动态卡片信息
> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail
*请求方式:GET*
*请求方法: GET*
**url参数:**
@@ -16,60 +18,26 @@
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0:成功 |
| data | obj | 信息本体 | |
| message | str | 错误信息 | 默认为空 |
| msg | num | 空 | |
| code | number | 返回值 | 0: 成功<br />4128001: 请求数据发生错误,请刷新或稍后重试 |
| data | object | 信息本体 | 失败时为 `null` |
| message | string | 错误信息 | 成功时为 `0` |
| ttl | number | `1` | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ----- | ---------- | ------------ |
| card | obj | 动态卡片内容 | 当动态不存在/删除时不返回此项 |
| result | num | 0 | 作用尚不明确(当动态不存在/删除时不返回此项) |
| \_gt\_ | num | 0 | 作用尚不明确 |
| card | object | 动态卡片内容 | 当动态不存在/删除时不返回此项 |
`data`中的`card`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------- | ---- |
| activity_infos | obj | 该条动态参与的活动 |当此条动态没有参与任何活动时不显示此项 |
| card | str | 动态详细信息 | 会跟随此动态类型不同发生一定的变化,评论数、点赞数等相关信息参考`desc`字段 |
| card | str | 动态详细信息 | 会跟随此动态类型不同发生一定的变化,评论数、点赞数等相关信息参考`desc`字段, 详细可见 [动态详细信息字段](card_info.md) |
| desc | obj | 动态相关信息 | 会跟随此动态类型不同发生一定的变化,详细信息(例如动态描述等)参考`card`字段 |
| display | obj | 动态部分的可操作项 | 会随着动态类型发生变化,主要用于显示动态 |
| extend_json | str | 动态扩展项 | 会随着动态类型发生变化 |
**此处的大部分字段的内容都会根据`desc`中的`type`值发生一定变化,具体的数值对照参考下表(仅作参考,部分内容的解释未知,同时有些内容仅为在部分页面出现,无法通过此API调出):**
| 值 | 含义 |
| ---- | ---- |
| 268435455 | 具体定义未知 |
| 1 | 转发 |
| 2 | 图片动态 |
| 4 | 文字动态 |
| 8 | 视频动态 |
| 16 | 小视频 |
| 32 | 具体定义未知(可能为戏剧) |
| 64 | 专栏 |
| 256 | 音频 |
| 512 | 番剧 |
| 1024 | 具体定义未知 |
| 2048 | H5活动动态 |
| 2049 | 漫画分享 |
| 4097 | PGC番剧 |
| 4098 | 电影 |
| 4099 | 电视剧 |
| 4100 | 国创动漫 |
| 4101 | 纪录片 |
| 4200 | 直播 |
| 4201 | 直播 |
| 4300 | 收藏夹 |
| 4302 | 付费课程 |
| 4303 | 付费课程 |
| 4308 | 直播 |
| 4310 | 合集 |
| 4311 | 具体定义未知 |
| 1e3 | 具体定义未知 |
| 1001 | 具体定义未知 |
**示例:**
@@ -81,137 +49,106 @@ curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_deta
```
<details>
<summary>查看响应示例</summary>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "",
"message": "",
"data": {
"card": {
"desc": {
"uid": 8047632,
"type": 8,
"rid": 204774719,
"acl": 0,
"view": 1182282,
"repost": 405,
"like": 31940,
"is_liked": 0,
"dynamic_id": 507420325550127049,
"timestamp": 1616981401,
"pre_dy_id": 0,
"orig_dy_id": 0,
"orig_type": 0,
"user_profile": {
"info": {
"uid": 8047632,
"uname": "哔哩哔哩弹幕网",
"face": "https://i0.hdslb.com/bfs/face/f2cb8d9854156e3f26d4c6751d6eeb9c30e21847.jpg"
},
"card": {
"official_verify": {
"type": 1,
"desc": "哔哩哔哩弹幕网官方账号 "
}
},
"vip": {
"vipType": 2,
"vipDueDate": 1924531200000,
"vipStatus": 1,
"themeType": 0,
"label": {
"path": "",
"text": "十年大会员",
"label_theme": "ten_annual_vip",
"text_color": "#FFFFFF",
"bg_style": 1,
"bg_color": "#FB7299",
"border_color": ""
},
"avatar_subscript": 1,
"nickname_color": "#FB7299",
"role": 7,
"avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png"
},
"pendant": {
"pid": 3860,
"name": "2021拜年纪",
"image": "https://i0.hdslb.com/bfs/garb/item/7f8aa8ef1eed8c2dce0796801ddc82552a4164f9.png",
"expire": 0,
"image_enhance": "https://i0.hdslb.com/bfs/garb/item/7f8aa8ef1eed8c2dce0796801ddc82552a4164f9.png",
"image_enhance_frame": ""
},
"rank": "10000",
"sign": "哔哩哔哩 干杯 - ( ゜- ゜)つロ",
"level_info": {
"current_level": 6
}
},
"uid_type": 1,
"stype": 0,
"r_type": 1,
"inner_id": 0,
"status": 1,
"dynamic_id_str": "507420325550127049",
"pre_dy_id_str": "0",
"orig_dy_id_str": "0",
"rid_str": "204774719",
"bvid": "BV1Dh411S7sS"
},
"card": "{\"aid\":204774719,\"attribute\":0,\"cid\":316514988,\"copyright\":1,\"ctime\":1616939233,\"desc\":\"2021年3月29日9:30(北京时间),B站在中国香港港交所成功挂牌二次上市。欢迎来到bilibili这座乐园,和超过2亿中国年轻人一起表达自我、拥抱世界。\",\"dimension\":{\"height\":1080,\"rotate\":0,\"width\":1920},\"duration\":290,\"dynamic\":\"\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/204774719\\/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/f2cb8d9854156e3f26d4c6751d6eeb9c30e21847.jpg\",\"mid\":8047632,\"name\":\"哔哩哔哩弹幕网\"},\"pic\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/archive\\/bcbcac6560268ef9cbe59fbf759ac28adf5e0432.jpg\",\"player_info\":null,\"pubdate\":1616981400,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":1,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"share_subtitle\":\"已观看24.0万次\",\"short_link\":\"https:\\/\\/b23.tv\\/BV1Dh411S7sS\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1Dh411S7sS\",\"stat\":{\"aid\":204774719,\"coin\":8661,\"danmaku\":744,\"dislike\":0,\"favorite\":6025,\"his_rank\":0,\"like\":31940,\"now_rank\":0,\"reply\":1619,\"share\":2134,\"view\":246956},\"state\":0,\"tid\":207,\"title\":\"欢迎来到2亿年轻人的乐园——bilibili 回香港上市啦!\",\"tname\":\"财经\",\"videos\":1}",
"extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\"},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}",
"display": {
"topic_info": {
"topic_details": [
{
"topic_id": 12895437,
"topic_name": "二次上市",
"is_activity": 0,
"topic_link": ""
},
{
"topic_id": 10967402,
"topic_name": "香港上市",
"is_activity": 1,
"topic_link": "https://www.bilibili.com/blackboard/dynamic/102930"
},
{
"topic_id": 114859,
"topic_name": "B站",
"is_activity": 0,
"topic_link": ""
},
{
"topic_id": 8312,
"topic_name": "宣传片",
"is_activity": 1,
"topic_link": "https://www.bilibili.com/blackboard/dynamic/8795"
},
{
"topic_id": 679,
"topic_name": "BILIBILI",
"is_activity": 0,
"topic_link": ""
}
]
},
"usr_action_txt": "投稿了视频",
"relation": {
"status": 1,
"is_follow": 0,
"is_followed": 0
},
"show_tip": {
"del_tip": "要删除动态吗?"
},
"cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png"
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"card": {
"desc": {
"uid": 8047632,
"type": 8,
"rid": 204774719,
"acl": 0,
"view": 0,
"repost": 0,
"comment": 0,
"like": 0,
"is_liked": 0,
"dynamic_id": 507420325550127040,
"timestamp": 1616981401,
"pre_dy_id": 0,
"orig_dy_id": 0,
"orig_type": 0,
"user_profile": {
"info": {
"uid": 8047632,
"uname": "哔哩哔哩弹幕网",
"face": "https://i0.hdslb.com/bfs/face/0c84b9f4ad546d3f20324809d45fc439a2a8ddab.jpg"
},
"card": {
"official_verify": {
"type": -1
}
},
"vip": {
"vipType": 2,
"vipDueDate": 1924963200000,
"dueRemark": "",
"accessStatus": 0,
"vipStatus": 1,
"vipStatusWarn": "",
"themeType": 0,
"label": {
"path": "http://i0.hdslb.com/bfs/vip/label_annual.png",
"text": "十年大会员",
"label_theme": "ten_annual_vip",
"text_color": "#FFFFFF",
"bg_style": 1,
"bg_color": "#FB7299",
"border_color": ""
},
"avatar_subscript": 1,
"nickname_color": "#FB7299",
"role": 7,
"avatar_subscript_url": ""
},
"pendant": {
"pid": 0,
"name": "",
"image": "",
"expire": 0,
"image_enhance": "",
"image_enhance_frame": ""
},
"rank": "10000",
"sign": "哔哩哔哩 干杯 ( ゜- ゜)つロ",
"level_info": {
"current_level": 6,
"current_min": 0,
"current_exp": 0,
"next_exp": ""
}
},
"result": 0,
"_gt_": 0
"spec_type": 0,
"uid_type": 1,
"stype": 0,
"r_type": 1,
"inner_id": 0,
"status": 1,
"dynamic_id_str": "507420325550127049",
"pre_dy_id_str": "0",
"orig_dy_id_str": "0",
"rid_str": "204774719",
"origin": null,
"bvid": "BV1Dh411S7sS",
"previous": null
},
"card": "{\"aid\":204774719,\"cid\":316514988,\"ctime\":1616981401,\"desc\":\"2021年3月29日9:30(北京时间),B站在中国香港港交所成功挂牌二次上市。欢迎来到bilibili这座乐园,和超过2亿中国年轻人一起表达自我、拥抱世界。\",\"dimension\":{\"height\":1080,\"rotate\":0,\"width\":1920},\"duration\":290,\"dynamic\":\"\",\"first_frame\":\"\",\"jump_url\":\"bilibili://video/204774719/?page=1\\u0026player_width=1920\\u0026player_height=1080\\u0026player_rotate=0\",\"owner\":{\"face\":\"https://i0.hdslb.com/bfs/face/0c84b9f4ad546d3f20324809d45fc439a2a8ddab.jpg\",\"mid\":8047632,\"name\":\"哔哩哔哩弹幕网\"},\"pic\":\"http://i0.hdslb.com/bfs/archive/bcbcac6560268ef9cbe59fbf759ac28adf5e0432.jpg\",\"pubdate\":1616981400,\"short_link_v2\":\"\",\"stat\":{\"aid\":204774719,\"coin\":9016,\"danmaku\":742,\"dislike\":0,\"favorite\":5463,\"like\":32802,\"reply\":1603,\"share\":2517,\"view\":278278},\"state\":0,\"tid\":207,\"title\":\"欢迎来到2亿年轻人的乐园——bilibili 回香港上市啦!\",\"tname\":\"财经商业\",\"videos\":1}",
"extend_json": "{\"from\":{\"from\":\"\",\"emoji_type\":1},\"ctrl\":null,\"lott\":null}",
"display": {
"origin": null,
"usr_action_txt": "投稿了视频",
"relation": null,
"live_info": null,
"emoji_info": null,
"highlight": null
}
}
}
}
```
+1 -1
View File
@@ -40,7 +40,7 @@
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------- | ---------------------------- |
| author | obj | UP主 | 参见[module_author对象](all.md#data对象---items数组中的对象---modules对象---module_author对象) |
| author | obj | UP主 | 参考 [MODULE_TYPE_AUTHOR](../opus/features.md#module-type-author) |
| cover | str | 封面URL | |
| id_str | str | 动态id | |
| pub_time | str | 发布时间 | 文字表述的相对时间 |
+204 -521
View File
@@ -4,112 +4,116 @@
> https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs
*请求方式:POST*
*请求方法: POST*
认证方式CookieSESSDATA
认证方式: Cookie (SESSDATA)
注意非日常类型像素宽高必须大于420
注意: 非日常类型像素宽高必须大于 420
**正文参数 (multipart/form-data)**
**正文参数 (multipart/form-data):**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
| file_up | file | 需要上传的图片文件 | 必要 | 格式仅支持jpg png gif |
| category | str | 图片类型 | 必要 | daily:日常(动态)<br />draw:绘画(画友<br />cos:摄影(COSPLAY |
| biz | str | | | |
| csrf | str | CSRF Token(位于cookie | 必要 | |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | --------------------- | ------ | ---- |
| file_up | file | 需要上传的图片文件 | 必要 | 格式仅支持 `jpg` `png` `gif` |
| category | string | 图片类型 | 必要 | daily: 日常 (动态) (默认)<br />draw: 绘画 (画友)<br />cos: 摄影 (COSPLAY) |
| biz | string | | 不必要 | `new_dyn` |
| csrf | string | CSRF Token (即 Cookie 中 bili_jct) | 必要 | |
**json回复**
**JSON 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功 <br />-1:未添加图片<br />-2:参数错误<br />-3:图片尺寸过小<br />-4:账号未登录<br />-7:图片信息错误 |
| message | str | 错误信息 | 默认为success |
| data | obj | 信息本体 | 仅在正确时既`code=0`时为有效信息 |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---- |
| code | number | 返回值 | 0: 成功<br />4100001: 参数错误<br />-101: 账号未登录 |
| message | string | 错误信息 | 默认为 `0` |
| data | object | 信息本体 | 成功时为有效信息 |
| ttl | number | `1` | |
`data`对象:
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | -------------- | ---- |
| image_url | str | 已上传图片url | |
| image_width | num | 已上传图片宽度 | 像素 |
| image_height | num | 已上传图片高度 | 像素 |
| image_url | string | 已上传图片 URL | |
| image_width | number | 已上传图片宽度 | 像素 |
| image_height | number | 已上传图片高度 | 像素 |
| img_size | number | 已上传图片大小 | k |
**示例**
**示例:**
上传了一张图片`test.png`类型为`日常`
上传图片 `test.png` 类型为 `日常`
```shell
curl 'https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs' \
-F 'file_up=@test.png' \
-F 'category=daily'
-F 'category=daily' \
-F 'csrf=xxxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例</summary>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"success",
"data":{
"image_url":"http:\/\/i0.hdslb.com\/bfs\/album\/13f9523efe186a8066b2d72e80283cea2437eb62.png",
"image_width":1225,
"image_height":850
}
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"image_url": "http://i0.hdslb.com/bfs/new_dyn/8ad5640045a114b62580614cb512bbc32095498218.png",
"image_width": 73,
"image_height": 71,
"img_size": 6.261
}
}
```
</details>
## 创建投票
> https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote
*请求方式:POST*
*请求方法: POST*
认证方式CookieSESSDATA
认证方式: Cookie (SESSDATA)
注意: options最少两个,下标n从0开始
注意: `options` 最少两个, 下标 `n``0` 开始
**正文参数 (multipart/form-data)**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------------------------- | ---- | ------------------------ | ------ | -------------------------------------------------------- |
| info[title] | str | 投票标题 | 必要 | |
| info[desc] | str | 投票描述 | 非必要 | 可为空 |
| info[type] | num | 投票类型 | 必要 | 0:文字投票 1:图片投票 |
| info[choice_cnt] | num | 最多选几项 | 必要 | |
| info[duration] | num | 投票持续秒数 | 必要 | 常用:<br/>三天:259200<br/>七天:604800<br/>三十天:2592000 |
| info[options]\[ n ][desc] | str | 第n项选项文字内容 | 必要 | |
| info[options]\[ n ][img_url] | str | 第n项选项投票图片 | 非必要 | |
| csrf | str | CSRF Token(位于cookie) | 非必要 | 头次见非必要的csrf |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------------------------- | ---- | ---- | ------ | ---- |
| info[title] | string | 投票标题 | 必要 | |
| info[desc] | string | 投票描述 | 非必要 | 可为空 |
| info[type] | number | 投票类型 | 必要 | 0: 文字投票<br />1: 图片投票 |
| info[choice_cnt] | number | 最多选几项 | 必要 | |
| info[duration] | number | 投票持续秒数 | 必要 | 常用:<br/>三天: 259200<br/>七天: 604800<br/>三十天: 2592000 |
| info[options]\[ n ][desc] | string | 第 n 项选项文字内容 | 必要 | |
| info[options]\[ n ][img_url] | strin | 第 n 项选项投票图片 | 非必要 ||
| csrf | string | CSRF Token (即 Cookie 中 bili_jct) | 非必要 | |
**json回复:**
**JSON 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | -------------------------------- |
| code | num | 返回值 | 0:成功 <br />5100001: 参数错误 |
| msg | str | 错误信息 | 成功为空 |
| message | str | 错误信息 | 跟上面那个一模一样 |
| data | obj | 信息本体 | 仅在正确时既`code=0`时为有效信息 |
| code | number | 返回值 | 0:成功 <br />5100001: 参数错误 |
| msg | string | 错误信息 | 成功为空 |
| message | string | 错误信息 | 跟上面那个一模一样 |
| data | object | 信息本体 | 仅在正确时既`code=0`时为有效信息 |
`data`对象:
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | -------------- | ---- |
| vote_id | num | 投票id | |
| \_gt\_ | num | 0 | |
| vote_id | number | 投票 id | |
| \_gt\_ | number | 0 | |
**示例**
**示例:**
创建一个标题为`是否自愿开学`持续七天的纯文本投票
创建一个标题为 `是否自愿开学` 持续七天的纯文本投票
```shell
curl -X POST 'https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote' \
@@ -124,17 +128,17 @@ curl -X POST 'https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote' \
```
<details>
<summary>查看响应示例</summary>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "",
"message": "",
"data": {
"vote_id": 4947171,
"_gt_": 0
}
"code": 0,
"msg": "",
"message": "",
"data": {
"vote_id": 4947171,
"_gt_": 0
}
}
```
@@ -144,83 +148,87 @@ curl -X POST 'https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote' \
> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create
*请求方式:POST*
*请求方法: POST*
认证方式Cookie (SESSDATA)
认证方式: Cookie (SESSDATA)
**正文参数multipart/form-data):**
**正文参数 (multipart/form-data):**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --- | --- | --- | --- | --- |
| dynamic_id | num | 0 | 必要 | |
| type | num | 4 | 必要 | |
| rid | num | 0 | 必要 | |
| content | str | 动态内容 | 必要 | |
| up_choose_comment | num | 0 | 非必要 | |
| up_close_comment | num | 0 | 非必要 | |
| dynamic_id | number | 0 | 必要 | |
| type | number | 4 | 必要 | |
| rid | number | 0 | 必要 | |
| content | string | 动态内容 | 必要 | |
| up_choose_comment | number | 0 | 非必要 | |
| up_close_comment | number | 0 | 非必要 | |
| extension | json | 位置信息 | 非必要 | |
| at_uids | str | 动态中 at 到的用户的 uid | 非必要 | 使用逗号`,`分隔 |
| at_uids | string | 动态中 at 到的用户的 uid | 非必要 | 使用逗号`,`分隔 |
| ctrl | array | 特殊格式控制 (如 at 别人时的蓝字体和链接) | 非必要 | |
| csrf_token | str | CSRF Token (位于 cookie) | 非必要 | |
| csrf | str | CSRF Token (位于 cookie) | 非必要 | |
| csrf_token | string | CSRF Token (即 Cookie 中 bili_jct) | 非必要 | |
| csrf | string | CSRF Token (即 Cookie 中 bili_jct) | 非必要 | |
extension参数值:
```json
`extension` 参数值:
```jsonc
{
"emoji_type": 1,
"lbs_cfg": {
"title": "**市",
"poi": "156330200",
"show_title": "**市",
"type": 1,
"address": "**市",
"location": {
"lng":,
"lat":
},
"distance": 0
"emoji_type": 1,
"lbs_cfg": {
"title": "**市",
"poi": "156330200",
"show_title": "**市",
"type": 1,
"address": "**市",
"location": {
"lng": //显示的经度数值,
"lat": //显示的纬度数值
},
"flag_cfg": {},
"from_cfg": {
"location": {
"lat":,
"lng":
}
"distance": 0
},
"flag_cfg": {},
"from_cfg": {
"location": {
"lat": //用户实际纬度数值,
"lng": //用户实际经度数值
}
}
}
```
ctrl单个对象(注意用的时候是数组出现):
| 参数名 | 类型 | 内容 |
| --- | --- | --- |
| location | num | 从全文第几个字开始变蓝 |
| type | num | 1 (可能1代表链接到用户uid) |
| length | num | 这一段变蓝多少字 |
| data | str | 链接目标(被at人的uid) |
`ctrl` 数组中的对象:
**json回复:**
| 参数名 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| location | number | 从全文第几个字开始变蓝 | |
| type | number | 1 | 可能 1 代表链接到用户 mid |
| length | number | 这一段变蓝多少字 | |
| data | string | 链接目标 | 被 at 人的 mid |
根对象:
**JSON 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| code | num | 返回值 | 0成功 |
| message | str | 错误信息 | 成功为空 |
| data | obj | 数据本体 | |
| code | number | 返回值 | 0: 成功 |
| message | string | 错误信息 | 成功为空 |
| data | object | 数据本体 | |
`data`对象:
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| result | num | 0 | |
| errmsg | str | 像是服务器日志一样的东西 | |
| dynamic_id | num | 动态 id | |
| create_result | num | 1 | |
| dynamic_id_str | str | 动态 id | 字符串格式 |
| \_gt_ | num | 0 | |
| result | number | 0 | |
| errmsg | string | 像是服务器日志一样的东西 | |
| dynamic_id | number | 动态 id | |
| create_result | number | 1 | |
| dynamic_id_str | string | 动态 id | 字符串格式 |
| \_gt_ | number | 0 | |
**示例:**
<details>
<summary>查看示例(纯文本)</summary>
<summary>纯文本:</summary>
```bash
curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create' \
@@ -252,13 +260,12 @@ curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create' \
"_gt_": 0
}
}
```
</details>
<details>
<summary>查看示例(at两个人)</summary>
<summary>at 两个人:</summary>
动态正文
```
@@ -297,454 +304,133 @@ curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create' \
</details>
## 发表复杂动态
> https://api.bilibili.com/x/dynamic/feed/create/dyn
*请求方POST*
*请求方POST*
认证方式:Cookie (SESSDATA)
**URL参数**
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------ | ---- |
| csrf | str | CSRF Token(位于cookie | 必要 | |
| csrf | string | CSRF Token (即 Cookie 中 bili_jct) | 必要 | |
**正文参数application/json):**
**正文参数 (application/json):**
根对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --- | --- | --- | --- | --- |
| dyn_req | obj | 请求本体 | 必要 | |
| dyn_req | object | 请求本体 | 必要 | |
`dyn_req`对象:
`dyn_req` 对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --- | --- | --- | --- | --- |
| attach_card | obj | 特殊卡片 | 非必要 | 如直播预约等 |
| content | obj | 动态内容 | 必要 | |
| meta | obj | 元信息 | 非必要 | 大概是来源信息 |
| scene | num | 动态类型? | 必要 | 纯文本: 1<br/>带图: 2 |
| pics | array | 携带图片 | 非必要 | 最多九个 |
| topic | obj | 话题 | 非必要 | |
| option | obj | 互动设置 | 非必要 | 没有此项时默认开启评论区 |
| upload_id | str | 客户端生成的 | 非必要 | 内容为`发送人mid`+`当前秒级时间戳`+`四位随机整数`,中间用`_`隔开 |
| attach_card | object | 特殊卡片 | 非必要 | 如直播预约等 |
| content | object | 动态内容 | 必要 | |
| meta | object | 元信息 | 非必要 | 大概是来源信息 |
| scene | number | 动态类型? | 必要 | 纯文本: 1 (实际同 2)<br/>带图: 2<br />4: 转发 |
| pics | object[] | 携带图片 | 非必要 | 最多九个 |
| topic | object | 话题 | 非必要 | |
| option | object | 互动设置 | 非必要 | 没有此项时默认开启评论区 |
| upload_id | string | 客户端生成的 | 非必要 | 内容为`发送人mid`+`当前秒级时间戳`+`四位随机整数`,中间用`_`隔开 |
`dyn_req`对象的`meta`对象,大概是来源信息,很简单就不详细列表了:
`dyn_req.meta` 对象:
大概是来源信息, 示例见下
```json
{
"app_meta": {
"from": "create.dynamic.web",
"mobi_app": "web"
}
"app_meta": {
"from": "create.dynamic.web",
"mobi_app": "web"
}
}
```
`dyn_req`对象的`content`对象:
`dyn_req.content` 对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ----- | -------------------- | ------ | ---- |
| contents | array | 动态组件对象有序数组 | 必要 | |
| contents | object[] | 动态组件对象有序数组 | 必要 | |
`contents`数组内每一个动态组件对象:
`dyn_req.content.contents[]` 对象:
```json
{
"raw_text": "ui上直接显示的字符串",
"type": id,
"biz_id": "动态组件的内容id转字符串,比如投票id"
}
```
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ---- | ------ | ---- |
| raw_text | string | 文本 | 必要 | |
| type | number | 组件类型 id | 不必要 | 参见 [富文本节点类型](../opus/rich_text_nodes.md) |
| biz_id | string | 动态组件的内容id转字符串 | 不必要 | 参见 [富文本节点类型](../opus/rich_text_nodes.md) |
动态组件类型:
| 组件名 | type | `biz_id`含义 |
| ------ | ---- | ------------ |
| 纯文本 | 1 | 空 |
| AT人 | 2 | AT人的mid |
| 表情 | 9 | 空 |
| 投票 | 4 | 投票id |
`dyn_req`对象的`topic`对象
`dyn_req.topic` 对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------- | ---- | ------- | ------ | -------------------------- |
| from_source | str | 来源id? | 必要 | 网页版直接选为dyn.web.list |
| from_topic_id | num | 0 | 必要 | |
| id | num | 话题id | 必要 | |
| name | str | 话题名 | 必要 | |
| from_source | string | 来源id? | 必要 | 网页版直接选为 `dyn.web.list` |
| from_topic_id | number | 0 | 必要 | |
| id | number | 话题id | 必要 | |
| name | string | 话题名 | 必要 | |
`dyn_req`对象的`pics`数组的每一项对象:
`dyn_req.pics[]` 对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ----- | ---------------- | ------ | ------------------------------------------------------------ |
| img_height | num | 图高 | 非必要 | 这个东西会直接原封不动传到前端,比如你都写0在网页上就看不见了,但是还会加载 |
| img_width | num | 图宽 | 非必要 | 同上 |
| img_height | number | 图高 | 非必要 | 这个东西会直接原封不动传到前端,比如你都写 0 在网页上就看不见了, 但是还会加载 |
| img_width | number | 图宽 | 非必要 | 同上 |
| img_size | float | 图片文件大小(KB) | 非必要 | |
| img_src | str | 图片bfs链接 | 必要 | |
| img_src | string | 图片 URL | 必要 | |
`dyn_req`对象的`option`对象:
`dyn_req.option` 对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ----------------- | ---- | ------------ | ------ | --------------- |
| up_choose_comment | num | 精选评论flag | 非必要 | 1: 开启 |
| close_comment | num | 关闭评论flag | 非必要 | 同上,上二选一 |
| up_choose_comment | number | 精选评论flag | 非必要 | 1: 开启 |
| close_comment | number | 关闭评论flag | 非必要 | 同上, 上二选一 |
`dyn_req`对象的`topic`对象:
`dyn_req.topic` 对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------- | ---- | ------------ | ------ | -------- |
| from_source | str | dyn.web.list | 非必要 | 作用不明 |
| from_topic_id | num | 0 | 非必要 | 作用不明 |
| id | num | 话题id | 必要 | |
| name | str | 话题名 | 非必要 | |
| from_source | string | `dyn.web.list` | 非必要 | 作用不明 |
| from_topic_id | number | 0 | 非必要 | 作用不明 |
| id | number | 话题id | 必要 | |
| name | string | 话题名 | 非必要 | |
**json回复**
**JSON 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />4126021你没有绑定手机,无法发布动态 |
| message | str | 错误信息 | 成功为空 |
| data | obj | 数据本体 | |
| code | number | 返回值 | 0: 成功<br />-101: 账号未登录<br />4126021: 你没有绑定手机,无法发布动态 |
| message | string | 错误信息 | 成功为空 |
| data | object | 数据本体 | |
`data`对象:
当Cookie中含有任意的`buvid3`时,比较干净简洁:
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| result | num | 0 | |
| message | str | 错误信息 | |
| dyn_id | num | 动态 id | |
| dyn_id_str | str | 动态 id | 字符串格式 |
| dyn_type | num | 动态类型 | 不带图片: 4<br/>带图片: 2<br/>其他请参考 get_dynamic_detail.md |
| \_gt_ | num | 0 | |
| result | number | 0 | |
| message | string | 错误信息 | |
| dyn_id | number | 动态 id | |
| dyn_id_str | string | 动态 id | 字符串格式 |
| dyn_type | number | 动态类型 | 1: 转发<br />2: 图文 |
| share_window | object | 分享提示 | 当 Cookie 不存在 `buvid3` 时存在 |
**警告:下面的内容又乱又杂,而且绝大多数情况用不到,我建议大家用这个接口的时候随便带一个buvid3的cookie屏蔽掉它们算了.**
`data.share_window` 对象:
当Cookie中不含有`buvid3`时,较上述字段多出一个`fake_card`对象,大概是移动端用的卡片:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| main_title | string | `分享后会获得更多曝光,快去分享吧` | |
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | ---- | ------------ |
| fake_card | obj | 0 | 又多又乱又杂 |
`fake_card`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ----- | ------------ | ------------------------------------------------------------ |
| card_type | num | 卡片类型 | 不带图片: 4<br/>带图片: 2<br/>其他请参考 [获取特定动态卡片信息](get_dynamic_detail.md) |
| modules | array | 卡片组件列表 | |
| extend | obj | 其他杂项信息 | |
`fake_card`对象的`modules`数组中每一项对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | -------- | -------------------------------------------- |
| module_type | num | 组件类型 | 1: 作者信息<br/>3: 动态内容<br/>其他有待发现 |
| ModuleItem | obj | 卡片组件 | |
`ModuleItem`对象与`module_type`对应关系:
| module_type | `ModuleItem`含有的唯一一个key | 备注 |
| ----------- | ----------------------------- | ----------------------- |
| 1 | module_author | 作者信息 |
| 3 | module_desc | 动态内容 |
| 4 | module_dynamic | 携带图片等 |
| 9 | module_stat | 不明,貌似一直都是空对象 |
`ModuleItem``module_author`:
| 字段 | 类型 | 内容 | 备注 |
| ---------------- | ---- | -------------------------------- | ------------------------------------------------ |
| mid | num | 发送者mid | |
| ptime_label_text | str | 发送时间(人类可读形式)肯定是刚刚 | |
| author | obj | 作者详细信息 | 请参考[用户基本信息](../user/info.md),不再赘述.. |
`ModuleItem``module_desc`:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ----- | -------------- | ---- |
| desc | array | 动态组件列表 | |
| text | str | 动态纯文本形式 | |
`module_desc``desc`数组:
| 项 | 类型 | 备注 |
| ---- | ---- | ------------------- |
| 0 | obj | 第0个动态组件 |
| n | obj | 第n+1个动态组件组件 |
| ... | obj | ... |
`desc`数组的每一项:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------------------------------------------ | ----------------------------- |
| text | str | 该组件对外显示的纯文本 | 对应请求时该组件的`raw_text` |
| type | num | 组件类型 | 对应请求时该组件的`type` |
| rid | str | 组件内容的id,例如@人的mid | 根据需要出现,比如纯文本就没有 |
| uri | str | b站自定义`bilibili://`协议链接,用于@人点击跳转等 | 根据需要出现,比如纯文本就没有 |
`ModuleItem``module_dynamic`:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | ------------------ | -------------------- |
| type | num | 不知道是什么的类型 | 5: 图片<br/>其他未知 |
| ModuleItem | obj | 组件? | 怎么还有套娃的? |
`module_dynamic``type`字段为`5`时:
`module_dynamic``ModuleItem`有唯一key`dyn_draw`:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ----- | -------------------------------- | ------------------------------------------------ |
| items | array | 图片数组 | 与请求部分`dyn_req.pics`一致 |
| id | num | 这条图片动态所对应的相簿`doc_id` | 可以参考本文档的[相簿基本信息](../album/info.md) |
`fake_card``extend`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------- | ----- | ---------------------------------------------- | ---------------------------------------- |
| dyn_id_str | str | 动态id字符串形式 | |
| business_id | str | 未知 | 根据情况出现 |
| orif_img_url | str | 封面图url(如果有) | |
| share_type | str | 一般为3 | 未知 |
| share_scene | str | 一般为dynamic | 未知 |
| is_fast_share | bool | 一般为true | 未知 |
| dyn_type | num | 动态类型 | 不带图片: 4<br/>带图片: 2<br/>其他待探索 |
| uid | num | 发送者mid | |
| card_url | str | b站自定义`bilibili://`协议链接,指向该条动态 | |
| desc | array | 动态组件列表,重复了一遍`module_desc`的desc数组 | |
| reply | obj | 评论区相关 | |
`extend``reply`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------ | ----- | ------------------------------------------------- | ---- |
| uri | str | b站自定义`bilibili://`协议链接,指向该条动态评论区 | |
| params | array | 未知 | |
**示例:**
<details>
<summary>查看示例(不带`buvid3`)</summary>
```bash
curl -X POST 'https://api.bilibili.com/x/dynamic/feed/create/dyn?csrf=xxxxx' \
-b 'buvid3=114514;SESSDATA=xxxxx;' \
--header 'Content-Type: application/json' \
--data-raw '{
"dyn_req": {
"content": {
"contents": [
{
"raw_text": "Test",
"type": 1,
"biz_id": ""
},
{
"raw_text": "礼堂丁真,鉴定为一眼丁真",
"type": 2,
"biz_id": "1463028352"
}
]
},
"pics": [
{
"img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png",
"img_width": 1368,
"img_height": 1500,
"img_size": 662.6005859375
},
{
"img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png",
"img_width": 1368,
"img_height": 1500,
"img_size": 662.6005859375
}
],
"option": {
"close_comment": 1
},
"scene": 2
}
}'
```
响应:
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"dyn_id": 755402937023332386,
"dyn_id_str": "755402937023332386",
"dyn_type": 2,
"dyn_rid": 221621929,
"fake_card": {
"card_type": 7,
"modules": [
{
"module_type": 1,
"ModuleItem": {
"module_author": {
"mid": 470310172,
"ptime_label_text": "刚刚",
"author": {
"mid": 470310172,
"name": "I_Min",
"face": "https://i1.hdslb.com/bfs/face/d36e9dc2d14b545a055980a2f3c1f2d5621646c6.png",
"official": {
"type": -1
},
"vip": {
"Type": 1,
"due_date": 1673366400000,
"label": {}
},
"uri": "bilibili://space/470310172?defaultTab=dynamic",
"pendant": {},
"nameplate": {
"nid": 3,
"name": "白银殿堂",
"image": "https://i1.hdslb.com/bfs/face/f6a31275029365ae5dc710006585ddcf1139bde1.png",
"image_small": "https://i0.hdslb.com/bfs/face/b09cdb4c119c467cf2d15db5263b4f539fa6e30b.png",
"level": "高级勋章",
"condition": "单个自制视频总播放数>=10万"
}
},
"decorate_card": {
"id": 984,
"card_url": "https://i0.hdslb.com/bfs/vip/e42569d2f91a17346cdb991c7c34d3bbc677d4ef.png",
"jump_url": "https://www.bilibili.com/h5/mall/equity-link/home?navhide=1&item_id=984&part=card&f_source=garb&from=post&isdiy=0",
"fan": {
"number_str": "000000"
}
},
"tp_list": [
{
"type": 3,
"Item": {
"share": {
"icon": "http://i0.hdslb.com/bfs/feed-admin/ee5902a63bbe4a0d78646d11036b062ea60573f6.png",
"title": "分享"
}
}
},
{
"type": 7,
"Item": {
"default": {
"icon": "http://i0.hdslb.com/bfs/feed-admin/9163a7b29964cb84cb5fc35e4f7b899151cf2afc.png",
"title": "删除"
}
}
}
]
}
}
},
{
"module_type": 3,
"ModuleItem": {
"module_desc": {
"desc": [
{
"text": "Test",
"type": 1
},
{
"text": "礼堂丁真,鉴定为一眼丁真",
"type": 2,
"uri": "bilibili://space/1463028352?defaultTab=dynamic",
"rid": "1463028352"
}
],
"text": "Test礼堂丁真,鉴定为一眼丁真"
}
}
},
{
"module_type": 4,
"ModuleItem": {
"module_dynamic": {
"type": 5,
"ModuleItem": {
"dyn_draw": {
"items": [
{
"src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png",
"width": 1368,
"height": 1500,
"size": 662.6006
},
{
"src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png",
"width": 1368,
"height": 1500,
"size": 662.6006
}
],
"id": 221621929
}
}
}
}
},
{
"module_type": 9,
"ModuleItem": {
"module_stat": {}
}
}
],
"extend": {
"dyn_id_str": "755402937023332386",
"business_id": "221621929",
"orig_img_url": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png",
"desc": [
{
"text": "Test",
"type": 1
},
{
"text": "礼堂丁真,鉴定为一眼丁真",
"type": 2,
"uri": "bilibili://space/1463028352?defaultTab=dynamic",
"rid": "1463028352"
}
],
"share_type": "3",
"share_scene": "dynamic",
"is_fast_share": true,
"dyn_type": 2,
"uid": 470310172,
"card_url": "bilibili://following/detail/755402937023332386?cardType=2&rid=221621929",
"reply": {
"uri": "bilibili://following/detail/755402937023332386?cardType=2&rid=221621929",
"params": [
{
"key": "comment_on",
"value": "1"
}
]
}
}
}
}
}
```
</details>
<details>
<summary>查看示例(带`buvid3`)</summary>
<summary>Cookie 带 `buvid3`:</summary>
动态正文
```
@@ -817,35 +503,33 @@ curl -X POST 'https://api.bilibili.com/x/dynamic/feed/create/dyn?csrf=xxxxx' \
}
```
</details>
## 立即发布定时动态
> https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/publish_now
*请求方式:POST*
*请求方法: POST*
认证方式CookieSESSDATA
认证方式: Cookie (SESSDATA)
**正文参数 (application/x-www-form-urlencoded)**
**正文参数 (application/x-www-form-urlencoded):**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ------------------------ | ------ | ---- |
| draft_id | file | 定时动态(草稿)id | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
| csrf | string | CSRF Token即 Cookie 中 bili_jct) | 必要 | |
**json回复**
**JSON 回复:**
根对象
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------ |
| code | num | 返回值 | 0成功 |
| data | obj | 信息本体 | 正常为空对象 |
| message | str | 错误消息 | 正常为"0" |
| ttl | num | 1 | 不明 |
| code | number | 返回值 | 0: 成功 |
| data | object | 信息本体 | 正常为空对象 |
| message | string | 错误消息 | 正常为 `0` |
| ttl | number | 1 | |
<details>
<summary>查看示例</summary>
@@ -861,12 +545,11 @@ curl -X POST 'https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/publish
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{}
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
+4433 -1105
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+5538 -4
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -106,7 +106,7 @@ curl 'https://passport.bilibili.com/web/generic/country/list'
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --- | --- | --- | --- | --- |
| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码(web端))获取 |
| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码-web端)获取 |
| tel | num | 手机号码 | 必要 | |
| login_session_id | str | 登录标识 | 必要 | uuid去掉'-'后得到
| recaptcha_token | str | 登录 API token | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 |
@@ -199,7 +199,7 @@ static buvid() : string {
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --- | --- | --- | --- | --- |
| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码(web端))获取 |
| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码-web端)获取 |
| tel | num | 手机号码 | 必要 | |
| source | str | 登录来源 | 必要 | `main_web`:独立登录页<br />`main_mini`:小窗登录 |
| token | str | 登录 API token | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 |
@@ -267,11 +267,11 @@ curl 'https://passport.bilibili.com/x/passport-login/web/sms/send' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --- | --- | --- | --- | --- |
| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码(web端))获取 |
| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码-web端)获取 |
| tel | num | 手机号码 | 必要 | |
| login_session_id | str | 登录标识 | 必要 | 必须与上述login_session_id保持一致
| code | num | 短信验证码 | 必要 | timeout 为 5min |
| captcha_key | str | 短信登录 token | 必要 | 从[上述API](#发送短信验证码(web端))请求成功后返回 |
| captcha_key | str | 短信登录 token | 必要 | 从[上述API](#发送短信验证码-web端)请求成功后返回 |
**json回复:**
@@ -372,11 +372,11 @@ X-Cache-Webcdn: BYPASS from jd-sxhz-dx-w-01
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --- | --- | --- | --- | --- |
| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码(web端))获取 |
| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码-web端)获取 |
| tel | num | 手机号码 | 必要 | |
| code | num | 短信验证码 | 必要 | timeout 为 5min |
| source | str | 登录来源 | 必要 | `main_web`:独立登录页<br />`main_mini`:小窗登录 |
| captcha_key | str | 短信登录 token | 必要 | 从[上述API](#发送短信验证码(web端))请求成功后返回 |
| captcha_key | str | 短信登录 token | 必要 | 从[上述API](#发送短信验证码-web端)请求成功后返回 |
| go_url | str | 跳转url | 非必要 | 默认为 https://www.bilibili.com |
| keep | bool | 是否记住登录 | 非必要 | `true`:记住登录<br />`false`:不记住登录 |
+54
View File
@@ -0,0 +1,54 @@
# 表达式渲染
## LaTeX
> https://api.bilibili.com/x/web-frontend/mathjax/tex
*请求方法: GET*
暂未发现对跨源使用 `<img>` 标签使用该接口的限制
<!-- #1302 -->
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ------ | ---- | ------ | ----- |
| formula | string | 公式 | 非必要 | LaTeX |
**SVG 回复:**
一个完整的 SVG (image/svg+xml) 文件, 可直接用于 HTML `<img>` 或 Markdown `![]()`
**示例:**
```markdown
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=\pi=3.14159265358979323846...)
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=E=mc^2)
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=\ce{Fe+%2B+CuSO4+=+Cu+%2B+FeSO4})
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=\ce{N2(g)+%2B+3H2(g)+<=>[\text{高温、高压、催化剂}]+2NH3(g)})
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=S=\frac{1}{3}Sh)
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=y+=+\frac{1}{\dfrac{1}{x}+%2B+1} )
```
<details>
<summary>查看渲染结果:</summary>
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=\pi=3.14159265358979323846...)
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=E=mc^2)
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=\ce{Fe+%2B+CuSO4+=+Cu+%2B+FeSO4})
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=\ce{N2(g)+%2B+3H2(g)+<=>[\text{高温、高压、催化剂}]+2NH3(g)})
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=S=\frac{1}{3}Sh)
![](https://api.bilibili.com/x/web-frontend/mathjax/tex?formula=y+=+\frac{1}{\dfrac{1}{x}+%2B+1} )
</details>
+2 -2
View File
@@ -1,6 +1,6 @@
# 图片格式化
已知 `*.hdslb.com` `archive.biliimg.com` 等域名作用等效, 对于请求头 `Referer` 要求留空或在 `.bilibili.com` 等 B 站域名下 <!--(所以 B 站图床 img 标签要加上 `referrerpolicy="no-referrer"`)-->
已知 `*.hdslb.com` `*.biliimg.com` 等域名作用等效, 对于请求头 `Referer` 要求留空或在 `.bilibili.com` 等 B 站域名下 <!--(所以 B 站图床 img 标签要加上 `referrerpolicy="no-referrer"`)-->
对于以上域名的 `/bfs/` 下的图片文件都可以使用以下可选格式化参数
@@ -65,7 +65,7 @@ https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@1q
当图片格式化输出格式为`avg_color`
> \*.hdslb.com/bfs/\*/\*.*@\*.avg_color
> /bfs/\*/\*.*@\*.avg_color
*请求方式:GET*
+2715
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+422
View File
@@ -0,0 +1,422 @@
# 富文本节点
补充: 已知动态与图文接口获取结果的富文本节点与发送时的 `type` 等有关
## 富文本节点类型
| 类型 | 说明 | type | biz_id | 示例 |
| ---- | ---- | ---- | ------ | ---- |
| RICH_TEXT_NODE_TYPE_NONE | | | | |
| RICH_TEXT_NODE_TYPE_TEXT | 文字节点 | 1 | 空 | [106514206257210983](https://t.bilibili.com/106514206257210983) |
| RICH_TEXT_NODE_TYPE_AT | @用户 | 2 | 用户 mid (UID) | [721296515797090324](https://t.bilibili.com/721296515797090324) |
| RICH_TEXT_NODE_TYPE_LOTTERY | 互动抽奖 | 3 | 抽奖 id | [720907383182721040](https://t.bilibili.com/720907383182721040) |
| RICH_TEXT_NODE_TYPE_VOTE | 投票 | 4 | 投票 id | [721203899129659408](https://t.bilibili.com/721203899129659408) |
| RICH_TEXT_NODE_TYPE_TOPIC | 话题 | | | [721188862459641879](https://t.bilibili.com/721188862459641879) |
| RICH_TEXT_NODE_TYPE_GOODS | 商品链接 | | | [721282703208480790](https://t.bilibili.com/721282703208480790) |
| RICH_TEXT_NODE_TYPE_BV | 视频链接 | | | [716752002311258165](https://t.bilibili.com/716752002311258165) |
| RICH_TEXT_NODE_TYPE_AV | | | | |
| RICH_TEXT_NODE_TYPE_EMOJI | 表情 | 9 | 空 | [1069394178937454662](https://t.bilibili.com/1069394178937454662) |
| RICH_TEXT_NODE_TYPE_CV | 专栏 | | | |
| RICH_TEXT_NODE_TYPE_VIEW_PICTURE | 查看图片 | | | [1069394178937454662](https://t.bilibili.com/1069394178937454662) |
| RICH_TEXT_NODE_TYPE_WEB | 网页链接 | | | [716751027361022055](https://t.bilibili.com/716751027361022055) |
| RICH_TEXT_NODE_TYPE_TAOBAO | | | | |
| RICH_TEXT_NODE_TYPE_MAIL | 邮箱地址 | | | ~~721314095109767220~~ |
| RICH_TEXT_NODE_TYPE_OGV_SEASON | 剧集信息 | | | ~~721282046064853080~~ |
| RICH_TEXT_NODE_TYPE_OGV_EP | | | | |
## 富文本节点对象
### RICH_TEXT_NODE_TYPE_TEXT
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| orig_text | string | 原始文本 | |
| text | string | 显示文本 | 一般与 `orig_text` 内容相同 |
| type | string | `RICH_TEXT_NODE_TYPE_TEXT` | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"orig_text": "【洛天依·共鸣宝石收藏家】设定也分享给大家~!",
"text": "【洛天依·共鸣宝石收藏家】设定也分享给大家~!",
"type": "RICH_TEXT_NODE_TYPE_TEXT"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-05-31T06:17:54.444957389Z -->
### RICH_TEXT_NODE_TYPE_AT
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| orig_text | string | 原始文本 | |
| rid | string | 用户 mid (UID) | |
| text | string | 显示文本 | 一般与 `orig_text` 内容相同 |
| type | string | `RICH_TEXT_NODE_TYPE_AT` | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"orig_text": "@wuziqian211 ",
"rid": "425503913",
"text": "@wuziqian211 ",
"type": "RICH_TEXT_NODE_TYPE_AT"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-05-31T06:30:26.964891633Z -->
### RICH_TEXT_NODE_TYPE_LOTTERY
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| orig_text | string | 原始文本 | 一般为 `互动抽奖` |
| rid | string | 抽奖 id | |
| text | string | 显示文本 | 一般为 `互动抽奖` |
| type | string | `RICH_TEXT_NODE_TYPE_LOTTERY` | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"orig_text": "互动抽奖",
"rid": "116067",
"text": "互动抽奖",
"type": "RICH_TEXT_NODE_TYPE_LOTTERY"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-05-31T06:36:33.119611702Z -->
### RICH_TEXT_NODE_TYPE_VOTE
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| orig_text | string | 原始文本 | |
| rid | string | 抽奖 id | |
| text | string | 显示文本 | 一般与 `orig_text` 一致 |
| type | string | `RICH_TEXT_NODE_TYPE_VOTE` | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"orig_text": "次の文の ★ に入る最もよいものを一つ選びなさい。",
"rid": "3925886",
"text": "次の文の ★ に入る最もよいものを一つ選びなさい。",
"type": "RICH_TEXT_NODE_TYPE_VOTE"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-06-21T09:22:09.663974022Z -->
### RICH_TEXT_NODE_TYPE_TOPIC
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| jump_url | string | 跳转 URL | 无协议头 |
| orig_text | string | 原始文本 | |
| text | string | 显示文本 | 一般与 `orig_text` 一致 |
| type | string | `RICH_TEXT_NODE_TYPE_TOPIC ` | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"jump_url": "//search.bilibili.com/all?keyword=ASOUL%E7%9A%84%E5%A5%87%E5%A6%99%E5%AE%87%E5%AE%99",
"orig_text": "#ASOUL的奇妙宇宙#",
"text": "#ASOUL的奇妙宇宙#",
"type": "RICH_TEXT_NODE_TYPE_TOPIC"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-06-21T10:15:12.713774343Z -->
### RICH_TEXT_NODE_TYPE_GOODS
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| goods | object | 商品信息 | |
| icon_name | string | 图标名称 | `shop` `taobao` |
| jump_url | string | 跳转 URL | |
| orig_text | string | 原始文本 | |
| rid | string | | |
| text | string | 显示文本 | 一般与 `orig_text` 一致 |
| type | string | `RICH_TEXT_NODE_TYPE_GOODS` | |
`goods` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| jump_url | string | 跳转 URL | 一般与根对象下的 `jump_url` 相同 |
| type | number | `1` | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"goods": {
"jump_url": "https://s.click.taobao.com/t?e=m%3D2%26s%3DhRVW5Ol4GrZw4vFB6t2Z2ueEDrYVVa64XoO8tOebS%2BdRAdhuF14FMcvdLjw%2BYA8F1aH1Hk3GeOgLhuv3v%2BUO0FVeaszYyErWfp5XqHpg%2Bfwn9kK7XrZu6WxZ8BPtnRZfqGXK58Jc1%2BhtJfOipEYQaSY0lFm97JITUXK%2FCnFktAT05J9EjZ4Cg6Q6sZp7gNLmb4%2BNtrBbTSxr7mxbAs%2BuXGY7X5f4YTwUTi8eJkfcZdQxNgzykgJnxNGRxz%2FytfH1UnsQ1Sg4FG%2Fgk553RHFro7zDM6tzzB%2FwUFU78FEla0%2F6liDBUuxx%2BfRWY0eqeyPKGJZJ34Yh7cK34L0nA6HzjPrdYgTMW7Qubh8ReVU%2F9k2Huec2Q%2B1T%2BJwkZZwMWMdb2FGsw09L73Dq%2F8VFknkEdmd1Il7G%2BufOO%2FbGmELtDp4hhQs2DjqgEA%3D%3D&union_lens=lensId:TAPI@1674460806@212ccf35_0bed_185dda43d7a_a840@01",
"type": 1
},
"icon_name": "taobao",
"jump_url": "https://s.click.taobao.com/t?e=m%3D2%26s%3DhRVW5Ol4GrZw4vFB6t2Z2ueEDrYVVa64XoO8tOebS%2BdRAdhuF14FMcvdLjw%2BYA8F1aH1Hk3GeOgLhuv3v%2BUO0FVeaszYyErWfp5XqHpg%2Bfwn9kK7XrZu6WxZ8BPtnRZfqGXK58Jc1%2BhtJfOipEYQaSY0lFm97JITUXK%2FCnFktAT05J9EjZ4Cg6Q6sZp7gNLmb4%2BNtrBbTSxr7mxbAs%2BuXGY7X5f4YTwUTi8eJkfcZdQxNgzykgJnxNGRxz%2FytfH1UnsQ1Sg4FG%2Fgk553RHFro7zDM6tzzB%2FwUFU78FEla0%2F6liDBUuxx%2BfRWY0eqeyPKGJZJ34Yh7cK34L0nA6HzjPrdYgTMW7Qubh8ReVU%2F9k2Huec2Q%2B1T%2BJwkZZwMWMdb2FGsw09L73Dq%2F8VFknkEdmd1Il7G%2BufOO%2FbGmELtDp4hhQs2DjqgEA%3D%3D&union_lens=lensId:TAPI@1674460806@212ccf35_0bed_185dda43d7a_a840@01",
"orig_text": "​啊脑袋周边抱枕",
"rid": "688066082845462528",
"text": "​啊脑袋周边抱枕",
"type": "RICH_TEXT_NODE_TYPE_GOODS"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-06-26T07:02:47.615135239Z -->
### RICH_TEXT_NODE_TYPE_BV
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| jump_url | string | 跳转 URL | |
| orig_text | string | 原始文本 | |
| rid | string | 视频 bvid | |
| text | string | 显示文本 | 视频标题 |
| type | string | `RICH_TEXT_NODE_TYPE_BV` | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"jump_url": "https://www.bilibili.com/video/BV1xx411c7mD/",
"orig_text": "https://www.bilibili.com/video/BV1xx411c7mD/",
"rid": "BV1xx411c7mD",
"text": "字幕君交流场所",
"type": "RICH_TEXT_NODE_TYPE_BV"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-06-26T08:32:48.72598344Z -->
### RICH_TEXT_NODE_TYPE_EMOJI
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| emoji | object | 表情信息 | |
| orig_text | string | 原始文本 | |
| text | string | 显示文本 | 一般与 `orig_text` 一致 |
| type | string | `RICH_TEXT_NODE_TYPE_EMOJI` | |
`emoji` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| icon_url | string | 表情图片 URL | |
| size | number | 表情尺寸 | 1: small<br />2: middle |
| text | string | 表情的文字代码 | 一般与根对象的 `text` 一致 |
| type | number | 表情类型 | `1` `2` `3` |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"emoji": {
"icon_url": "https://i0.hdslb.com/bfs/emote/5ce649d5f716566db41dbf68c2e319517516d321.png",
"size": 2,
"text": "[热词系列_干杯]",
"type": 1
},
"orig_text": "[热词系列_干杯]",
"text": "[热词系列_干杯]",
"type": "RICH_TEXT_NODE_TYPE_EMOJI"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-06-26T08:55:14.905420218Z -->
### RICH_TEXT_NODE_TYPE_CV
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| jump_url | string | 跳转 URL | 无协议名 |
| orig_text | string | 原始文本 | |
| rid | string | 专栏 CV 号 | |
| text | string | 显示文本 | |
| type | string | `RICH_TEXT_NODE_TYPE_CV` | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"jump_url": "//www.bilibili.com/read/cv1/",
"orig_text": "1",
"rid": "1",
"text": "未知的光",
"type": "RICH_TEXT_NODE_TYPE_CV"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-07T14:41:24.567461392Z -->
### RICH_TEXT_NODE_TYPE_VIEW_PICTURE
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| jump_url | string | | |
| orig_text | string | 原始文本 | |
| pics | object[] | 图片信息 | |
| rid | string | 本条动态 id | |
| text | string | 显示文本 | 一般与 `orig_text` 一致 |
| type | string | `RICH_TEXT_NODE_TYPE_VIEW_PICTURE ` | |
`pics[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| height | number | 高度 | |
| size | number | 大小? | 单位为 K |
| src | string | 图片 URL | |
| width | number | 宽度 | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"jump_url": "//www.bilibili.com/read/cv/",
"orig_text": "查看图片",
"pics": [
{
"height": 4000,
"size": 4218.501,
"src": "http://i0.hdslb.com/bfs/new_dyn/d13a5793f7101824e9c9181ebc4df1a936081646.png",
"width": 6411
}
],
"rid": "1069394178937454662",
"text": "查看图片",
"type": "RICH_TEXT_NODE_TYPE_VIEW_PICTURE"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-07T14:46:47.413456738Z -->
### RICH_TEXT_NODE_TYPE_WEB
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| jump_url | string | 跳转 URL | |
| orig_text | string | 原始文本 | |
| style | object \| null | 样式信息 | |
| text | string | 显示文本 | |
| type | string | `RICH_TEXT_NODE_TYPE_WEB` | |
`style` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| font_level | string | 字体等级 | `regular` |
| font_size | number | 字体大小 | `17` |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"jump_url": "https://api.bilibili.com/x/web-interface/nav",
"orig_text": "https://api.bilibili.com/x/web-interface/nav",
"style": {
"font_level": "regular",
"font_size": 17
},
"text": "网页链接",
"type": "RICH_TEXT_NODE_TYPE_WEB"
}
```
```json
{
"jump_url": "//www.bilibili.com/video/av1",
"orig_text": "//www.bilibili.com/video/av1",
"style": null,
"text": "av1",
"type": "RICH_TEXT_NODE_TYPE_WEB"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-07T14:55:11.26399889Z -->
### RICH_TEXT_NODE_TYPE_OGV_SEASON
参考 [RICH_TEXT_NODE_TYPE_BV](#rich-text-node-type-bv)
### RICH_TEXT_NODE_TYPE_OGV_EP
参考 [RICH_TEXT_NODE_TYPE_BV](#rich-text-node-type-bv)
### RICH_TEXT_NODE_TYPE_AV
参考 [RICH_TEXT_NODE_TYPE_BV](#rich-text-node-type-bv)
+356
View File
@@ -0,0 +1,356 @@
## 空间图文
## 获取用户空间图文
> https://api.bilibili.com/x/polymer/web-dynamic/v1/opus/feed/space
*请求方法: GET*
注: 该接口**只能**获取图文信息, 无法获取如转发动态一类的内容, 如需获取参见 [获取用户空间动态](docs/dynamic/space.md)
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ------ | ---- | ------ | ---- |
| host_mid | number | 被获取用户的 mid (UID) | 必要 | |
| page | number | 假装自己是分页信息 | 不必要 | 以 `1` 开始 |
| offset | number | 偏移信息 | 不必要 | 上一次返回的 `offset` (同时也是最后一条的 opus id), 默认为空 |
| type | string | 类型 | 不必要 | all: 全部 (默认)<br />article: 专栏<br />dynamic: 动态 |
| web_location | string | `333.1387` | 不必要 | |
| w_rid | string | WBI 签名 | 不必要 | 参见 [WBI 签名](../misc/sign/wbi.md) |
| wts | number | UNIX 秒级时间戳 | 不必要 | 参见 [WBI 签名](../misc/sign/wbi.md) |
**JSON 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| code | number | 返回值 | 0: 成功 |
| data | object | 数据本体 | |
| message | string | 错误信息 | 成功时为 `0` |
| ttl | number | `1` | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| has_more | boolean | 是否还有更多 | |
| items | object[] | 信息本体 | |
| offset | string | 偏移信息 | 下次翻页请求时传入的 `offest` (同时也是最后一条的 opus id) |
| update_num | number | 更新数? | 0 |
`data.items[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| content | string | 文本内容 | |
| cover | object? | 封面信息 | |
| jump_url | string | 跳转 URL | |
| opus_id | string | opus id | |
| stat | object | 统计信息 | |
`data.items[].cover` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| height | number | 高度 | |
| url | string | 图片 URL | |
| width | number | 宽度 | |
`data.items[].stat` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| like | string | 点赞数 | 是个字符串 |
| view | string | 浏览数 | 仅当获取登录状态下获取自己的时才存在, 也是个字符串 |
**示例:**
获取 `645769214` 空间的最近几条全部图文
```shell
curl 'https://api.bilibili.com/x/polymer/web-dynamic/v1/opus/feed/space' \
--url-query 'host_mid=645769214'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"data": {
"has_more": true,
"items": [
{
"content": "我在 Google I/O 2025 的 puzzle 取得了获胜的优异成绩, 你也来试试吧",
"cover": {
"height": 1640,
"url": "http://i0.hdslb.com/bfs/new_dyn/a48c47c07bf19f07c01b489eb6b42e63645769214.jpg",
"width": 720
},
"jump_url": "//www.bilibili.com/opus/1057955152016703512",
"opus_id": "1057955152016703512",
"stat": {
"like": "1"
}
},
{
"content": "通过 DevTools 绕过 SSR 抓包某站专栏正文接口",
"cover": {
"height": 430,
"url": "http://i0.hdslb.com/bfs/article/9071997152b6fec0ae465fe2a86b580e645769214.jpg",
"width": 768
},
"jump_url": "//www.bilibili.com/opus/1056353752004427792",
"opus_id": "1056353752004427792",
"stat": {
"like": "3"
}
},
{
"content": "今天也是看上 Minecraft 大电影 了, 看的人几乎没有, 虽然看的是中配, 总体上感觉剧情有趣甚至有点小感动, 音乐也感觉不错, 价格也实惠",
"cover": {
"height": 4080,
"url": "http://i0.hdslb.com/bfs/new_dyn/408d4e2b2ad8df6873c303cf26f571db645769214.jpg",
"width": 3060
},
"jump_url": "//www.bilibili.com/opus/1052711525276450824",
"opus_id": "1052711525276450824",
"stat": {
"like": "3"
}
},
{
"content": "糟了没注意, 自己成小丑了",
"cover": {
"height": 1640,
"url": "http://i0.hdslb.com/bfs/new_dyn/6ebb3894cfab53966d6e440e4f5a905d645769214.jpg",
"width": 720
},
"jump_url": "//www.bilibili.com/opus/1051313732437671938",
"opus_id": "1051313732437671938",
"stat": {
"like": "3"
}
},
{
"content": "好消息, 我免费了, 想玩的随时联系\nhttps://t.me/c/2148747379/77",
"cover": {
"height": 720,
"url": "http://i0.hdslb.com/bfs/new_dyn/fbc2b38406099df0bdaea47d08daa6f1645769214.jpg",
"width": 1640
},
"jump_url": "//www.bilibili.com/opus/1050579658107518984",
"opus_id": "1050579658107518984",
"stat": {
"like": "2"
}
},
{
"content": "认真的, 我的 Linux 发行版是 Android",
"cover": {
"height": 1080,
"url": "http://i0.hdslb.com/bfs/new_dyn/3e512d84361323c319f79061d2f078d1645769214.jpg",
"width": 1440
},
"jump_url": "//www.bilibili.com/opus/1032607998809210903",
"opus_id": "1032607998809210903",
"stat": {
"like": "8"
}
},
{
"content": "于学校机房启动 QEMU 珍贵影像",
"cover": {
"height": 1080,
"url": "http://i0.hdslb.com/bfs/new_dyn/2fdc7524449b029f8baf241d94663256645769214.jpg",
"width": 1440
},
"jump_url": "//www.bilibili.com/opus/993403941079220225",
"opus_id": "993403941079220225",
"stat": {
"like": "3"
}
},
{
"content": "BAC 正处于历史以来最困难的时期 - 中秋考古有感",
"cover": {
"height": 188,
"url": "https://i0.hdslb.com/bfs/article/0c9b5e20356e07f89a8bb7769fef8eeb645769214.jpg",
"width": 640
},
"jump_url": "//www.bilibili.com/opus/985444108243828741",
"opus_id": "985444108243828741",
"stat": {
"like": "7"
}
},
{
"content": "发送文件到手机的 N 种正确姿势",
"cover": {
"height": 420,
"url": "http://i0.hdslb.com/bfs/article/56a4024abebf7ed1166a1d247bb5cf64645769214.jpg",
"width": 750
},
"jump_url": "//www.bilibili.com/opus/971804623539011587",
"opus_id": "971804623539011587",
"stat": {
"like": "8"
}
},
{
"content": "我在朝鲜?",
"cover": {
"height": 468,
"url": "http://i0.hdslb.com/bfs/new_dyn/ea12cca6abd75fe3fb5ad1abd1f347d3645769214.png",
"width": 474
},
"jump_url": "//www.bilibili.com/opus/971255284349534210",
"opus_id": "971255284349534210",
"stat": {
"like": "5"
}
},
{
"content": "一周没上 B 站就 99+ 了?",
"cover": {
"height": 284,
"url": "http://i0.hdslb.com/bfs/new_dyn/9e3b889fd2dc75e9bae38a13e55fee26645769214.png",
"width": 165
},
"jump_url": "//www.bilibili.com/opus/970197833343827970",
"opus_id": "970197833343827970",
"stat": {
"like": "6"
}
},
{
"content": "今天因为Linux被骂, 决定放弃支持 Windows. 而且明天要开始军训了, 将停更若干时间, 遂发此动态, 望不知.",
"cover": {
"height": 1080,
"url": "http://i0.hdslb.com/bfs/new_dyn/0f6f939334104ddc347566514fa4bfa7645769214.jpg",
"width": 1440
},
"jump_url": "//www.bilibili.com/opus/967717348014293017",
"opus_id": "967717348014293017",
"stat": {
"like": "73"
}
},
{
"content": "我的萌ICP备案通过了!",
"cover": {
"height": 2712,
"url": "http://i0.hdslb.com/bfs/new_dyn/0a9bb3e82bbefe499b10b7fd02f2a4f4645769214.jpg",
"width": 1220
},
"jump_url": "//www.bilibili.com/opus/956241611959828547",
"opus_id": "956241611959828547",
"stat": {
"like": "1"
}
},
{
"content": "新年第一个AP",
"cover": {
"height": 1220,
"url": "https://album.biliimg.com/bfs/new_dyn/ea5a39d37a4a1f20f32b25bfed466004645769214.jpg",
"width": 2712
},
"jump_url": "//www.bilibili.com/opus/896448108088524805",
"opus_id": "896448108088524805",
"stat": {
"like": "1"
}
},
{
"content": "新年快乐?",
"cover": {
"height": 605,
"url": "https://album.biliimg.com/bfs/new_dyn/dab5d3e2ff03027215e5bfd4933abe45645769214.jpg",
"width": 1220
},
"jump_url": "//www.bilibili.com/opus/896342627995090966",
"opus_id": "896342627995090966",
"stat": {
"like": "1"
}
},
{
"content": "我回苏州了",
"cover": {
"height": 1280,
"url": "https://album.biliimg.com/bfs/new_dyn/65c880f64997fab0c79527649d7fbe1b645769214.png",
"width": 720
},
"jump_url": "//www.bilibili.com/opus/831507996405137432",
"opus_id": "831507996405137432",
"stat": {
"like": "1"
}
},
{
"content": "Phigros RKS 12 纪念",
"cover": {
"height": 720,
"url": "https://album.biliimg.com/bfs/new_dyn/dab03003aee2166987428857acbf4ffb645769214.png",
"width": 1280
},
"jump_url": "//www.bilibili.com/opus/830690195959447605",
"opus_id": "830690195959447605",
"stat": {
"like": "0"
}
},
{
"content": "现在知道B站推荐机制有多烂了吧",
"cover": {
"height": 1280,
"url": "https://album.biliimg.com/bfs/new_dyn/05a5f769bed2705d2c8c3c69f60441df645769214.png",
"width": 720
},
"jump_url": "//www.bilibili.com/opus/829284474633060387",
"opus_id": "829284474633060387",
"stat": {
"like": "0"
}
},
{
"content": "求证: B站创始人们的成分\n证: [图片]",
"cover": {
"height": 1600,
"url": "https://album.biliimg.com/bfs/new_dyn/830a9bbc3d5179a6d33af97e5baac7c8645769214.jpg",
"width": 720
},
"jump_url": "//www.bilibili.com/opus/828071498582327315",
"opus_id": "828071498582327315",
"stat": {
"like": "1"
}
},
{
"content": "如果排除掉可能的误差, 14=12.",
"cover": {
"height": 720,
"url": "https://album.biliimg.com/bfs/new_dyn/79823dd0b617af6fc71126d6e042de3f645769214.png",
"width": 1280
},
"jump_url": "//www.bilibili.com/opus/827727935543705620",
"opus_id": "827727935543705620",
"stat": {
"like": "1"
}
}
],
"offset": "827727935543705620",
"update_num": 0
},
"message": "0",
"ttl": 1
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-05-01T00:59:41.402217612Z -->
+85
View File
@@ -0,0 +1,85 @@
# 批量查询
## 用户名查 mid
### 动态
> https://api.bilibili.com/x/polymer/web-dynamic/v1/name-to-uid
*请求方法: GET*
认证方式: Cookie (SESSDATA)
<!-- from #1300 -->
**URL 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ------ | ------ | ------ | ---- |
| names | string | 用户名 | 必要 | 多个用户名以 `,` 分隔 |
**JSON 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| code | number | 返回值 | 0: 成功<br />-101: 账号未登录<br />-400: 请求错误 |
| data | object | 数据本体 | |
| message | string | 错误信息 | 成功时为 `0` |
| ttl | number | `1` | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| uid_list | object[] | UID 列表 | 套了个娃 |
`data.uid_list[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| name | string | 用户名 | |
| uid | string | mid (UID) | |
**示例:**
```shell
curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/name-to-uid' \
--url-query 'names=社会易姐qwq,session小胡,陈睿,洛天依' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"data": {
"uid_list": [
{
"name": "社会易姐QwQ",
"uid": "293793435"
},
{
"name": "陈睿",
"uid": "208259"
},
{
"name": "Session小胡",
"uid": "645769214"
},
{
"name": "洛天依",
"uid": "36081646"
}
]
},
"message": "0",
"ttl": 1
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-20T07:26:44.13468349Z -->
+5 -5
View File
@@ -36,8 +36,8 @@
| 字段名 | 类型 | 内容 | 备注 |
|---------------|------|-----------------------------------|-----|
| allow_message | bool | `true` | |
| input_text | str | `UP主加油!看好你噢` | |
| input_title | str | `感谢你对UP主的特别支持,“老粉”可期!私信留言鼓励下TA吧 ` | |
| input_text | str | `UP主加油!看好你噢~` | |
| input_title | str | `感谢你对UP主的特别支持,“老粉”可期!私信留言鼓励下TA吧~ ` | |
**示例:**
@@ -59,8 +59,8 @@ curl --location --request POST 'https://api.bilibili.com/x/v1/contract/add_contr
"ttl": 1,
"data": {
"allow_message": true,
"input_text": "UP主加油!看好你噢",
"input_title": "感谢你对UP主的特别支持,“老粉”可期!私信留言鼓励下TA吧 "
"input_text": "UP主加油!看好你噢~",
"input_title": "感谢你对UP主的特别支持,“老粉”可期!私信留言鼓励下TA吧~"
}
}
```
@@ -128,4 +128,4 @@ curl --location --request POST 'https://api.bilibili.com/x/v1/contract/add_messa
}
```
</details>
</details>