bilibili-API-collect/docs/opus/features.md
2025-07-16 11:32:59 +08:00

1296 lines
40 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 功能模块
部分动态相关接口请求存在 `features` 参数, 意为功能<br />
主要用于控制返回结果中的 `modules` 中的内容, 意为模块<br />
此两者在一定程度上为对应关系, 但也存在大量例外<br />
本页文档整理了大部分常见的已知功能与模块以供参考
## features
请求 URL 参数, 用 `,` 分隔
| 名称 | 含义 | 备注 | 示例 |
| ---- | ---- | ---- | ---- |
| htmlNewStyle | 是否显示专栏正文 | 对于纯动态类型接口无效 | 1056353752004427792 |
| itemOpusStyle | 是否以图文风格显示动态 | 部分动态强制需要, 对于图文类型接口无效 | 1060771233257226247, 1065507757569867779 |
| listOnlyfans | | | |
| opusBigCover | 是否在返回结果中区分大封面与九宫格 | 对于图文接口似乎无效, 前置条件 `itemOpusStyle` | 1052711525276450824 |
| onlyfansVote | 是否在投票信息中增加参与按钮等 | | 1060771233257226247 |
| onlyfansAssetsV2 | | | |
| forwardListHidden | | | |
| ugcDelete | | | |
| onlyfansQaCard | | | |
| commentsNewVersion | | | |
| decorationCard | 是否以卡片形式显示装扮 | | 566950981753221664 |
| editable | 是否在右上角三点菜单中显示 `编辑` | 必须是自己发送的动态才有效果 | 1065142062572109830 |
| opusPrivateVisible | | | |
| tribeeEdit | | | |
| avatarAutoTheme | | | |
| avatarTypeOpus | | | |
## modules
内容以 [获取图文详细信息](detail.md) 为基础
### MODULE_TYPE_TITLE
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| module_title | object | 标题模块 | |
| module_type | string | 模块类型 | `MODULE_TYPE_TITLE` |
`module_title` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| text | string | 标题内容 | |
<details>
<summary>查看示例:</summary>
```json
{
"module_title": {
"text": "欢迎加入粉丝交流群~"
},
"module_type": "MODULE_TYPE_TITLE"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-05-24T06:20:39.079282886Z -->
### MODULE_TYPE_AUTHOR
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| module_author | object | 作者模块 | |
| module_type | string | 模块类型 | `MODULE_TYPE_AUTHOR` |
`module_author` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| avater | object | 头像信息 | 主要用于网页渲染, 若感兴趣可参考 [图片格式化](../misc/picture.md) |
| decorate | object | 装扮 | 仅当动态接口且无 `decorationCard` 时存在 |
| decorate_card | object | 装扮 | 仅当图文接口时存在 |
| decoration_card | object | 装扮 | 仅当动态接口且有 `decorationCard` 时存在, 同 `decorate_card` |
| face | string | 头像 URL | |
| face_nft | boolean | 是否为 NFT 头像 | |
| following | boolean | 是否关注此 UP 主 | 自己的动态为 `null` |
| jump_url | string | 跳转链接 | |
| label | string | 名称前标签 | `合集`<br/>`电视剧`<br/>`番剧` |
| mid | number | UP 主 UID<br/>剧集 SeasonId | |
| more | object | 三点按钮中的项目 | 参见 [module_more](#module_more), 仅图文接口 |
| name | string | UP 主名称<br/>剧集名称<br/>合集名称 | |
| official | object | UP 主认证信息 | 仅图文接口 |
| official_verify | object | UP主认证信息 | 仅动态接口 |
| pendant | object | UP 主头像框 | |
| pub_action | string | 更新动作描述 | 仅动态接口<br />`投稿了视频`<br/>`直播了`<br/>`投稿了文章`<br/>`更新了合集`<br/>`与他人联合创作`<br/>`发布了动态视频`<br/>`投稿了直播回放` |
| pub_location_text | string | 空 | |
| pub_time | string | 更新时间 | `x分钟前`<br/>`x小时前`<br/>`昨天`<br />等 |
| pub_ts | number | 更新时间戳 | UNIX 秒级时间戳 |
| views_text | string | | |
| vip | object | UP 主大会员信息 | |
| type | string | 作者类型 | 仅动态接口, [作者类型](../dynamic/dynamic_enum.md#作者类型) |
| nft_info | object | NFT 头像信息 | 可能不存在 |
`module_author.avatar` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| container_size | object | | |
| fallback_layers | object | | |
| mid | string | | |
`module_author.avatar.container_size` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| height | number | | |
| width | number | | |
`module_author.avatar.fallback_layers` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| is_critical_group | boolean | | |
| layers | object[] | | |
`module_author.avatar.fallback_layers.layers[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| general_spec | object | | |
| layer_config | object | | |
| resource | object | | |
| visible | boolean | | |
`module_author.avatar.fallback_layers.layers[].general_spec` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| pos_spec | object | | |
| render_spec | object | | |
| size_spec | object | | |
`module_author.avatar.fallback_layers.layers[].general_spec.pos_spec` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| axis_x | number | | |
| axis_y | number | | |
| coordinate_pos | number | | |
`module_author.avatar.fallback_layers.layers[].general_spec.render_spec` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| opacity | number | | |
`module_author.avatar.fallback_layers.layers[].general_spec.size_spec` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| height | number | | |
| width | number | | |
`module_author.avatar.fallback_layers.layers[].layer_config` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| is_critical | boolean | | |
| tags | object | | |
`module_author.avatar.fallback_layers.layers[].layer_config.tags` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| AVATAR_LAYER | object | | |
| GENERAL_CFG | object | | |
`module_author.avatar.fallback_layers.layers[].layer_config.tags.AVATAR_LAYER` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
`module_author.avatar.fallback_layers.layers[].layer_config.tags.GENERAL_CFG` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| config_type | number | | |
| general_config | object | | |
`module_author.avatar.fallback_layers.layers[].layer_config.tags.GENERAL_CFG.general_config` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| web_css_style | object | | |
`module_author.avatar.fallback_layers.layers[].layer_config.tags.GENERAL_CFG.general_config.web_css_style` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| borderRadius | string | | |
`module_author.avatar.fallback_layers.layers[].resource` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| res_image | object | | |
| res_type | number | | |
`module_author.avatar.fallback_layers.layers[].resource.res_image` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| image_src | object | | |
`module_author.avatar.fallback_layers.layers[].resource.res_image.image_src` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| placeholder | number | | |
| remote | object | | |
| src_type | number | | |
`module_author.avatar.fallback_layers.layers[].resource.res_image.image_src.remote` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| bfs_style | string | | |
| url | string | | |
`module_author.decorate` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| card_url | string | 动态卡片小图标图片URL | |
| fan | object | 粉丝装扮信息 | |
| id | number | 装扮 ID | |
| jump_url | string | 跳转 URL | |
| name | string | 装扮名称 | |
| type | number | `1` `2` `3` | |
`module_author.decorate.fan` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| color | string | 编号颜色 | |
| color_format | object | 颜色格式 | |
| is_fan | boolean | 是否是粉丝装扮 | |
| num_str | string | 装扮编号前缀 | 如 `NO.` |
| number | number | 装扮编号 | |
<!-- Generated by json-apidoc-gen @ 2025-05-10T04:02:29.755564325Z -->
`module_author.decorate.fan.color_format` 对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| colors | string[] | 颜色 | 带 `#` 前缀的 16 进制颜色代码 |
| end_point | string| 端点 | `0,100` |
| gradients | number[] | 渐变 | 内容 [0, 100] |
| start_point | string | 起点 | `0,0` |
`module_author.decorate_card` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| big_card_url | string | 大装扮卡片 URL | |
| card_type | number | 装扮卡片类型 | |
| card_type_name | string | 装扮卡片类型名称 | |
| card_url | string | 装扮卡片 URL | |
| fan | object | 粉丝装扮信息 | 同 `module_author.decorate.fan` |
| id | number | 装扮 ID | |
| image_enhance | string | 同 `card_url`? | |
| item_id | number | 项目 ID? | |
| item_type | number? | 项目类型? | 图文接口当 `decorationCard` 时才有此项 |
| jump_url | string | 跳转 URL | |
| name | string | 装扮名称 | |
<!-- Generated by json-apidoc-gen @ 2025-05-10T04:28:40.067509455Z -->
`module_author.official` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| desc | string | 认证说明 | |
| role | number | | |
| title | string | | |
| type | number | 认证类型 | |
`module_author.pendant` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| expire | number | 过期时间 | 此接口返回恒为`0` |
| image | string | 头像框图片 URL | |
| image_enhance | string | 头像框图片 URL | |
| image_enhance_frame | string | 头像框图片逐帧序列 URL | |
| n_pid | number | 同 `pid` | |
| name | string | 头像框名称 | |
| pid | number | 头像框id | |
`module_author.vip` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| avatar_icon | object | | 仅图文接口 |
| avatar_subscript | number | 是否显示角标 | 0不显示<br/>1显示 |
| avatar_subscript_url | string | 空 | |
| due_date | number | 大会员过期时间戳 | UNIX 毫秒时间戳 |
| label | object | 大会员标签 | |
| nickname_color | string | 名字显示颜色 | 大会员:`#FB7299` |
| role | number | | 仅图文接口 |
| status | number | 大会员状态 | 0<br />1<br/>2封禁? |
| theme_type | number | 主题类型? | 仅图文接口 |
| tv_due_date | number | TV 端过期时间? | 仅图文接口 |
| tv_vip_pay_type | number | TV 端付费状态? | 仅图文接口|
| tv_vip_status | number | TV 端会员状态? | |
| type | number | 大会员类型? | |
| vip_pay_type | number | 大会员付费类型? |
`module_author.vip.avatar_icon` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| icon_resource | object | | |
`module_author.vip.avatar_icon.icon_resource` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
`module_author.vip.label` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| bg_color | string | 会员标签背景颜色 | `#FB7299` |
| bg_style | number | `0` `1` | |
| border_color | string | 空 | |
| img_label_uri_hans | string | 大会员牌子图片 | 动态版 简体版 |
| img_label_uri_hans_static | string | 大会员牌子图片 | 静态版 简体版 |
| img_label_uri_hant | string | 大会员牌子图片 | 动态版 繁体版 |
| img_label_uri_hant_static | string | 大会员牌子图片 | 静态版 繁体版 |
| label_theme | string | 会员标签 | vip大会员<br />annual_vip年度大会员<br />ten_annual_vip十年大会员<br />hundred_annual_vip百年大会员<br/>fools_day_hundred_annual_vip最强绿鲤鱼 |
| path | string | 空 | |
| text | string | 会员类型文案 | `大会员` `年度大会员` `十年大会员` `百年大会员` `最强绿鲤鱼` |
| text_color | string | 用户名文字颜色 | |
| use_img_label | boolean | `true` | |
`module_author.nft_info`:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| region_icon | string | 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 | number | NFT头像角标类型 | 1,2 |
| show_status | number | `1` | |
<details>
<summary>查看示例:</summary>
```json
{
"module_author": {
"avatar": {
"container_size": {
"height": 1.35,
"width": 1.35
},
"fallback_layers": {
"is_critical_group": true,
"layers": [
{
"general_spec": {
"pos_spec": {
"axis_x": 0.675,
"axis_y": 0.675,
"coordinate_pos": 2
},
"render_spec": {
"opacity": 1
},
"size_spec": {
"height": 1,
"width": 1
}
},
"layer_config": {
"is_critical": true,
"tags": {
"AVATAR_LAYER": {},
"GENERAL_CFG": {
"config_type": 1,
"general_config": {
"web_css_style": {
"borderRadius": "50%"
}
}
}
}
},
"resource": {
"res_image": {
"image_src": {
"placeholder": 6,
"remote": {
"bfs_style": "widget-layer-avatar",
"url": "https://i2.hdslb.com/bfs/face/77906db03b1eefac02613de184afad03f7bc58d7.jpg"
},
"src_type": 1
}
},
"res_type": 3
},
"visible": true
}
]
},
"mid": "645769214"
},
"decorate_card": {
"big_card_url": "https://i0.hdslb.com/bfs/vip/e2ffa1d1d491fe0464338ed3921327ef5e4b42c5.png",
"card_type": 2,
"card_type_name": "免费",
"card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png",
"fan": {},
"id": 28,
"image_enhance": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png",
"item_id": 28,
"item_type": 1,
"jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28&isdiy=0&part=card&from=post&f_source=garb&vmid=645769214&native.theme=1&navhide=1",
"name": "2233娘"
},
"face": "https://i2.hdslb.com/bfs/face/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
"face_nft": false,
"following": true,
"jump_url": "//space.bilibili.com/645769214",
"label": "",
"mid": 645769214,
"more": {
"three_point_items": [
{
"label": "举报",
"type": "THREE_POINT_REPORT"
}
]
},
"name": "Session小胡",
"official": {
"desc": "",
"role": 0,
"title": "",
"type": -1
},
"pendant": {
"expire": 0,
"image": "",
"image_enhance": "",
"image_enhance_frame": "",
"n_pid": 0,
"name": "",
"pid": 0
},
"pub_location_text": "",
"pub_time": "2025年04月06日 20:18",
"pub_ts": 1743941902,
"views_text": "",
"vip": {
"avatar_icon": {
"icon_resource": {}
},
"avatar_subscript": 0,
"avatar_subscript_url": "",
"due_date": 1665158400000,
"label": {
"bg_color": "",
"bg_style": 0,
"border_color": "",
"img_label_uri_hans": "",
"img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
"img_label_uri_hant": "",
"img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
"label_theme": "",
"path": "",
"text": "",
"text_color": "",
"use_img_label": true
},
"nickname_color": "",
"role": 0,
"status": 0,
"theme_type": 0,
"tv_due_date": 0,
"tv_vip_pay_type": 0,
"tv_vip_status": 0,
"type": 1,
"vip_pay_type": 0
}
},
"module_type": "MODULE_TYPE_AUTHOR"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-05-10T03:57:58.052575522Z -->
### module_more
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| module_more | object | 三点更多模块 | |
`module_more` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| three_point_items | object[] | 右上角三点菜单 | 套了个娃 |
`module_more.three_point_items[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| label | string | 显示文本 | |
| modal | object? | 弹出框文本 | |
| params | object? | 参数信息 | |
| type | string | 三点操作类型 | 参见 [右上角三点菜单](../dynamic/dynamic_enum.md#右上角三点菜单) |
`module_more.three_point_items[].modal` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| cancel | string | 取消文本 | |
| confirm | string | 确认文本 | |
| content | string | 内容文本 | |
| title | string | 标题文本 | |
`module_more.three_point_items[].params` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| dyn_id_str | string | 动态 id 字符串 | |
| dyn_type | number | 动态类型 | |
| rid_str | string | 动态 id 字符串 | |
<!-- Generated by json-apidoc-gen @ 2025-05-17T03:46:37.13552933Z -->
<details>
<summary>查看示例:</summary>
```json
{
"three_point_items": [
{
"label": "编辑",
"type": "THREE_POINT_EDIT"
},
{
"label": "可见范围",
"params": {
"dynamic_id": "1067779202512584729",
"status": 0,
"type": 1
},
"type": "THREE_POINT_PRIVATE"
},
{
"label": "删除",
"modal": {
"cancel": "取消",
"confirm": "确认删除",
"content": "动态删除后将无法恢复,请谨慎操作",
"title": "要删除动态吗?"
},
"params": {
"dyn_id_str": "1067779202512584729",
"dyn_type": 1,
"rid_str": "1067779202512584729"
},
"type": "THREE_POINT_DELETE"
}
]
}
```
</details>
### MODULE_TYPE_STAT
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| module_stat | object | 统计模块 | |
| module_type | string | 模块类型 | `MODULE_TYPE_STAT` |
`module_stat` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| coin | object | 硬币数据 | 仅图文接口 |
| comment | object | 评论数据 | |
| favorite | object | 收藏数据 | 仅图文接口 |
| forward | object | 转发数据 | |
| like | object | 点赞数据 | |
`module_stat` 中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| count | number | 数量 | |
| forbidden | boolean | 是否屏蔽 | |
| hidden | boolean | 是否隐藏 | |
| status | boolean | 当前状态 | 是否已进行该操作 |
<details>
<summary>查看示例:</summary>
```json
{
"module_stat": {
"coin": {
"count": 0,
"forbidden": false,
"hidden": true
},
"comment": {
"count": 42,
"forbidden": false
},
"favorite": {
"count": 0,
"forbidden": false,
"status": false
},
"forward": {
"count": 0,
"forbidden": false
},
"like": {
"count": 56,
"forbidden": false,
"status": true
}
},
"module_type": "MODULE_TYPE_STAT"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-05-17T12:14:24.470143481Z -->
### MODULE_TYPE_CONTENT
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| module_content | object | 内容模块 | |
| module_type | string | 模块类型 | `MODULE_TYPE_CONTENT` |
`module_content` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| paragraphs | object[] | 段落 | |
`module_content.paragraphs[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| align | number | 对齐方式 | 0: 左对齐 (默认)<br />1: 居中<br />2: 右对齐 |
| para_type | number | 段落类型 | 1: 文本<br />2: 图片<br />3: 分割线<br />4: 块引用<br />5: 列表<br />6: 链接卡片<br />7: 代码 |
| text | object | 文本 | `para_type=1``para_type=4` |
| pics | object | 图片 | `para_type=2` |
| line | object | 分割线 | `para_type=3` |
| list | object | 列表 | `para_type=5` |
| link_card | object | 链接卡片 | `para_type=6` |
| code | object | 代码 | `para_type=7` |
`module_content.paragraphs[].text` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| nodes | object[] | 文本节点 | |
`module_content.paragraphs[].text.nodes[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| type | string | 文本节点类型 | 纯文本: `TEXT_NODE_TYPE_WORD`<br />富文本: `TEXT_NODE_TYPE_RICH` |
| word | object | 纯文本 | 仅 `type='TEXT_NODE_TYPE_WORD'` |
| rich | object | 富文本 | 仅 `type='TEXT_NODE_TYPE_RICH'`, 详细参见 [富文本节点](rich_text_nodes.md) |
| formula | object | 公式 | 仅 `type='TEXT_NODE_TYPE_FORMULA' |
`module_content.paragraphs[].text.nodes[].word` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| font_size | number | 字体大小 | 用于控制文本所用标签名 (如 `h1` `h2` `p`) 及行高 |
| style | object | 补充样式 | |
| words | string | 文本内容 | |
`module_content.paragraphs[].text.nodes[].formula` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| latex_content | string | 公式内容 | LaTeX |
`module_content.paragraphs[].line` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| pic | object | 图片 | |
`module_content.paragraphs[].line.pic` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| height | number | 高度 | |
| url | string | 图片 URL | |
`module_content.paragraphs[].list` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| style | number | 样式 | 1: 有序列表<br />2: 无序列表 |
| items | object[] | 列表项 | |
`module_content.paragraphs[].list.items[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| level | number | 级别 | |
| nodes | object[] | 文本节点 | 同 `module_content.paragraphs[].text.nodes[]` 对象 |
| order | number | 序号 | |
`module_content.paragraphs[].pic` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| pics | object[] | 图片 | 套了个娃 |
| style | number | 样式 | 1: isAlbum |
`module_content.paragraphs[].pic.pics[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| height | number | 高度 | |
| live_url | unknown | 动图 URL? | |
| size | number \| null | 大小 | 单位: ki |
| url | string | 图片 URL | |
| width | number | 宽度 | |
`module_content.paragraphs[].link_card` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| card | object | 卡片内容 | |
`module_content.paragraphs[].link_card.card` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| oid | string | 关联 id | 可能为 `"undefined"` <!--这说明 B 站图文的后端用的是 Node--> |
| type | string | 卡片类型 | |
| common | object | 一般信息 | 仅 `type='LINK_CARD_TYPE_COMMON', 参见 [获取全部动态列表](../dynamic/all.md#获取全部动态列表) 的 `data.items[].modules.module_dynamic.additional.common` |
| goods | object | 商品信息 | 仅 `type='LINK_CARD_TYPE_GOODS'`, 参见 [获取全部动态列表](../dynamic/all.md#获取全部动态列表) 的 `data.items[].modules.module_dynamic.additional.goods` |
| match | object | 比赛信息? | 仅 `type='LINK_CARD_TYPE_MATCH'` |
| vote | object | 投票信息 | 仅 `type='LINK_CARD_TYPE_VOTE'`, 参见 [获取全部动态列表](../dynamic/all.md#获取全部动态列表) 的 `data.items[].modules.module_dynamic.additional.vote` |
| ugc | object | 视频信息 | 仅 `type='LINK_CARD_TYPE_UGC'`, 参见 [获取全部动态列表](../dynamic/all.md#获取全部动态列表) 的 `data.items[].modules.module_dynamic.additional.ugc` |
| reserve | object | 预约信息 | 仅 `type='LINK_CARD_TYPE_RESERVE'`, 参见 [获取全部动态列表](../dynamic/all.md#获取全部动态列表) 的 `data.items[].modules.module_dynamic.additional.reserve` |
| upower_lottery | object | 充电专属抽奖信息 | 仅 `type='LINK_CARD_TYPE_UPOWER_LOTTERY'` |
| opus | object | 图文信息 | 仅 `type='LINK_CARD_TYPE_OPUS'` |
| music | object | 音乐信息 | 仅 `type='LINK_CARD_TYPE_MUSIC'`, 参见 [获取全部动态列表](../dynamic/all.md#获取全部动态列表) 的 `data.items[].modules.module_dynamic.major.music` |
| live | object | 直播信息 | 仅 `type='LINK_CARD_TYPE_LIVE'`, 参见 [获取全部动态列表](../dynamic/all.md#获取全部动态列表) 的 `data.items[].modules.module_dynamic.major.live` |
| item_null | object | 提示信息 | 仅 `type='LINK_CARD_TYPE_ITEM_NULL'` |
`module_content.paragraphs[].link_card.card.match` 对象:
*注: 该对象结构由 AI 根据前端代码推断得出未经验证仅供参考*
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| id_str | string | 动态 ID | |
| jump_url | string | 跳转 URL | |
| match_info | object | 比赛信息 | 套了个娃 |
`module_content.paragraphs[].link_card.card.match.match_info` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| center_bottom | string | 中间区域底部的信息 | |
| center_top | string[] | 中间区域顶部的信息 | 会循环显示出来, 可能用来显示比分或者比赛时间 |
| left_team | object | 右边队伍的信息 | |
| right_team | object | 左边队伍的信息 | |
| status | number | 比赛状态 | 2: 进行中 (文字会高亮)<br />其他: 正常状态 |
| sub_title | string | 副标题 | |
| title | string | 标题 | |
`module_content.paragraphs[].link_card.card.match.match_info.left_team` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| name | string | 队伍名字 | |
| pic | string | 图片 | |
`module_content.paragraphs[].link_card.card.match.match_info.right_team` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| name | string | 队伍名字 | |
| pic | string | 图片 | |
<!-- Generated by json-apidoc-gen @ 2025-07-14T01:20:30.610774098Z -->
`module_content.paragraphs[].link_card.card.upower_lottery` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| button | object | 按钮 | |
| desc | object | 描述 | |
| hint | object | 提示 | |
| jump_url | string | 跳转 URL | |
| rid | number | 关联 id | |
| state | number | 状态 | |
| title | string | 标题 | |
| up_mid | number | UP 主 mid (UID) | |
| upower_action_state | number | 充电操作状态 | |
| upower_level | number | 充电级别 | |
`module_content.paragraphs[].link_card.card.upower_lottery.button` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| check | object | 选中状态 | |
| status | number | 状态 | |
| type | number | 类型 | 0 1 2 |
`module_content.paragraphs[].link_card.card.upower_lottery.button.check` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| disable | number | 是否禁用 | 1: 禁用 |
| icon_url | string | 图标 URL | |
| text | string | 文字 | |
| toast | string | 提示 | |
`module_content.paragraphs[].link_card.card.upower_lottery.desc` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| jump_url | string | 跳转 URL | |
| style | number | 样式 | |
| text | string | 文字 | |
`module_content.paragraphs[].link_card.card.upower_lottery.hint` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| style | number | 样式 | |
| text | string | 文字 | |
<!-- Generated by json-apidoc-gen @ 2025-07-15T00:15:30.710249212Z -->
`module_content.paragraphs[].link_card.card.opus` 对象:
*注: 该对象结构根据前端代码推断得出未经验证仅供参考*
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| author | object | 作者信息 | |
| cover | string | 封面 URL | |
| jump_url | string | 跳转 URL | |
| stat | object | 状态信息 | |
| title | string | 标题 | |
`module_content.paragraphs[].link_card.card.opus.author` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| name | string | 作者名 | |
`module_content.paragraphs[].link_card.card.opus.stat` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| view | number | 阅读数 | |
`module_content.paragraphs[].link_card.card.item_null` 对象:
注: 该对象结构根据前端代码推断得出未经验证仅供参考
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| text | string | 文字 | |
`module_content.paragraphs[].code` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| content | string | 内容 | |
| lang | string | 语言 | 如 `language-html` `language-bash` |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"module_content": {
"paragraphs": [
{
"link_card": {
"card": {
"opus": {
"author": {
"name": "作者的名字"
},
"cover": "https://example.com/path/to/cover.jpg",
"jump_url": "https://www.bilibili.com/read/cvxxxxxxxx",
"stat": {
"view": 12345
},
"title": "这里是作品的标题"
}
}
}
}
]
}
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-15T14:10:23.655883884Z -->
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"module_content": {
"paragraphs": [
{
"align": 0,
"para_type": 1,
"text": {
"nodes": [
{
"type": "TEXT_NODE_TYPE_WORD",
"word": {
"font_size": 17,
"style": {},
"words": "洛天依2025「无限共鸣·流光协奏」全息巡回演唱会·成都站\n部分演出歌曲歌单抢先看~"
}
},
{
"rich": {
"emoji": {
"gif_url": "https://i0.hdslb.com/bfs/garb/3ed01457a5a2c7c2ec304a1aa0565033f4b7fde4.gif",
"icon_url": "https://i0.hdslb.com/bfs/garb/d6a4aeb51134e1ddf0024a8c1fa48a91700207e2.png",
"size": 2,
"text": "[洛天依·天星问动态_萌]",
"type": 3,
"webp_url": "https://i0.hdslb.com/bfs/garb/1c017fee22994ff261b90c9790a2cfc553ef1845.webp"
},
"orig_text": "[洛天依·天星问动态_萌]",
"text": "[洛天依·天星问动态_萌]",
"type": "RICH_TEXT_NODE_TYPE_EMOJI"
},
"type": "TEXT_NODE_TYPE_RICH"
},
{
"type": "TEXT_NODE_TYPE_WORD",
"word": {
"font_size": 17,
"style": {},
"words": "\n《Dramatic》\n《蝴蝶》\n\n✨成都站城市限定演出歌曲\n《又见月光光》\n\n有没有你期待的歌曲呀"
}
},
{
"rich": {
"emoji": {
"gif_url": "https://i0.hdslb.com/bfs/emote/55bbe7e1c69fb5382764cd467a6ef43c97e8fb81.gif",
"icon_url": "https://i0.hdslb.com/bfs/emote/e55207be553ac505ac80892a3f325be383139aa2.png",
"size": 2,
"text": "[心律共鸣动态表情包_啾啾]",
"type": 3,
"webp_url": "https://i0.hdslb.com/bfs/emote/fc0c8ef4ba8271521d934b9b6ee1a7c60ab27e4c.webp"
},
"orig_text": "[心律共鸣动态表情包_啾啾]",
"text": "[心律共鸣动态表情包_啾啾]",
"type": "RICH_TEXT_NODE_TYPE_EMOJI"
},
"type": "TEXT_NODE_TYPE_RICH"
},
{
"type": "TEXT_NODE_TYPE_WORD",
"word": {
"font_size": 17,
"style": {},
"words": "\n天依已经迫不及待在演唱会的舞台上和大家相见啦"
}
}
]
}
},
{
"align": 0,
"para_type": 2,
"pic": {
"pics": [
{
"height": 5755,
"live_url": null,
"size": 4180.7216796875,
"url": "http://i0.hdslb.com/bfs/new_dyn/bda8c1b1e9c98e09994742a26c1f62c636081646.jpg",
"width": 1080
}
],
"style": 1
}
},
{
"link_card": {
"card": {
"goods": {
"head_icon": "",
"head_text": "UP主的推荐",
"items": [
{
"brief": "",
"cover": "https://i0.hdslb.com/bfs/openplatform/202506/aNnr4PFN1749449633226.jpeg",
"id": 102803,
"jump_desc": "去看看",
"jump_url": "https://mall.bilibili.com/neul-next/ticket/detail.html?noTitleBar=1&id=102803&track_id=__BGMT__&contentId=&from=&msource=cps_Mdynamic_36081646_cont-2-1077137468098084900",
"name": "成都·2025洛天依「无限共鸣•流光协奏」全息演唱会-成都站",
"price": "¥480"
}
],
"jump_url": ""
},
"oid": "undefined",
"type": "LINK_CARD_TYPE_GOODS"
}
},
"para_type": 6
}
]
},
"module_type": "MODULE_TYPE_CONTENT"
}
```
```json
{
"module_content": {
"paragraphs": [
{
"align": 0,
"para_type": 1,
"text": {
"nodes": [
{
"type": "TEXT_NODE_TYPE_WORD",
"word": {
"font_size": 17,
"style": {},
"words": "欢迎使用咱开发的 TG 机器人, 自由开源, 目前支持很多功能, 如 天气查询, IP 查询, 甚至可以执行 Shell 命令\nSINO Is Not Object! "
}
},
{
"type": "TEXT_NODE_TYPE_WORD",
"word": {
"font_size": 17,
"style": {},
"words": "https://t.me/SessX6cfBot"
}
}
]
}
}
]
},
"module_type": "MODULE_TYPE_CONTENT"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-08T01:49:39.052079251Z -->
### MODULE_TYPE_TOPIC
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| module_topic | object | 话题模块 | |
| module_type | string | 模块类型 | `MODULE_TYPE_TOPIC` |
`module_topic` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| id | number | 话题 id | |
| jump_url | string | 跳转 URL | |
| name | string | 话题名称 | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"module_topic": {
"id": 1310025,
"jump_url": "https://m.bilibili.com/topic-detail?topic_id=1310025&topic_name=%E6%B4%9B%E5%A4%A9%E4%BE%9D%E5%96%8A%E4%BD%A0%E6%9D%A5%E7%9C%8B%E5%85%A8%E6%81%AF%E5%B7%A1%E6%BC%94",
"name": "洛天依喊你来看全息巡演"
},
"module_type": "MODULE_TYPE_TOPIC"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-08T13:42:01.137702901Z -->
### MODULE_TYPE_COLLECTION
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| module_collection | object | 文集模块 | |
| module_type | string | 模块类型 | `MODULE_TYPE_COLLECTION` |
`module_collection` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| count | string | 文章数 | |
| id | number | 文集 id | |
| name | string | 文集名 | |
| title | string | 标题 | `收录于文集` |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"module_collection": {
"count": "4篇",
"id": 326286,
"name": "电脑",
"title": "收录于文集"
},
"module_type": "MODULE_TYPE_COLLECTION"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-12T03:42:36.411727032Z -->
### MODULE_TYPE_EXTEND
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| module_extend | object | 扩展模块 | |
| module_type | string | 模块类型 | `MODULE_TYPE_EXTEND` |
`module_extend` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| items | object[] | 项 | 套了个娃 |
`module_extend.items[]` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| icon | string \| null | 图标 | |
| icon_svg | unknown | SVG 图版 | |
| jump_url | string | 跳转 URL | |
| text | string | 文本 | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"module_extend": {
"items": [
{
"icon": null,
"jump_url": "//search.bilibili.com/all?keyword=HTML",
"text": "HTML"
},
{
"icon": null,
"jump_url": "//search.bilibili.com/all?keyword=API",
"text": "API"
},
{
"icon": null,
"jump_url": "//search.bilibili.com/all?keyword=BAC",
"text": "BAC"
},
{
"icon": null,
"jump_url": "//search.bilibili.com/all?keyword=JavaScript",
"text": "JavaScript"
},
{
"icon": null,
"jump_url": "//search.bilibili.com/all?keyword=Bilibili",
"text": "Bilibili"
},
{
"icon": null,
"jump_url": "//search.bilibili.com/all?keyword=GitHub",
"text": "GitHub"
},
{
"icon": null,
"jump_url": "//search.bilibili.com/all?keyword=Web",
"text": "Web"
},
{
"icon": null,
"jump_url": "//search.bilibili.com/all?keyword=Chromium",
"text": "Chromium"
},
{
"icon": null,
"jump_url": "//search.bilibili.com/all?keyword=DevTools",
"text": "DevTools"
}
]
},
"module_type": "MODULE_TYPE_EXTEND"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-12T04:08:00.156027648Z -->
### MODULE_TYPE_BOTTOM
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| module_bottom | object | 底部模块 | |
| module_type | string | 模块类型 | |
`module_bottom` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| share_info | object | 分享信息 | |
`module_bottom.share_info` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| pic | string | 图片 URL | |
| summary | string | 总结 | |
| title | string | 标题 | |
**示例:**
<details>
<summary>查看示例:</summary>
```json
{
"module_bottom": {
"share_info": {
"pic": "https://static.hdslb.com/mobile/img/app_logo.png",
"summary": "背景",
"title": "通过 DevTools 绕过 SSR 抓包某站专栏正文接口"
}
},
"module_type": "MODULE_TYPE_BOTTOM"
}
```
</details>
<!-- Generated by json-apidoc-gen @ 2025-07-12T04:20:27.874477884Z -->