🚀调整项目结构

This commit is contained in:
SocialSisterYi
2023-02-22 01:00:06 +08:00
parent b85e835ce7
commit 7d89ece2ac
201 changed files with 84964 additions and 0 deletions

109
docs/dynamic/action.md Normal file
View File

@@ -0,0 +1,109 @@
# 动态操作
- [删除动态](#删除动态)
- [删除定时发送动态](#删除草稿)
## 删除动态
> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic
*请求方式POST*
认证方式CookieSESSDATA
**正文参数multipart/form-data**
| 参数名 | 类型 | 内容 |
| ---------- | ---- | ------ |
| dynamic_id | num | 动态id |
| csrf_token | str | csrf |
**json回复**
根对象:
| 字段 | 类型 | 内容 |
| ------- | ---- | ----------------- |
| code | num | 0:成功 |
| | | 500404:已经删除过 |
| | | 500406:不是自己的 |
| msg | str | 错误信息 |
| message | str | 和msg一样 |
| data | obj | 未知 |
<details>
<summary>查看示例</summary>
```bash
curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic' \
-X POST \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0' \
-H 'Referer: https://t.bilibili.com/' \
-H 'Cookie: SESSDATA=********; bili_jct=de2731532b4ab96bc8536da948932668;' \
--data-raw 'dynamic_id=588320531406678918&csrf_token=de2731532b4ab96bc8536da948932668&csrf=de2731532b4ab96bc8536da948932668'
```
```json
{
"code":0,
"msg":"",
"message":"",
"data": {
"_gt_":0
}
}
```
</details>
## 删除草稿
> https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft
*请求方式POST*
认证方式CookieSESSDATA
**正文参数application/x-www-form-urlencoded**
| 参数名 | 类型 | 内容 |
| ---------- | ---- | -------------- |
| draft_id | num | 定时发送草稿id |
| csrf_token | str | csrf |
**json回复**
根对象:
| 字段 | 类型 | 内容 |
| ------- | ---- | ---------------------------- |
| code | num | 0:成功<br/>4120015: 系统异常 |
| message | str | 错误信息 |
| ttl | num | 1 |
| data | obj | 空对象 |
<details>
<summary>查看示例</summary>
```bash
curl -X POST 'https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft' \
--data-urlencode 'draft_id=755409289278914611' \
--data-urlencode 'csrf=xxxx'
-b 'SESSDATA=xxxx;' \
```
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>

146
docs/dynamic/atlist.md Normal file
View File

@@ -0,0 +1,146 @@
# 根据关键字搜索用户(at别人时的填充列表)
**注意关键字不一定顺序匹配,如最后示例**
> https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search
*请求方式GET*
认证方式CookieSESSDATA
**正文参数multipart/form-data**
| 参数名 | 类型 | 内容 |
| --- | --- | --- |
| uid | num | 自己的uid |
| keyword | str | 搜索关键字 |
**json回复**
根对象:
| 字段 | 类型 | 内容 |
| --- | --- | --- |
| code | num | 0成功 |
| msg | str | 成功为空文本 |
| message | str | 同msg |
| data | obj | 数据本体 |
data对象:
| 字段 | 类型 | 内容 |
| --- | --- | --- |
| groups | obj[] | 内容分组(好像是根据关注列表分) |
| \_gt_ | num | 0 |
group对象:
| 字段 | 类型 | 内容 |
| --- | --- | --- |
| group_type | num | 2:我的关注<br>4:其他 |
| group_name | str | 分组名字 |
| items | obj[] | 用户信息 |
item对象:
| 字段 | 类型 | 内容 |
| --- | --- | --- |
| uid | num | 用户id |
| uname | str | 用户昵称 |
| face | str | 用户头像url |
| fans | num | 用户粉丝数 |
| official_verify_type | num | 认证信息? |
<details>
<summary>查看示例</summary>
```shell
# 搜索关键字:社会易
curl 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search?uid=15858903&keyword=%e7%a4%be%e4%bc%9a%e6%98%93' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0' -H 'Accept: application/json, text/plain, */*' \
-H 'Referer: https://t.bilibili.com/' \
-H 'Cookie: SESSDATA=******'
```
```json
{
"code": 0,
"msg": "",
"message": "",
"data": {
"groups": [
{
"group_type": 2,
"group_name": "我的关注",
"items": [
{
"uid": 293793435,
"uname": "社会易姐QwQ",
"face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
"fans": 1179,
"official_verify_type": -1
}
]
},
{
"group_type": 4,
"group_name": "其他",
"items": [
{
"uid": 250129011,
"uname": "社会小伙肖子易",
"face": "https://i0.hdslb.com/bfs/face/2ae12d7f71173baa8e00c4cfe97acb5a3de31566.jpg",
"fans": 7,
"official_verify_type": -1
},
{
"uid": 394873001,
"uname": "社会你易叔",
"face": "https://i2.hdslb.com/bfs/face/bde2811aa895e349036aba9ece5630bcd1341ff0.jpg",
"fans": 5,
"official_verify_type": -1
},
{
"uid": 486568790,
"uname": "社会主义接班人小易",
"face": "https://i2.hdslb.com/bfs/face/1ebb0d4aa8e2c4b532f82983503ec38b62a1820f.jpg",
"fans": 3,
"official_verify_type": -1
},
{
"uid": 497214639,
"uname": "社会你易易",
"face": "https://i0.hdslb.com/bfs/face/dccb52f3c15ba1bb99aac3c86e9825842cc95295.jpg",
"fans": 2,
"official_verify_type": -1
},
{
"uid": 496622388,
"uname": "社会你易哥",
"face": "https://i0.hdslb.com/bfs/face/daac5514a7622741f767c68b1cbc6b91e60b4798.jpg",
"fans": 1,
"official_verify_type": -1
},
{
"uid": 457675287,
"uname": "易社会",
"face": "https://i0.hdslb.com/bfs/face/632bf9dd17f4e9f2f12be2c0ad00cdacd2d825fa.jpg",
"fans": 1,
"official_verify_type": -1
},
{
"uid": 123270058,
"uname": "周易社会",
"face": "https://i1.hdslb.com/bfs/face/c6100396729112230deb3b0972db1504e9ce21bf.jpg",
"fans": 1,
"official_verify_type": -1
}
]
}
],
"_gt_": 0
}
}
```
</details>

1586
docs/dynamic/basicInfo.md Normal file

File diff suppressed because it is too large Load Diff

487
docs/dynamic/card_info.md Normal file
View File

@@ -0,0 +1,487 @@
# 动态详细信息字段
不同动态内容卡片的具体信息。包含在***获取特定动态卡片信息,话题下特定动态信息***等API的Json回复中。
以card字段的形式出现内容为一个可被解析为Json对象的字符串。
不同类型的动态内容拥有不同的字段。
****
## 在转发类动态中type=1
需注意账号转发视频投稿其他用户的动态以及分享收藏夹等均为转发类内容并不属于type=4300的收藏类动态等。
在type=1的转发类动态中解析出的对象包含以下内容
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| user | obj | 转发者用户信息 | 包含用户名用户id和头像 |
| item | obj | 转发相关信息 | `content`字段为转发附言 | |
| origin | str | 被转发动态信息 | 即本文档所描述的动态详细信息字段。</br>动态类型为`item`对象的`orig_type`字段 |
| origin_extend_json | str | 被转发动态补充信息 | |
| origin_user | obj | 被转发用户信息 | |
| activity_infos | obj | 被转发动态参与的活动 | |
<details>
<summary>查看字段内容示例:</summary>
```json
{
"user": {
"uid": 1704629193,
"uname": "钢板狗的狐",
"face": "https://i0.hdslb.com/bfs/face/443bfd128429f84c0d81c20c4354ea5007f7480c.jpg"
},
"item": {
"rp_id": 587236631985408400,
"uid": 1704629193,
"content": "#阅机无数#这是什么本子",
"ctrl": "",
"orig_dy_id": 587058081595689300,
"pre_dy_id": 587058081595689300,
"timestamp": 1635565083,
"reply": 0,
"orig_type": 8
},
"origin": "{\"aid\":933765713,\"attribute\":0,\"cid\":433047365,\"copyright\":1,\"ctime\":1635523511,\"desc\":\"-\",\"dimension\":{\"height\":1920,\"rotate\":0,\"width\":1080},\"duration\":200,\"dynamic\":\"\",\"first_frame\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/storyff\\/n211029a2nf13h6fhybt231isumtaj9x_firsti.jpg\",\"jump_url\":\"bilibili:\\/\\/video\\/933765713\\/?page=1&player_preload=null&player_width=1080&player_height=1920&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/e4c06054bc9d6c564637f70a7565a6a2d24ee521.jpg\",\"mid\":492755628,\"name\":\"Leojdj\"},\"pic\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/archive\\/8b3bd4387d4041389ba7f02ce813b17f96a7f1e2.jpg\",\"player_info\":null,\"pubdate\":1635523511,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":0,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV16T4y1R7H9\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV16T4y1R7H9\",\"stat\":{\"aid\":933765713,\"coin\":0,\"danmaku\":0,\"dislike\":0,\"favorite\":1,\"his_rank\":0,\"like\":2,\"now_rank\":0,\"reply\":2,\"share\":1,\"view\":70},\"state\":0,\"tid\":95,\"title\":\"试图安装Windows10\",\"tname\":\"数码\",\"up_from_v2\":9,\"videos\":1}",
"origin_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}}",
"origin_user": {
"info": {
"uid": 492755628,
"uname": "Leojdj",
"face": "https://i0.hdslb.com/bfs/face/e4c06054bc9d6c564637f70a7565a6a2d24ee521.jpg"
},
"card": {
"official_verify": {
"type": -1,
"desc": ""
}
},
"vip": {
"vipType": 0,
"vipDueDate": 0,
"vipStatus": 0,
"themeType": 0,
"label": {
"path": "",
"text": "",
"label_theme": "",
"text_color": "",
"bg_style": 0,
"bg_color": "",
"border_color": ""
},
"avatar_subscript": 0,
"nickname_color": "",
"role": 0,
"avatar_subscript_url": ""
},
"pendant": {
"pid": 0,
"name": "",
"image": "",
"expire": 0,
"image_enhance": "",
"image_enhance_frame": ""
},
"rank": "10000",
"sign": "",
"level_info": {
"current_level": 3
}
},
"activity_infos": {
"details": [
{
"type": 1,
"detail": "{\"is_show\":1,\"topic_id\":10511051,\"topic_link\":\"https:\\/\\/member.bilibili.com\\/york\\/punch-card?navhide=1\",\"topic_name\":\"打卡挑战\"}"
}
]
}
}
```
</details>
## 在图片动态中type=2
在type=2的图片动态中解析出的对象包含以下内容
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| item | obj | 图片动态内容 | `description`字段为文字内容</br>`pictures`字段图片 | |
| user | obj | 发布者用户信息 | 包含用户名用户id和头像 |
<details>
<summary>查看字段内容示例:</summary>
```json
{
"item": {
"at_control": "",
"category": "daily",
"description": "#阅机无数#已知这个笔记本的品牌为Dell隶属于灵越系列主打外观的设计目测应该是4代酷睿之前的型号CPU应该是低压i5/i3不知道能否找出具体型号",
"id": 172408258,
"is_fav": 0,
"pictures": [
{
"img_height": 2400,
"img_size": 1425.97998046875,
"img_src": "https://i0.hdslb.com/bfs/album/3716f26eeede4d77874f3eeacd49b0e2e597fcc3.jpg",
"img_tags": null,
"img_width": 1080
}
],
"pictures_count": 1,
"reply": 2,
"role": [],
"settings": {
"copy_forbidden": "0"
},
"source": [],
"title": "",
"upload_time": 1635433727
},
"user": {
"head_url": "https://i1.hdslb.com/bfs/face/98f88e00306ac92d30bae013f8295d26bd018093.jpg",
"name": "LostCity失落之城",
"uid": 169216498,
"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
}
}
}
```
</details>
## 在文字动态中type=4
在type=4的文字动态中解析出的对象包含以下内容
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| item | obj | 文字动态内容 | `description`字段为文字内容 | |
| user | obj | 发布者用户信息 | 包含用户名用户id和头像 |
<details>
<summary>查看字段内容示例:</summary>
```json
{
"user": {
"uid": 403417570,
"uname": "杯子人一君羊",
"face": "https://i1.hdslb.com/bfs/face/cf0772f2e4d76f75ca4c230d9ab1b50012a8bbfa.jpg"
},
"item": {
"rp_id": 586612173803463700,
"uid": 403417570,
"content": "#阅机无数# 文字题\nthinkpad 09-15年\n触控笔\nenergy star\ncore i5\n[藏狐]",
"ctrl": "",
"orig_dy_id": 0,
"pre_dy_id": 0,
"timestamp": 1635419690,
"reply": 2
}
}
```
</details>
## 在视频投稿动态中type=8
在type=8的视频投稿动态中解析出的对象包含以下内容
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| aid | num | 视频avid | |
| attribute | num | `0` | [可能已弃用](https://shakaianee.top/archives/9/) |
| cid | num | 视频cid | |
| copyright | num | 原创信息 | 1为原创2为转载 |
| desc | str | 视频简介 | |
| dimension | obj |视频1p分辨率| |
| duration | num | 视频时长 | 单位秒 |
| dynamic | str | 动态文字内容 | |
| first_frame | str | 视频第一帧图片 | 图片链接 |
| jump_url | str | 视频跳转链接 | |
| mission_id | num | 稿件参与的活动id | |
| owner | obj | 动态作者信息 | 即up主 |
| pic | str | 视频封面 | |
| player_info | ? | 可能是播放器信息 | |
| pubdate | num | 发布时间 | 时间戳 |
| rights | obj | 联合投稿,是否付费等信息 | 可能用来代替原`attribute`字段 |
| stat | obj | 视频数据 | 点赞投币等 |
| state | num | 视频状态 | 详情见**属性数据文档** |
| tid | num | 视频分区编号 | |
| title | str | 视频标题 | |
| tname | str | 视频分区名称 | |
| video | num | 视频数| |
<details>
<summary>查看字段内容示例:</summary>
```json
{
"aid": 506318410,
"attribute": 0,
"cid": 432711595,
"copyright": 1,
"ctime": 1635403080,
"desc": "我看谁敢欺负天依依?都别动啊,放那儿让我来!\n好久不写萌歌歌了耐心心看到结尾有天依依激萌嚎叫不\n\n作曲曲/编曲曲/混音音iKz @Signal-E | 作词词:叫叫与壶壶\n唱歌歌洛天依 | 调校校Creuzer\n曲绘绘pelokio & 贝贝web & 壶芬奇\nPVVAYWC八毛 @Signal-E\n制作人iKz\n\n蛀牙牙版BV1FR4y1n7rt",
"dimension": {
"height": 1080,
"rotate": 0,
"width": 1920
},
"duration": 265,
"dynamic": "我看谁敢欺负天依依?都别动啊,放那儿让我来!\n好久不写萌歌歌了耐心心看到结尾有洛天依激萌嚎叫不",
"first_frame": "https://i1.hdslb.com/bfs/storyff/n211029a21oldgobzh2ob1uf3tqav4yy_firsti.jpg",
"jump_url": "bilibili://video/506318410/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0",
"mission_id": 122069,
"owner": {
"face": "https://i1.hdslb.com/bfs/face/4935c75aecf986c3c129400882ee9c5ceeeec4b5.jpg",
"mid": 25681,
"name": "iKz_茶壶"
},
"pic": "https://i0.hdslb.com/bfs/archive/06749bfe8b9505b00bd572950615912fecadb513.jpg",
"player_info": null,
"pubdate": 1635501604,
"rights": {
"autoplay": 1,
"bp": 0,
"download": 0,
"elec": 0,
"hd5": 1,
"is_cooperation": 1,
"movie": 0,
"no_background": 0,
"no_reprint": 1,
"pay": 0,
"ugc_pay": 0,
"ugc_pay_preview": 0
},
"short_link": "https://b23.tv/BV13u411o7Ht",
"short_link_v2": "https://b23.tv/BV13u411o7Ht",
"stat": {
"aid": 506318410,
"coin": 5490,
"danmaku": 486,
"dislike": 0,
"favorite": 6017,
"his_rank": 0,
"like": 8526,
"now_rank": 0,
"reply": 597,
"share": 568,
"view": 44737
},
"state": 0,
"tid": 30,
"title": "【超萌萌洛天依万圣节原创】嘤嘤大作战【iKz-茶壶壶】",
"tname": "VOCALOID·UTAU",
"videos": 1
}
```
</details>
## 在专栏投稿动态中type=64
在type=64的专栏投稿动态中解析出的对象包含以下内容
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| id | num | 专栏的id即cv号 | |
| category | obj | 分类号和分类名称 | |
| categories | obj | 分类信息 | |
| title | str | 专栏标题 | |
| summary | str | 专栏简介 | |
| banner_url | str | 头图链接 | |
| template_id | num | 模板信息 | |
| state | num | 专栏状态 | |
| author | obj | 作者信息 | 包含了头像挂件和勋章等 |
| reprint | num | 可能是转载 | |
| image_urls | obj | 图片链接 | |
| publish_time | num | 发布时间 | 时间戳,应该指专栏 |
| ctime | num | 发布时间 | 时间戳,应该指动态 |
| stats | obj | 专栏数据,点赞之类 | 有点踩字段,但并未实装此功能 |
| words | num | 字数 | |
| origin_image_urls | obj | 源图片地址 | |
| list | ? | 可能为文集 | |
| is_like | bool | 是否点赞 | |
| media | obj | 番剧电影相关内容 | 影评的分数,是否有剧透等 |
| apply_time | ? | ? | |
| check_time | ? | ? | |
| original | num | 是否原创 | |
| act_id | num | ? | |
| dispute | ? | 可能为是否争议内容 | |
| authenMark | ? | ? | |
| cover_avid | num | 相关视频id | 例如笔记专栏的原视频 |
| top_video_info | ? | ? | |
| type | num | 可能是专栏类别 | |
<details>
<summary>查看字段内容示例:</summary>
```json
{
"id": 12457797,
"category": {
"id": 42,
"parent_id": 41,
"name": "全部笔记"
},
"categories": [
{
"id": 41,
"parent_id": 0,
"name": "笔记"
},
{
"id": 42,
"parent_id": 41,
"name": "全部笔记"
}
],
"title": "【编曲教程】弦乐如何编写?二十分钟学会弦乐基础写法~",
"summary": "点击进入查看全文",
"banner_url": "https://i0.hdslb.com/bfs/archive/9c0f743f0d79bf3f73ea196eced55a9211ef363f.jpg",
"template_id": 4,
"state": 0,
"author": {
"mid": 310236726,
"name": "珞林ltyxh",
"face": "https://i0.hdslb.com/bfs/face/8c4aebb01b3cc34154168be51241b0345f110aeb.webp",
"pendant": {
"pid": 2155,
"name": "洛天依8th生日纪念",
"image": "https://i0.hdslb.com/bfs/garb/item/e98718ae0d09e48bc85df969820b88241bc06883.png",
"expire": 0
},
"official_verify": {
"type": -1,
"desc": ""
},
"nameplate": {
"nid": 4,
"name": "青铜殿堂",
"image": "https://i0.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png",
"image_small": "https://i2.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png",
"level": "普通勋章",
"condition": "单个自制视频总播放数>=1万"
},
"vip": {
"type": 2,
"status": 1,
"due_date": 0,
"vip_pay_type": 0,
"theme_type": 0,
"label": {
"path": "",
"text": "年度大会员",
"label_theme": "annual_vip"
},
"avatar_subscript": 1,
"nickname_color": "#FB7299"
}
},
"reprint": 0,
"image_urls": [
"https://i0.hdslb.com/bfs/article/banner/6daa4ac60ddec2456bb720dbb4979b07dd705e8a.png"
],
"publish_time": 1627921161,
"ctime": 1627921161,
"stats": {
"view": 107,
"favorite": 5,
"like": 11,
"dislike": 0,
"reply": 1,
"share": 0,
"coin": 1,
"dynamic": 0
},
"words": 225,
"origin_image_urls": [
"https://i0.hdslb.com/bfs/article/banner/6daa4ac60ddec2456bb720dbb4979b07dd705e8a.png"
],
"list": null,
"is_like": false,
"media": {
"score": 0,
"media_id": 0,
"title": "",
"cover": "",
"area": "",
"type_id": 0,
"type_name": "",
"spoiler": 0,
"season_id": 0
},
"apply_time": "",
"check_time": "",
"original": 1,
"act_id": 0,
"dispute": null,
"authenMark": null,
"cover_avid": 57337301,
"top_video_info": null,
"type": 2
}
```
</details>
## 在音频投稿动态中type=256
在type=256的音频投稿动态中解析出的对象包含以下内容
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| id | num | 投稿编号 | 即au号 |
| upId | num | 音乐人id | 与用户uid不同 |
| title | str | 音频标题 | |
| upper | str | 上传者名称 | |
| cover | str | 封面图链接 | |
| author | str | 作者名称 | |
| ctime | num | 上传时间 | 时间戳的后面加了三个0 |
| playCnt | num | 播放量 | |
| intro | str | 音频介绍 | |
| schema | str | 跳转链接 | 似乎并不只是url |
| typeInfo | str | 分区信息 | |
| upperAvatar | str | 上传者的头像链接 | |
<details>
<summary>查看字段内容示例:</summary>
```json
{
"id": 2562895,
"upId": 482834,
"title": "[蓝猫原创伴奏]无衣",
"upper": "NBluecat",
"cover": "https://i0.hdslb.com/bfs/music/1e7c4d04bd405159b66893d4cb68977ddf784b42.jpg",
"author": "NBluecat",
"ctime": 1632115270000,
"replyCnt": 1,
"playCnt": 252,
"intro": "_(:з」∠)_这是无衣的伴奏非常简单",
"schema": "bilibili://music/detail/2562895?name=%5B%E8%93%9D%E7%8C%AB%E5%8E%9F%E5%88%9B%E4%BC%B4%E5%A5%8F%5D%E6%97%A0%E8%A1%A3&uperName=&cover_url=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Fmusic%2F1e7c4d04bd405159b66893d4cb68977ddf784b42.jpg&upperId=&author=NBluecat",
"typeInfo": "音乐 · 纯音乐/演奏",
"upperAvatar": "https://i2.hdslb.com/bfs/face/d5bf3c9f179803134172ff1c6090ba6b999651c6.jpg"
}
```
</details>

1039
docs/dynamic/content.md Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,601 @@
# 获取特定动态卡片信息
> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail
*请求方式GET*
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------ | ---- | ---------- | ------ | -------- |
| dynamic_id | id | 动态id | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| data | obj | 信息本体 | |
| message | str | 错误信息 | 默认为空 |
| msg | num | 空 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ----- | ---------- | ------------ |
| card | obj | 动态卡片内容 | 当动态不存在/删除时不返回此项 |
| result | num | 0 | 作用尚不明确(当动态不存在/删除时不返回此项) |
| \_gt\_ | num | 0 | 作用尚不明确 |
`data`中的`card`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------- | ---- |
| activity_infos | obj | 该条动态参与的活动 |当此条动态没有参与任何活动时不显示此项 |
| card | str | 动态详细信息 | 会跟随此动态类型不同发生一定的变化,评论数、点赞数等相关信息参考`desc`字段 |
| 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 | 具体定义未知 |
**示例:**
获取`哔哩哔哩弹幕网`的动态id为`507420325550127049`动态
```shell
curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail' \
--data-urlencode 'dynamic_id=507420325550127049'
```
<details>
<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"
}
},
"result": 0,
"_gt_": 0
}
}
```
</details>
## 最近更新UP主列表
> https://api.bilibili.com/x/polymer/web-dynamic/v1/portal
*请求方式GET*
*认证方式Cookie(SESSDATA) 和 Access_Token*
**json回复**
*根对象*
| 字段 | 类型 | 内容 | 备注 |
| ------- | --- | ---- | ---- |
| code | num | 返回值 | 0成功 |
| data | obj | 信息本体 | |
| message | str | 错误信息 | 默认为0 |
| ttl | int | 1 | 默认为1 |
`data`对象
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ----- | ---------- | --- |
| live_users | null | 不明 | |
| my_info | obj | 个人关注的一些信息 | |
| up_list | array | 最近更新的up主列表 | |
`my_info`对象
| 字段 | 类型 | 内容 | 备注 |
| ---------- | --- | ----------- | ---- |
| dyns | int | 个人动态 | |
| face | str | 头像 | 图像地址 |
| face_nft | int | 不明 | |
| follower | int | 粉丝数量 | |
| following | int | 我的关注 | |
| level_info | obj | 本人等级内容 | |
| mid | int | 账户mid | |
| name | str | 账户名称 | |
| offcial | obj | 认证信息 | |
| space_bg | str | 账户个人中心的背景横幅 | 图像地址 |
| vip | obj | vip信息 | |
`my_info`中的`level_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------- | --- | ---- | ---------- |
| current_level | num | 当前等级 | 0-6级 |
| current_min | num | 0 | |
| current_exp | num | 0 | |
| next_exp | num | 0 | |
`my_info`中的`Official`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----- | --- | ---- | ------------------------------------- |
| role | num | 认证类型 | 0无<br />1 2 7个人认证<br />3 4 5 6机构认证 |
| title | str | 认证信息 | 无为空 |
| desc | str | 认证备注 | 无为空 |
| type | num | 是否认证 | -1无<br />0认证 |
`my_info`中的`vip`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------------- | --- | --------- | -------------------------------------------- |
| type | num | 会员类型 | 0无<br />1月大会员<br />2年度及以上大会员 |
| status | num | 会员状态 | 0无<br />1有 |
| due_date | num | 会员过期时间 | Unix时间戳(毫秒) |
| vip_pay_type | num | 支付类型 | 0未支付常见于官方账号<br />1已支付以正常渠道获取的大会员均为此值 |
| theme_type | num | 0 | 作用尚不明确 |
| label | obj | 会员标签 | |
| avatar_subscript | num | 是否显示会员图标 | 0不显示<br />1显示 |
| nickname_color | str | 会员昵称颜色 | 颜色码,一般为`#FB7299`,曾用于愚人节改变大会员配色 |
| role | num | 大角色类型 | 1月度大会员<br/>3年度大会员<br/>7十年大会员<br/>15百年大会员 |
| avatar_subscript_url | str | 大会员角标地址 | |
| tv_vip_status | num | 电视大会员状态 | 0未开通 |
| tv_vip_pay_type | num | 电视大会员支付类型 | |
`vip`中的`label`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------------- | ---- | -------- | ---------------------------------------------------------------------------------------------------------------------------- |
| path | str | 空 | 作用尚不明确 |
| text | str | 会员类型文案 | `大会员` `年度大会员` `十年大会员` `百年大会员` `最强绿鲤鱼` |
| label_theme | str | 会员标签 | vip大会员<br />annual_vip年度大会员<br />ten_annual_vip十年大会员<br />hundred_annual_vip百年大会员<br/>fools_day_hundred_annual_vip最强绿鲤鱼 |
| text_color | str | 会员标签 | |
| bg_style | num | 1 | |
| bg_color | str | 会员标签背景颜色 | 颜色码,一般为`#FB7299`,曾用于愚人节改变大会员配色 |
| border_color | str | 会员标签边框颜色 | 未使用 |
| use_img_label | bool | `true` | |
| img_label_uri_hans | str | `空串` | |
| img_label_uri_hant | str | `空串` | |
| img_label_uri_hans_static | str | 大会员牌子图片 | 简体版 |
| img_label_uri_hant_static | str | 大会员牌子图片 | 繁体版 |
`data`中的`up_list`数组对象
| 字段 | 属性 | 内容 | 备注 |
| ----------------- | ---- | --------- | --- |
| face | str | UP主头像 | |
| has_update | bool | 最近更新是否更新? | |
| is_reserve_recall | bool | 不明 | |
| mid | int | UP主mid | |
| uname | str | up主昵称 | |
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"live_users": null,
"my_info": {
"dyns": 67,
"face": "http://i0.hdslb.com/bfs/face/44253f4e588d72d4c10dde495752142b588455af.jpg",
"face_nft": 0,
"follower": 15,
"following": 77,
"level_info": {
"current_exp": 23846,
"current_level": 5,
"current_min": 10800,
"level_up": -62135596800,
"next_exp": 28800
},
"mid": 108534711,
"name": "CiaoMyTime",
"official": {
"desc": "",
"role": 0,
"title": "",
"type": -1
},
"space_bg": "http://i1.hdslb.com/bfs/space/aea2dd7b8894ce31d578d4fad6a7188c7b49cb2f.jpg",
"vip": {
"avatar_subscript": 1,
"avatar_subscript_url": "",
"due_date": 1670256000000,
"label": {
"bg_color": "#FB7299",
"bg_style": 1,
"border_color": "",
"img_label_uri_hans": "",
"img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/3788b674c69072f1ee252b79a31ecc8c43af3039.png",
"img_label_uri_hant": "",
"img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/jwXBWRVwa5.png",
"label_theme": "vip",
"path": "",
"text": "大会员",
"text_color": "#FFFFFF",
"use_img_label": true
},
"nickname_color": "",
"role": 1,
"status": 1,
"theme_type": 0,
"tv_vip_pay_type": 0,
"tv_vip_status": 0,
"type": 1,
"vip_pay_type": 0
}
},
"up_list": [
{
"face": "https://i2.hdslb.com/bfs/face/09a47992c9cb08f81effede594ddf014f83047fe.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 15135791,
"uname": "东北大学张引"
},
{
"face": "https://i1.hdslb.com/bfs/face/a83b296101bb36a6f1dacb8fdfa74a57a2c29445.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 1856528671,
"uname": "陆鳐LuLu"
},
{
"face": "https://i0.hdslb.com/bfs/face/60ec600cc9d84c74c8220ab41ce49bacfdc0895c.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 39180492,
"uname": "蒸気火鸡"
},
{
"face": "https://i0.hdslb.com/bfs/face/986a9f29848d17b39a99e41557d56dcd1091a3a9.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 2142762,
"uname": "老戴在此"
},
{
"face": "https://i1.hdslb.com/bfs/face/475f3c05ea494a26f5dd91b277f48b136ae63021.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 431313625,
"uname": "小蓝和他的朋友日常号"
},
{
"face": "https://i1.hdslb.com/bfs/face/bafb36d5726f8062e578474095abb0e906fec163.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 233114659,
"uname": "碧蓝航线"
},
{
"face": "https://i0.hdslb.com/bfs/face/39d23f3c5dd2c96fc35db5c2a98f4a8ff73a2d46.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 27534330,
"uname": "崩坏3第一偶像爱酱"
},
{
"face": "http://i2.hdslb.com/bfs/face/f119348814f30c6bbbcc60bd63c12b8215d19d2f.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 524704055,
"uname": "大庆赶海"
},
{
"face": "https://i0.hdslb.com/bfs/face/c4340d477356ba108098ba9a566e7ce4a54e0936.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 194326389,
"uname": "兮子cc"
},
{
"face": "https://i2.hdslb.com/bfs/face/0455b74f73d6a83eef2d6dfbdb4ae2beda42a3ce.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 476833439,
"uname": "盾之勇者成名录"
},
{
"face": "https://i0.hdslb.com/bfs/face/7c6cdd77937d4bbd2171241fe530e18c0c5bc58e.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 492840942,
"uname": "云视听小电视-TV"
},
{
"face": "https://i0.hdslb.com/bfs/face/b14881845b777d925876f24cb46b1dc1ad5a0e27.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 1636034895,
"uname": "绝区零"
},
{
"face": "http://i1.hdslb.com/bfs/face/3b933fe3c47976dd29f30e3a4f7f2bdfd99e8b08.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 603028270,
"uname": "乃木坂46官方"
},
{
"face": "https://i2.hdslb.com/bfs/face/76ec72b2a530f2f24209c98b5690ef7b536040cf.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 5992670,
"uname": "云之幻"
},
{
"face": "https://i1.hdslb.com/bfs/face/9ca9ea42fa75d9a651b354a95e8e39f48d8c30d2.jpg",
"has_update": true,
"is_reserve_recall": false,
"mid": 299359111,
"uname": "月圆之夜"
},
{
"face": "https://i1.hdslb.com/bfs/face/c8c0adce728125167fe44371d451b3dc19a84506.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 79983517,
"uname": "一唐老狮一"
},
{
"face": "https://i0.hdslb.com/bfs/face/68b4b212d9738c40d8a6a77beb65a6dd4415f81b.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 1861940979,
"uname": "保卫萝卜"
},
{
"face": "https://i2.hdslb.com/bfs/face/85bab2a17646ccf442d28549e7216fd65c6adeb7.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 2162,
"uname": "GPBeta"
},
{
"face": "https://i1.hdslb.com/bfs/face/7a41310afc08381ad0451bee8ea07f15fcc411bd.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 508963009,
"uname": "HiiroVTuber"
},
{
"face": "https://i1.hdslb.com/bfs/face/b085d34fd9d2cd44641ab648cc96e7a3068eb811.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 396848107,
"uname": "不愧是姐姐大人"
},
{
"face": "https://i0.hdslb.com/bfs/face/3f1496f48a5eb840a974fef0fd7db7a3f225fbe7.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 80304,
"uname": "亚食人"
},
{
"face": "https://i2.hdslb.com/bfs/face/a7716fec14658ef7365b538fdce0d86eb6123ed4.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 401742377,
"uname": "原神"
},
{
"face": "https://i0.hdslb.com/bfs/face/81d5201d6095e3802f14094a6906d1a114bc74c7.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 11131476,
"uname": "绫人太太啊"
},
{
"face": "https://i0.hdslb.com/bfs/face/7d72e58d0ad1b401e4c59960c4b1795efbc57c3a.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 409524162,
"uname": "一线码农聊技术"
},
{
"face": "https://i0.hdslb.com/bfs/face/5634900a3167310fcd0c6b1102ffc308c68aedd1.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 260054391,
"uname": "CHeems的日常"
},
{
"face": "https://i2.hdslb.com/bfs/face/81a4c852925b873f42c4971c836a67ea9dd2ef41.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 361469957,
"uname": "软件工艺师"
},
{
"face": "https://i2.hdslb.com/bfs/face/99e9eb37657f67f547b546b72592d70ab8ce1a4b.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 41059757,
"uname": "刻刻帝TokisakiKuru"
},
{
"face": "https://i1.hdslb.com/bfs/face/affbd5780e44ec1340f60c5283e81cbee2d9a21a.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 156785512,
"uname": "Swety_Core"
},
{
"face": "http://i0.hdslb.com/bfs/face/f576c8bd9eb4ec7f7776880581bea2d6c53d1b65.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 298683153,
"uname": "猫和老鼠官方手游"
},
{
"face": "https://i1.hdslb.com/bfs/face/5161d6bd003c24065c0d0ab2ae2ce7f37f0f607b.jpg",
"has_update": false,
"is_reserve_recall": false,
"mid": 159440647,
"uname": "Uki----"
}
]
}
}
```
</details>

881
docs/dynamic/publish.md Normal file
View File

@@ -0,0 +1,881 @@
# 发布动态
- [发布动态](#发布动态)
- [为图片动态上传图片](#为图片动态上传图片)
- [创建投票](#创建投票)
- [发表纯文本动态](#发表纯文本动态)
- [发表复杂动态](#发表复杂动态)
- [立即发布定时动态](#立即发布定时动态)
---
## 为图片动态上传图片
> https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs
*请求方式POST*
认证方式CookieSESSDATA
注意非日常类型像素宽高必须大于420
**正文参数 (multipart/form-data)**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
| file_up | file | 需要上传的图片文件 | 必要 | 格式仅支持jpg png gif |
| category | str | 图片类型 | 必要 | daily日常动态<br />draw绘画画友<br />cos摄影COSPLAY |
| biz | str | | | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功 <br />-1未添加图片<br />-2参数错误<br />-3图片尺寸过小<br />-4账号未登录<br />-7图片信息错误 |
| message | str | 错误信息 | 默认为success |
| data | obj | 信息本体 | 仅在正确时既`code=0`时为有效信息 |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | -------------- | ---- |
| image_url | str | 已上传图片url | |
| image_width | num | 已上传图片宽度 | 像素 |
| image_height | num | 已上传图片高度 | 像素 |
**示例:**
上传了一张图片`test.png`类型为`日常`
```shell
curl 'https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs' \
-F 'file_up=@test.png' \
-F 'category=daily'
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"success",
"data":{
"image_url":"http:\/\/i0.hdslb.com\/bfs\/album\/13f9523efe186a8066b2d72e80283cea2437eb62.png",
"image_width":1225,
"image_height":850
}
}
```
</details>
## 创建投票
> https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote
*请求方式POST*
认证方式CookieSESSDATA
注意: 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 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | -------------------------------- |
| code | num | 返回值 | 0成功 <br />5100001: 参数错误 |
| msg | str | 错误信息 | 成功为空 |
| message | str | 错误信息 | 跟上面那个一模一样 |
| data | obj | 信息本体 | 仅在正确时既`code=0`时为有效信息 |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | -------------- | ---- |
| vote_id | num | 投票id | |
| \_gt\_ | num | 0 | |
**示例:**
创建一个标题为`是否自愿开学`持续七天的纯文本投票
```shell
curl -X POST 'https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote' \
--data-urlencode 'info[title]=是否自愿开学' \
--data-urlencode 'info[desc]=问卷调查:自愿开学' \
--data-urlencode 'info[type]=0' \
--data-urlencode 'info[choice_cnt]=1' \
--data-urlencode 'info[duration]=604800' \
--data-urlencode 'info[options][0][desc]=自愿' \
--data-urlencode 'info[options][1][desc]=不自愿' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "",
"message": "",
"data": {
"vote_id": 4947171,
"_gt_": 0
}
}
```
</details>
## 发表纯文本动态
> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create
*请求方式POST*
认证方式Cookie (SESSDATA)
**正文参数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 | 非必要 | |
| extension | json | 位置信息 | 非必要 | |
| at_uids | str | 动态中 at 到的用户的 uid | 非必要 | 使用逗号`,`分隔 |
| ctrl | array | 特殊格式控制 (如 at 别人时的蓝字体和链接) | 非必要 | |
| csrf_token | str | CSRF Token (位于 cookie) | 非必要 | |
| csrf | str | CSRF Token (位于 cookie) | 非必要 | |
extension参数值:
```json
{
"emoji_type": 1,
"lbs_cfg": {
"title": "**市",
"poi": "156330200",
"show_title": "**市",
"type": 1,
"address": "**市",
"location": {
"lng":,
"lat":
},
"distance": 0
},
"flag_cfg": {},
"from_cfg": {
"location": {
"lat":,
"lng":
}
}
}
```
ctrl单个对象(注意用的时候是数组出现):
| 参数名 | 类型 | 内容 |
| --- | --- | --- |
| location | num | 从全文第几个字开始变蓝 |
| type | num | 1 (可能1代表链接到用户uid) |
| length | num | 这一段变蓝多少字 |
| data | str | 链接目标(被at人的uid) |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| code | num | 返回值 | 0成功 |
| message | str | 错误信息 | 成功为空 |
| data | obj | 数据本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| result | num | 0 | |
| errmsg | str | 像是服务器日志一样的东西 | |
| dynamic_id | num | 动态 id | |
| create_result | num | 1 | |
| dynamic_id_str | str | 动态 id | 字符串格式 |
| \_gt_ | num | 0 | |
<details>
<summary>查看示例(纯文本)</summary>
```bash
curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create' \
--data-urlencode 'dynamic_id=0' \
--data-urlencode 'type=4' \
--data-urlencode 'rid=0' \
--data-urlencode 'content=Hello Bug~' \
--data-urlencode 'up_choose_comment=0' \
--data-urlencode 'up_close_comment=0' \
--data-urlencode 'extension={"emoji_type":1,"from":{"emoji_type":1},"flag_cfg":{}}' \
--data-urlencode 'at_uids=' \
--data-urlencode 'ctrl=[]' \
--data-urlencode 'csrf_token=de2731532b4ab96bc8536da948932668' \
--data-urlencode 'csrf=de2731532b4ab96bc8536da948932668' \
-b 'SESSDATA=******'
```
```json
{
"code": 0,
"msg": "",
"message": "",
"data": {
"result": 0,
"errmsg": "; Create dynamic:588320531406678918, res:0, result:1; Push create kafka:0; Push create databus:0; Register comment result:0; Add outbox result:1",
"dynamic_id": 588320531406678918,
"create_result": 1,
"dynamic_id_str": "588320531406678918",
"_gt_": 0
}
}
```
</details>
<details>
<summary>查看示例(at两个人)</summary>
动态正文
```
[热词系列_神仙UP]@暮光小猿wzt @社会易姐QwQ
```
at_uids
```
15858903,293793435
```
ctrl
```json
[
{ "location": 11, "type": 1, "length": 9, "data": "15858903" },
{ "location": 20, "type": 1, "length": 9, "data": "293793435" }
]
```
命令
```bash
curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create' \
--data-urlencode 'dynamic_id': '0' \
--data-urlencode 'type': '4' \
--data-urlencode 'rid': '0' \
--data-urlencode 'content': '[热词系列_神仙UP]@暮光小猿wzt @社会易姐QwQ ' \
--data-urlencode 'up_choose_comment': '0' \
--data-urlencode 'up_close_comment': '0' \
--data-urlencode 'extension': '{"emoji_type":1,"from":{"emoji_type":1},"flag_cfg":{}}' \
--data-urlencode 'at_uids': '15858903,293793435' \
--data-urlencode 'ctrl': '[{"location":11,"type":1,"length":9,"data":"15858903"},{"location":20,"type":1,"length":9,"data":"293793435"}]' \
--data-urlencode 'csrf_token': 'de2731532b4ab96bc8536da948932668' \
--data-urlencode 'csrf': 'de2731532b4ab96bc8536da948932668' \
-b 'SESSDATA=******'
```
</details>
## 发表复杂动态
> https://api.bilibili.com/x/dynamic/feed/create/dyn
*请求方式POST*
认证方式Cookie (SESSDATA)
**URL参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------ | ---- |
| csrf | str | CSRF Token位于cookie | 必要 | |
**正文参数application/json**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --- | --- | --- | --- | --- |
| dyn_req | obj | 请求本体 | 必要 | |
`dyn_req`对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --- | --- | --- | --- | --- |
| attach_card | obj | 特殊卡片 | 非必要 | 如直播预约等 |
| content | obj | 动态内容 | 必要 | |
| meta | obj | 元信息 | 非必要 | 大概是来源信息 |
| scene | num | 动态类型? | 必要 | 纯文本: 1<br/>带图: 2 |
| pics | array | 携带图片 | 非必要 | 最多九个 |
| topic | obj | 话题 | 非必要 | |
| option | obj | 互动设置 | 非必要 | 没有此项时默认开启评论区 |
| upload_id | str | 客户端生成的 | 非必要 | 内容为`发送人mid`+`当前秒级时间戳`+`四位随机整数`,中间用`_`隔开 |
`dyn_req`对象的`meta`对象,大概是来源信息,很简单就不详细列表了:
```json
{
"app_meta": {
"from": "create.dynamic.web",
"mobi_app": "web"
}
}
```
`dyn_req`对象的`content`对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ----- | -------------------- | ------ | ---- |
| contents | array | 动态组件对象有序数组 | 必要 | |
`contents`数组内每一个动态组件对象:
```json
{
"raw_text": "ui上直接显示的字符串",
"type": id,
"biz_id": "动态组件的内容id转字符串,比如投票id"
}
```
动态组件类型:
| 组件名 | type | `biz_id`含义 |
| ------ | ---- | ------------ |
| 纯文本 | 1 | 空 |
| AT人 | 2 | AT人的mid |
| 表情 | 9 | 空 |
| 投票 | 4 | 投票id |
`dyn_req`对象的`topic`对象
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------- | ---- | ------- | ------ | -------------------------- |
| from_source | str | 来源id? | 必要 | 网页版直接选为dyn.web.list |
| from_topic_id | num | 0 | 必要 | |
| id | num | 话题id | 必要 | |
| name | str | 话题名 | 必要 | |
`dyn_req`对象的`pics`数组的每一项对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ----- | ---------------- | ------ | ------------------------------------------------------------ |
| img_height | num | 图片高 | 非必要 | 这个东西会直接原封不动传到前端,比如你都写0在网页上就看不见了,但是还会加载 |
| img_width | num | 图片宽 | 非必要 | 同上 |
| img_size | float | 图片文件大小(KB) | 非必要 | |
| img_src | str | 图片bfs链接 | 必要 | |
`dyn_req`对象的`option`对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ----------------- | ---- | ------------ | ------ | --------------- |
| up_choose_comment | num | 精选评论flag | 非必要 | 1: 开启 |
| close_comment | num | 关闭评论flag | 非必要 | 同上,与上二选一 |
`dyn_req`对象的`topic`对象:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------- | ---- | ------------ | ------ | -------- |
| from_source | str | dyn.web.list | 非必要 | 作用不明 |
| from_topic_id | num | 0 | 非必要 | 作用不明 |
| id | num | 话题id | 必要 | |
| name | str | 话题名 | 非必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| code | num | 返回值 | 0成功 |
| message | str | 错误信息 | 成功为空 |
| data | obj | 数据本体 | |
`data`对象:
当Cookie中含有任意的`buvid3`时,比较干净简洁:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| 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 | |
**警告:下面的内容又乱又杂,而且绝大多数情况用不到,我建议大家用这个接口的时候随便带一个buvid3的cookie屏蔽掉它们算了.**
当Cookie中不含有`buvid3`时,较上述字段多出一个`fake_card`对象,大概是移动端用的卡片:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | ---- | ------------ |
| 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>
动态正文
```
Test礼堂丁真,鉴定为一眼丁真
```
带两张一样的图:
http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png
然后关闭评论区
命令
```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": 755402172521250838,
"dyn_id_str": "755402172521250838",
"dyn_type": 2,
"dyn_rid": 221621773
}
}
```
</details>
## 立即发布定时动态
> https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/publish_now
*请求方式POST*
认证方式CookieSESSDATA
**正文参数 (application/x-www-form-urlencoded)**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ------------------------ | ------ | ---- |
| draft_id | file | 定时动态(草稿)id | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------ |
| code | num | 返回值 | 0成功 |
| data | obj | 信息本体 | 正常为空对象 |
| message | str | 错误消息 | 正常为"0" |
| ttl | num | 1 | 不明 |
<details>
<summary>查看示例</summary>
```bash
curl -X POST 'https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/publish_now' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'draft_id=755409289278914611' \
--data-urlencode 'csrf=xxx'
-b 'SESSDATA=xxxx;'
```
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{}
}
```
</details>

7934
docs/dynamic/tag_dynamics.md Normal file

File diff suppressed because one or more lines are too long