diff --git a/docs/creativecenter/season.md b/docs/creativecenter/season.md
index 694ff4c..3090cc4 100644
--- a/docs/creativecenter/season.md
+++ b/docs/creativecenter/season.md
@@ -728,3 +728,177 @@ curl -X POST 'https://member.bilibili.com/x2/creative/web/season/del' \
```
+
+
+## 编辑投稿视频合集
+
+> https://member.bilibili.com/x2/creative/web/season/switch
+
+*请求方式: POST*
+
+认证方式:Cookie(SESSDATA)
+
+**URL参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | -------- | ------ | ---- |
+| t | num | 当前时间 | 非必要 | UNIX 毫秒时间戳 |
+| csrf | str | CSRF Token (位于 Cookie 中 bili_jct) | 必要 | |
+
+**正文参数(application/json):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | -------- | ------ | ---- |
+| aid | num | 视频 ID | 必要 | |
+| season_id | num \| null | 合集 ID | 必要 | null 表示从合集中移除 |
+| section_id | num \| null | 小节 ID | 必要 | null 表示从小节中移除 |
+| title | str | 视频标题 | 必要 | |
+| csrf | str | CSRF Token (位于 Cookie 中 bili_jct) | 非必要 | |
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| season_id | num \| null | | |
+| section_id | num \| null | | |
+| title | str | 标题 | |
+| aid | num | aid | |
+| csrf | num | CSRF Token (位于 Cookie 中 bili_jct) | |
+
+**示例:**
+
+```shell
+curl -X POST "https://member.bilibili.com/x2/creative/web/season/switch" \
+--url-query "csrf=xxxxxxxxxxxx" \
+-H "Content-Type: application/json" \
+--data '{
+ "aid": 123456,
+ "season_id": 654321,
+ "section_id": 789012,
+ "title": "新视频标题"
+}' \
+-b "SESSDATA=xxxxxxxxxxx"
+```
+
+
+查看响应示例:
+
+```json
+{
+ "season_id": null,
+ "section_id": null,
+ "title": "标题",
+ "aid": 123,
+ "csrf": "eqweeqw"
+}
+```
+
+
+
+## aid反查合集id
+
+> https://member.bilibili.com/x2/creative/web/season/aid
+
+*请求方式: GET*
+
+认证方式:Cookie(SESSDATA)
+
+**URL参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | -------- | ------ | ---- |
+| id | num | 视频 aid | 必要 | |
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| code | num | 返回值 | 0: 成功
其他: 失败 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+
+
+`data` 对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| season | obj | 合集信息 | |
+
+
+`season` 对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| id | num | 合集 ID | |
+| title | str | 合集标题 | |
+| cover | str | 合集封面 URL | |
+| desc | str | 合集描述 | |
+| isEnd | num | 是否已完结 | 0: 未完结
1: 已完结 |
+| mid | num | 合集作者 ID | |
+| isAct | num | 是否为活动合集 | 0: 否
1: 是 |
+| is_pay | num | 是否付费 | 0: 否
1: 是 |
+| state | num | 合集状态 | 0: 正常显示
-6: 正在审核 |
+| partState | num | 合集分段状态 | 0: 正常 |
+| signState | num | 合集签名状态 | 0: 正常 |
+| rejectReason | str | 合集拒绝原因 | |
+| ctime | num | 创建时间 | UNIX 时间戳 |
+| mtime | num | 修改时间 | UNIX 时间戳 |
+| no_section | num | 是否设小节 | 1: 不设小节 |
+| forbid | num | 合集是否禁止 | 0: 否
1: 是 |
+| protocol_id | str | 协议 ID | |
+| ep_num | num | 视频数量 | |
+| season_price | num | 合集价格 | 0: 免费 |
+| is_opened | num | 是否公开 | 1: 公开
0: 不公开 |
+| has_charging_pay | num | 是否充电付费 | 0: 否
1: 是 |
+| has_pugv_pay | num | 是否 PUGV 付费 | 0: 否
1: 是 |
+
+**示例:**
+
+```shell
+curl -G "https://member.bilibili.com/x2/creative/web/season/aid" \
+--data-urlencode "id=123456" \
+-b "SESSDATA=xxxxxxxxxxx"
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "id": 12,
+ "title": "合集标题",
+ "desc": "",
+ "cover": "",
+ "isEnd": 0,
+ "mid": 123,
+ "isAct": 0,
+ "is_pay": 0,
+ "state": 0,
+ "partState": 0,
+ "signState": 0,
+ "rejectReason": "",
+ "ctime": 1667232000,
+ "mtime": 1667232000,
+ "no_section": 1,
+ "forbid": 0,
+ "protocol_id": "",
+ "ep_num": 0,
+ "season_price": 0,
+ "is_opened": 1,
+ "has_charging_pay": 0,
+ "has_pugv_pay": 0
+ }
+}
+```
+
+
diff --git a/docs/creativecenter/upload.md b/docs/creativecenter/upload.md
index 42abd30..2f04c77 100644
--- a/docs/creativecenter/upload.md
+++ b/docs/creativecenter/upload.md
@@ -75,6 +75,563 @@ JavaScript (Node.js) 请求[示例](https://gist.github.com/SessionHu/5e47a3a1a3
+## 获取上传模板列表
+
+> https://member.bilibili.com/x/vupre/web/tpls
+
+*请求方式: GET*
+
+认证方式:Cookie(SESSDATA)
+
+**URL参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | -------- | ------ | ---- |
+| t | num | 当前时间 | 非必要 | UNIX 毫秒时间戳 |
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| code | num | 返回值 | 0: 成功
其他: 失败 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | array | 模板列表 | |
+
+
+
+`data` 数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| tid | num | 模板 ID | |
+| name | str | 模板名称 | |
+| typeid | num | 分区 ID | |
+| title | str | 标题 | |
+| tags | str | 标签 | |
+| description | str | 描述 | |
+| copyright | num | 版权类型 | 1: 自制
2: 转载 |
+| attribute | num | 属性 | 0 或其他 |
+| is_default | num | 是否默认 | 0: 否
1: 是 |
+
+**示例:**
+
+```shell
+curl -G "https://member.bilibili.com/x/vupre/web/tpls" \
+-b "SESSDATA=xxxxxxxxxxx"
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": [
+ {
+ "tid": 12,
+ "name": "直播录像",
+ "typeid": 173,
+ "title": " 标题",
+ "tags": "可爱",
+ "description": "描述",
+ "copyright": 1,
+ "attribute": 0,
+ "is_default": 0
+ },
+ ]
+}
+```
+
+
+
+## 编辑上传模板
+
+> https://member.bilibili.com/x/vupre/web/tpl/update
+
+*请求方式: POST*
+
+认证方式:Cookie(SESSDATA)
+
+**URL参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | -------- | ------ | ---- |
+| t | num | 当前时间 | 非必要 | UNIX 毫秒时间戳 |
+
+**正文参数(application/json):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | -------- | ------ | ---- |
+| tid | num | 模板 ID | 必要 | |
+| name | str | 模板名称 | 非必要 | |
+| title | str | 标题 | 非必要 | |
+| keywords | str | 标签 | 非必要 | 多个标签用 `,` 分隔 |
+| description | str | 描述 | 非必要 | |
+| typeid | num | 分区 ID | 非必要 | |
+| arctype | str | 版权类型 | 非必要 | "Original": 自制
"Copy": 转载 |
+| is_default | num | 是否默认 | 非必要 | 0: 否
1: 是 |
+| csrf | str | CSRF Token (位于 Cookie 中 bili_jct) | 必要 | |
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| code | num | 返回值 | 0: 成功
其他: 失败 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+
+**示例:**
+
+```shell
+curl -X POST "https://member.bilibili.com/x/vupre/web/tpl/update" \
+--url-query "t=$(date +%s%3N)" \
+-H "Content-Type: application/json" \
+--data '{
+ "tid": 12,
+ "name": "新模板名称",
+ "title": "新标题",
+ "keywords": "标签1,标签2",
+ "description": "新描述",
+ "typeid": 173,
+ "arctype": "Original",
+ "is_default": 1,
+ "csrf": "xxxxxxxxxxxx"
+}' \
+-b "SESSDATA=xxxxxxxxxxx"
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1
+}
+```
+
+
+
+## 查询话题
+
+> https://member.bilibili.com/x/vupre/web/topic/type
+
+*请求方式: GET*
+
+认证方式:Cookie(SESSDATA)
+
+**URL参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| -------- | ---- | -------- | ------ | ---- |
+| type_id | num | 分区 ID | 非必要 | |
+| pn | num | 页码 | 必要 | 从 0 开始 |
+| ps | num | 每页个数 | 必要 | |
+| title | str | 视频标题 | 非必要 | |
+| t | num | 当前时间 | 非必要 | UNIX 毫秒时间戳 |
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| code | num | 返回值 | 0: 成功
其他: 失败 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | array | 话题列表 | |
+
+
+`data` 数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| topic_id | num | 话题 ID | |
+| topic_name | str | 话题名称 | |
+| description | str | 话题描述 | |
+| mission_id | num | 任务 ID | |
+| activity_text | str | 活动文本 | |
+| activity_description | str | 活动描述 | |
+
+**示例:**
+
+```shell
+curl -G "https://member.bilibili.com/x/vupre/web/topic/type" \
+--data-urlencode "pn=0" \
+--data-urlencode "ps=20" \
+-b "SESSDATA=xxxxxxxxxxx"
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "topics": [
+ {
+ "topic_id": 1245317,
+ "topic_name": "疯狂打游戏",
+ "description": "疯狂于游戏的世界吧!愿你在这场虚拟的战斗中展现出你非凡的智慧与勇气,让每一个夜晚都充满了激情与荣耀!",
+ "mission_id": 1742462,
+ "activity_text": "有奖活动",
+ "activity_description": "@神魂の魇 发起"
+ }
+ ],
+ "tags": null,
+ "maxpage": 200,
+ "request_id": "123"
+ }
+}
+```
+
+
+
+## 话题搜索
+
+> https://member.bilibili.com/x/vupre/web/topic/search
+
+*请求方式: GET*
+
+认证方式:Cookie(SESSDATA)
+
+**URL参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| --------- | ---- | -------- | ------ | ---- |
+| page_size | num | 每页个数 | 非必要 | |
+| offset | num | 个数偏移 | 非必要 | 并非页数 |
+| keywords | str | 关键字 | 非必要 | |
+| t | num | 当前时间 | 非必要 | UNIX 毫秒时间戳 |
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| code | num | 返回值 | 0: 成功
其他: 失败 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+
+
+`data` 对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| result | obj | 搜索结果 | |
+
+
+
+`result` 对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| has_create_jurisdiction | bool | ? | |
+| is_new_topic | bool | 是否为新话题? | |
+| tips | str | 提示信息 | |
+| page_info | obj | 分页信息 | |
+| topics | array | 话题列表 | |
+
+
+
+`page_info` 对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| has_more | bool | 是否有更多 | |
+| offset | num | 偏移量 | |
+| page_number | num | 页码 | |
+
+
+
+`topics`数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| act_protocol | str | ? | |
+| activity_sign | str | ? | |
+| description | str | 话题描述 | |
+| id | num | 话题 ID | |
+| mission_id | num | 任务 ID | |
+| name | str | 话题名称 | |
+| state | num | 状态? | |
+| uname | str | ? | |
+
+**示例:**
+
+```shell
+curl -G "https://member.bilibili.com/x/vupre/web/topic/search" \
+--data-urlencode "page_size=20" \
+--data-urlencode "offset=0" \
+--data-urlencode "keywords=example" \
+-b "SESSDATA=xxxxxxxxxxx"
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "result": {
+ "topics": [
+ {
+ "id": 1200265,
+ "name": "巴黎最前线",
+ "uname": "",
+ "state": 0,
+ "description": "巴黎体育盛会前线速递!",
+ "mission_id": 0,
+ "activity_sign": "",
+ "act_protocol": ""
+ }
+ ],
+ "page_info": {
+ "page_num": 0,
+ "offset": 1,
+ "has_more": true
+ },
+ "is_new_topic": false,
+ "has_create_jurisdiction": true,
+ "tips": "该话题是UP主活动相关话题,您在话题下的稿件信息可能会被提供给发起话题的UP主,并可能被UP主用于二次创作"
+ }
+ }
+}
+```
+
+
+
+## 标签可用性检查
+
+> https://member.bilibili.com/x/vupre/web/topic/tag/check
+
+*请求方式: GET*
+
+认证方式:Cookie(SESSDATA)
+
+**URL参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | -------- | ------ | ---- |
+| tag | str | 需要检查的标签 | 必要 | |
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| code | num | 返回值 | 0: 成功
其他: 失败 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+
+
+`data` 对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| code | num | 标签状态 | 0: 可用
其他: 不可用 |
+| content | str | 错误返回 | |
+
+**示例:**
+
+```shell
+curl -G "https://member.bilibili.com/x/vupre/web/topic/tag/check" \
+--data-urlencode "tag=example_tag" \
+-b "SESSDATA=xxxxxxxxxxx"
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "code": 0,
+ "content": ""
+ }
+}
+```
+
+```json
+{
+ "code": 16025,
+ "message": "tag已经被封印了~",
+ "ttl": 1,
+ "data": {
+ "code": 1,
+ "content": "服务器错误"
+ }
+}
+```
+
+
+
+## 获取简介相关信息
+
+> https://member.bilibili.com/x/vupre/web/archive/desc/format
+
+*请求方式: GET*
+
+认证方式:Cookie(SESSDATA)
+
+**URL参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| -------- | ---- | -------- | ------ | ---- |
+| typeid | num | 分区 ID | 必要 | |
+| copyright | num | 版权类型 | 必要 | 1:自制
2:转载 |
+| t | num | 当前时间 | 非必要 | UNIX 毫秒时间戳 |
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| code | num | 返回值 | 0: 成功
其他: 失败 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | null | 信息本体 | |
+
+注:某个时间点后,没有发现 data 为 null 的情况了,过去为 null 时简介上限250字
+
+`data` 对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| typeid | num | 分区 ID | |
+| id | num | ID | |
+| lang | num | 未知 | |
+| copyright | num | 版权类型| 1:自制
2:转载 |
+| components | str | 简介输入框提示文字 | JSON 字符串 |
+
+`components` 示例:
+`'[{"name":"相关游戏","index":1,"type":"text","required":"1","box":"请输入本视频所涉及的游戏名称,以顿号分隔,例:英雄联盟、塞尔达传说、刺客信条"},{"name":"简介补充","index":2,"type":"textarea","required":"1","box":""}]'`
+
+**示例:**
+
+```shell
+curl -G "https://member.bilibili.com/x/vupre/web/archive/desc/format" \
+--data-urlencode "typeid=65" \
+--data-urlencode "copyright=1" \
+-b "SESSDATA=xxxxxxxxxxx"
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "typeid": 65,
+ "id": 1,
+ "lang": 0,
+ "copyright": 1,
+ "components": "[{\"name\":\"相关游戏\",\"index\":1,\"type\":\"text\",\"required\":\"1\",\"box\":\"请输入本视频所涉及的游戏名称,以顿号分隔,例:英雄联盟、塞尔达传说、刺客信条\"},{\"name\":\"简介补充\",\"index\":2,\"type\":\"textarea\",\"required\":\"1\",\"box\":\"\"}]"
+ }
+}
+```
+
+
+
+## 获取上传线路
+
+> https://member.bilibili.com/preupload?r=probe
+
+*请求方式: GET*
+
+认证方式:无
+
+**URL参数:**
+
+无
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| OK | num | 返回值 | 1: 成功
其他: 失败 |
+| lines | array | 上传线路列表 | |
+| probe | obj | 未知 | |
+
+probe 中的对象:
+| 字段 | 类型 | 内容 | 备注 |
+| --------- | ---- | -------- | ----- |
+| post | float | 未知 | 固定0.1 |
+
+lines 数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| --------- | ---- | -------- | ----- |
+| os | str | 操作系统 | |
+| query | str | 查询参数 | |
+| probe_url | str | 探测 URL | |
+
+**示例:**
+
+```shell
+curl -G "https://member.bilibili.com/preupload?r=probe"
+```
+
+
+查看响应示例:
+
+```json
+{
+ "OK": 1,
+ "lines": [
+ {
+ "os": "upos",
+ "query": "probe_version=20221109&upcdn=tx&zone=cs",
+ "probe_url": "//upos-cs-upcdntx.bilivideo.com/OK"
+ },
+ {
+ "os": "upos",
+ "query": "probe_version=20221109&upcdn=bldsa&zone=cs",
+ "probe_url": "//upos-cs-upcdnbldsa.bilivideo.com/OK"
+ },
+ {
+ "os": "upos",
+ "query": "probe_version=20221109&upcdn=bda2&zone=cs",
+ "probe_url": "//upos-cs-upcdnbda2.bilivideo.com/OK"
+ }
+ ],
+ "probe": {
+ "post": 0.1
+ }
+}
+```
+
+
+
## 预测稿件类型
> https://member.bilibili.com/x/vupre/web/archive/types/predict
@@ -339,7 +896,7 @@ curl -G 'https://member.bilibili.com/x/vupre/web/tag/recommend' \
-## 投递视频稿件
+## 上传视频稿件(Web)
> https://member.bilibili.com/x/vu/web/add/v3
@@ -361,14 +918,15 @@ curl -G 'https://member.bilibili.com/x/vupre/web/tag/recommend' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | -------- | ------ | ---- |
| videos | array | 视频信息 | 必要 | 若为分 P 视频, 请注意数组元素顺序 |
-| cover | str | 视频封面 URL | 必要 | 参见[上传视频封面](#上传视频封面) |
-| cover43 | str | 视频封面 URL (比例为 4:3) | 必要 | 可为空 |
+| cover | str | 视频封面 URL | 非必要 | 如果不传会自动取封面,参见[上传视频封面](#上传视频封面) |
+| cover43 | str | 视频封面 URL (比例为 4:3) | 非必要 | 可为空 |
| title | str | 视频标题 | 必要 | 最多 80 字 |
| copyright | num | 1: 自制
2: 转载 | 必要 | |
-| tid | num | 分类 ID | 必要 | |
+| tid | num | 分区 ID | 必要 | |
| tag | str | 视频标签 | 必要 | 多个标签用 `,` 分隔, 最多 10 个 |
| desc_format_id | num | 简介格式 ID? | 必要 | 9999: 纯文本 |
-| desc | str | 视频简介 | 必要 | 最多 2000 字 |
+| desc | str | 视频简介 | 非必要 | 最多 2000 字 |
+| desc_v2 | str | 视频简介额外信息 | 非必要 | 比如有艾特操作时传递,见备注 |
| recreate | num | 是否允许二创 | 必要 | -1: 允许(默认)
1: 不允许 |
| dynamic | str | 粉丝动态 | 必要 | |
| interactive | num | 互动视频? | 必要 | 0: 否 |
@@ -382,6 +940,11 @@ curl -G 'https://member.bilibili.com/x/vupre/web/tag/recommend' \
| up_close_reply | bool | 关闭评论 | 必要 | |
| up_close_danmu | bool | 关闭弹幕 | 必要 | |
| web_os | num | 平台类型? | 必要 | 3 |
+| is_only_self | 可见性 | 非必要 | 0:公开
1:仅自己可见 |
+| topic_id | 话题id | 非必要 | 可从[查询话题](./upload.md#查询话题)等相关接口获取 |
+| mission_id | 任务id | 非必要 | 可从[查询话题](./upload.md#查询话题)等相关接口获取 |
+| is_360 | num | 是否全景 | 非必要 | -1:非全景
1:全景 |
+| neutral_mark | str | 创作者声明 | 非必要 | |
`videos` 数组中的对象:
@@ -399,6 +962,32 @@ curl -G 'https://member.bilibili.com/x/vupre/web/tag/recommend' \
| open | num | 是否启用字幕投稿 | 必要 | 0: 启用(默认)
1: 不启用 |
| lan | str | 字幕投稿语言 | 必要 | 可为空 |
+**desc_v2举例:**
+
+```js
+{
+ // 如果两者不一致,可能导致后续在web修改出现错误
+ "desc": "前面@陈睿 后面",
+ "desc_v2": [ // 纯文字type是1,艾特用户type是2,biz_id为用户uid
+ {
+ "biz_id": "",
+ "raw_text": "前面",
+ "type": 1
+ },
+ {
+ "biz_id": "208259", // uid
+ "raw_text": "陈睿", // 用户名
+ "type": 2
+ },
+ {
+ "biz_id": "",
+ "raw_text": " 后面",
+ "type": 1
+ }
+ ]
+}
+```
+
**示例:**
假设已经把需要发送的数据存放在文件 `./data.json` 中:
@@ -469,6 +1058,81 @@ curl -X POST --url "https://member.bilibili.com/x/vu/web/add/v3" \
+## 编辑视频稿件(Web)
+
+> https://member.bilibili.com/x/vu/web/edit
+
+*请求方式: POST*
+
+认证方式:Cookie(SESSDATA)
+
+**URL参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | -------- | ------ | ---- |
+| t | num | 当前时间 | 非必要 | UNIX 毫秒时间戳 |
+| csrf | str | CSRF Token (位于 Cookie 中 bili_jct) | 必要 | |
+
+**正文参数(application/json):**
+
+绝大部分参数与上传一致,部分参数只有不对编辑生效
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | -------- | ------ | ---- |
+| aid | num | 视频 ID | 必要 | |
+| videos | array | 视频信息 | 必要 | 若为分 P 视频, 请注意数组元素顺序 |
+| title | str | 视频标题 | 必要 | 最多 80 字 |
+| cover | str | 视频封面 URL | 非必要 | 如果不传会自动取封面,参见[上传视频封面](#上传视频封面) |
+| cover43 | str | 视频封面 URL (比例为 4:3) | 非必要 | 可为空 |
+| copyright | num | 1: 自制
2: 转载 | 必要 | |
+| tid | num | 分区 ID | 必要 | |
+| tag | str | 视频标签 | 必要 | 多个标签用 `,` 分隔, 最多 10 个 |
+| desc_format_id | num | 简介格式 ID? | 必要 | 9999: 纯文本 |
+| desc | str | 视频简介 | 非必要 | 最多 2000 字 |
+| desc_v2 | str | 视频简介额外信息 | 非必要 | 比如有艾特操作时传递,见上传视频 |
+| recreate | num | 是否允许二创 | 必要 | -1: 允许(默认)
1: 不允许 |
+| dynamic | str | 粉丝动态 | 必要 | |
+| interactive | num | 互动视频? | 必要 | 0: 否 |
+| act_reserve_create | num | 活动预约? | 必要 | 0: 否 |
+| no_disturbance | num | 勿扰模式? | 必要 | 0: 否 |
+| no_reprint | num | 是否允许转载 | 必要 | 1: 允许
0: 不允许 |
+| subtitle | obj | 字幕信息 | 必要 | |
+| web_os | num | 操作系统 | 必要 | 1: Web |
+| mission_id | num | 任务 ID | 非必要 | 0: 无 |
+| csrf | str | CSRF Token (位于 Cookie 中 bili_jct) | 必要 | |
+| new_web_edit | num | 未知 | 非必要 | 未知 |
+| is_360 | num | 是否全景 | 非必要 | -1:非全景
1:全景 |
+| is_only_self | 可见性 | 非必要 | 0:公开
1:仅自己可见 |
+
+
+**JSON回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----- |
+| code | num | 返回值 | 0: 成功
其他: 失败 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "aid": 123456,
+ "bvid": "BV1xx411c7mD"
+ }
+}
+```
+
+
+
## 上传视频文件
注: 目前看来上传的视频文件似乎不会自动删除, 而且似乎不是视频也可以上传的样子, 但是下载认证字段有效期只有 5 天