feat: 补充上传稿件和合集相关接口

This commit is contained in:
renmu123 2024-11-05 16:20:13 +08:00
parent e5fbfed428
commit 30244cf548
2 changed files with 843 additions and 5 deletions

View File

@ -728,3 +728,177 @@ curl -X POST 'https://member.bilibili.com/x2/creative/web/season/del' \
```
</details>
## 编辑投稿视频合集
> 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"
```
<details>
<summary>查看响应示例:</summary>
```json
{
"season_id": null,
"section_id": null,
"title": "标题",
"aid": 123,
"csrf": "eqweeqw"
}
```
</details>
## aid反查合集id
> https://member.bilibili.com/x2/creative/web/season/aid
*请求方式: GET*
认证方式Cookie(SESSDATA)
**URL参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | -------- | ------ | ---- |
| id | num | 视频 aid | 必要 | |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----- |
| code | num | 返回值 | 0: 成功<br />其他: 失败 |
| 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: 未完结<br />1: 已完结 |
| mid | num | 合集作者 ID | |
| isAct | num | 是否为活动合集 | 0: 否<br />1: 是 |
| is_pay | num | 是否付费 | 0: 否<br />1: 是 |
| state | num | 合集状态 | 0: 正常显示<br />-6: 正在审核 |
| partState | num | 合集分段状态 | 0: 正常 |
| signState | num | 合集签名状态 | 0: 正常 |
| rejectReason | str | 合集拒绝原因 | |
| ctime | num | 创建时间 | UNIX 时间戳 |
| mtime | num | 修改时间 | UNIX 时间戳 |
| no_section | num | 是否设小节 | 1: 不设小节 |
| forbid | num | 合集是否禁止 | 0: 否<br />1: 是 |
| protocol_id | str | 协议 ID | |
| ep_num | num | 视频数量 | |
| season_price | num | 合集价格 | 0: 免费 |
| is_opened | num | 是否公开 | 1: 公开<br />0: 不公开 |
| has_charging_pay | num | 是否充电付费 | 0: 否<br />1: 是 |
| has_pugv_pay | num | 是否 PUGV 付费 | 0: 否<br />1: 是 |
**示例:**
```shell
curl -G "https://member.bilibili.com/x2/creative/web/season/aid" \
--data-urlencode "id=123456" \
-b "SESSDATA=xxxxxxxxxxx"
```
<details>
<summary>查看响应示例:</summary>
```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
}
}
```
</details>

View File

@ -75,6 +75,563 @@ JavaScript (Node.js) 请求[示例](https://gist.github.com/SessionHu/5e47a3a1a3
</details>
## 获取上传模板列表
> https://member.bilibili.com/x/vupre/web/tpls
*请求方式: GET*
认证方式Cookie(SESSDATA)
**URL参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | -------- | ------ | ---- |
| t | num | 当前时间 | 非必要 | UNIX 毫秒时间戳 |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----- |
| code | num | 返回值 | 0: 成功<br />其他: 失败 |
| 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: 自制<br />2: 转载 |
| attribute | num | 属性 | 0 或其他 |
| is_default | num | 是否默认 | 0: 否<br />1: 是 |
**示例:**
```shell
curl -G "https://member.bilibili.com/x/vupre/web/tpls" \
-b "SESSDATA=xxxxxxxxxxx"
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": [
{
"tid": 12,
"name": "直播录像",
"typeid": 173,
"title": " 标题",
"tags": "可爱",
"description": "描述",
"copyright": 1,
"attribute": 0,
"is_default": 0
},
]
}
```
</details>
## 编辑上传模板
> 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": 自制<br />"Copy": 转载 |
| is_default | num | 是否默认 | 非必要 | 0: 否<br />1: 是 |
| csrf | str | CSRF Token (位于 Cookie 中 bili_jct) | 必要 | |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----- |
| code | num | 返回值 | 0: 成功<br />其他: 失败 |
| 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"
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1
}
```
</details>
## 查询话题
> 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: 成功<br />其他: 失败 |
| 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"
```
<details>
<summary>查看响应示例:</summary>
```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"
}
}
```
</details>
## 话题搜索
> 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: 成功<br />其他: 失败 |
| 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"
```
<details>
<summary>查看响应示例:</summary>
```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主用于二次创作"
}
}
}
```
</details>
## 标签可用性检查
> https://member.bilibili.com/x/vupre/web/topic/tag/check
*请求方式: GET*
认证方式Cookie(SESSDATA)
**URL参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | -------- | ------ | ---- |
| tag | str | 需要检查的标签 | 必要 | |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----- |
| code | num | 返回值 | 0: 成功<br />其他: 失败 |
| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | -------- | ---- |
| code | num | 标签状态 | 0: 可用<br />其他: 不可用 |
| content | str | 错误返回 | |
**示例:**
```shell
curl -G "https://member.bilibili.com/x/vupre/web/topic/tag/check" \
--data-urlencode "tag=example_tag" \
-b "SESSDATA=xxxxxxxxxxx"
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"code": 0,
"content": ""
}
}
```
```json
{
"code": 16025,
"message": "tag已经被封印了~",
"ttl": 1,
"data": {
"code": 1,
"content": "服务器错误"
}
}
```
</details>
## 获取简介相关信息
> https://member.bilibili.com/x/vupre/web/archive/desc/format
*请求方式: GET*
认证方式Cookie(SESSDATA)
**URL参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | -------- | ------ | ---- |
| typeid | num | 分区 ID | 必要 | |
| copyright | num | 版权类型 | 必要 | 1自制<br/>2转载 |
| t | num | 当前时间 | 非必要 | UNIX 毫秒时间戳 |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----- |
| code | num | 返回值 | 0: 成功<br />其他: 失败 |
| 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自制<br/>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"
```
<details>
<summary>查看响应示例:</summary>
```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\":\"\"}]"
}
}
```
</details>
## 获取上传线路
> https://member.bilibili.com/preupload?r=probe
*请求方式: GET*
认证方式:无
**URL参数:**
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----- |
| OK | num | 返回值 | 1: 成功<br />其他: 失败 |
| 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"
```
<details>
<summary>查看响应示例:</summary>
```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
}
}
```
</details>
## 预测稿件类型
> 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' \
</details>
## 投递视频稿件
## 上传视频稿件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: 自制<br />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: 允许(默认)<br />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公开<br/>1仅自己可见 |
| topic_id | 话题id | 非必要 | 可从[查询话题](./upload.md#查询话题)等相关接口获取 |
| mission_id | 任务id | 非必要 | 可从[查询话题](./upload.md#查询话题)等相关接口获取 |
| is_360 | num | 是否全景 | 非必要 | -1非全景<br/>1全景 |
| neutral_mark | str | 创作者声明 | 非必要 | |
`videos` 数组中的对象:
@ -399,6 +962,32 @@ curl -G 'https://member.bilibili.com/x/vupre/web/tag/recommend' \
| open | num | 是否启用字幕投稿 | 必要 | 0: 启用(默认)<br />1: 不启用 |
| lan | str | 字幕投稿语言 | 必要 | 可为空 |
**desc_v2举例**
```js
{
// 如果两者不一致可能导致后续在web修改出现错误
"desc": "前面@陈睿 后面",
"desc_v2": [ // 纯文字type是1艾特用户type是2biz_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" \
</details>
## 编辑视频稿件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: 自制<br />2: 转载 | 必要 | |
| tid | num | 分区 ID | 必要 | |
| tag | str | 视频标签 | 必要 | 多个标签用 `,` 分隔, 最多 10 个 |
| desc_format_id | num | 简介格式 ID? | 必要 | 9999: 纯文本 |
| desc | str | 视频简介 | 非必要 | 最多 2000 字 |
| desc_v2 | str | 视频简介额外信息 | 非必要 | 比如有艾特操作时传递,见上传视频 |
| recreate | num | 是否允许二创 | 必要 | -1: 允许(默认)<br />1: 不允许 |
| dynamic | str | 粉丝动态 | 必要 | |
| interactive | num | 互动视频? | 必要 | 0: 否 |
| act_reserve_create | num | 活动预约? | 必要 | 0: 否 |
| no_disturbance | num | 勿扰模式? | 必要 | 0: 否 |
| no_reprint | num | 是否允许转载 | 必要 | 1: 允许<br />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非全景<br/>1全景 |
| is_only_self | 可见性 | 非必要 | 0公开<br/>1仅自己可见 |
**JSON回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----- |
| code | num | 返回值 | 0: 成功<br />其他: 失败 |
| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"aid": 123456,
"bvid": "BV1xx411c7mD"
}
}
```
</details>
## 上传视频文件
注: 目前看来上传的视频文件似乎不会自动删除, 而且似乎不是视频也可以上传的样子, 但是下载认证字段有效期只有 5 天