视频上传 API

COS 直传视频三步流程(获取临时密钥、直传、回调入库)、视频入库、视频列表查询、编辑与删除接口

视频上传 API

视频文件采用 COS 前端直传方案(服务端不接触文件流),上传链路分三步:

1. 获取 COS 直传临时密钥   GET /project/video/uploadCredentials.html
2. 前端使用 cos-js-sdk-v5 直传文件至 COS(客户端直连 COS,不经过翻译服务)
3. 直传完成回调入库         GET /project/video/uploadComplete.html
   (服务端 HEAD 复核大小、CI 读时长、校验有效视频、搬运到正式存储位置并入库)

回调入库完成后,调用 新增视频 接口将文件批量入库为项目视频,之后即可通过视频列表接口查询视频及其翻译各阶段状态。

获取 COS 直传临时密钥

GET /project/video/uploadCredentials.html

上传第一步:获取 COS 临时密钥,前端拿到后使用 cos-js-sdk-v5 直传,服务端不接触文件流。

请求参数

名称位置类型必选说明
projectIdquerystring项目 id

返回示例

200 Response

{
  "id": "string",
  "code": 0,
  "msg": "string",
  "data": {}
}

返回结果

状态码状态码含义说明数据模型
200OKnoneBaseReturnModel

直传完成回调入库

GET /project/video/uploadComplete.html

上传第三步:前端直传 COS 完成后回调。服务端 HEAD 复核大小、CI 读时长、校验有效视频(防伪装)、搬运到正式存储位置并入库。

请求参数

名称位置类型必选说明
fileIdquerystring文件 id
projectIdquerystring项目 id
sha256querystring文件 SHA256
fileNamequerystring文件名

返回示例

200 Response

{
  "id": "string",
  "code": 0,
  "msg": "string",
  "data": {}
}

返回结果

状态码状态码含义说明数据模型
200OKnoneBaseReturnModel

新增视频

GET /project/video/add.html

将已上传的文件批量入库为项目视频;fileSha256s/fileNames/previewFileIds 传入时数量须与 fileIds 一致。

请求参数

名称位置类型必选说明
projectIdquerystring项目 id
fileIdsqueryarraystring文件 id 列表
previewFileIdsqueryarraystring预览文件 id 列表(数量须与 fileIds 一致)
fileSha256squeryarraystring文件 SHA256 列表(数量须与 fileIds 一致)
fileNamesqueryarraystring文件名列表(数量须与 fileIds 一致)

返回示例

200 Response

{
  "id": "string",
  "code": 0,
  "msg": "string",
  "data": {}
}

返回结果

状态码状态码含义说明数据模型
200OKnoneBaseReturnModel

视频列表

GET /project/video/data.html

分页查询项目下视频(含擦除/校准/翻译/压制四阶段状态、付费状态、剩余免费重试次数等)。

本接口同时也是翻译流程的状态轮询接口:发起翻译后轮询本接口获取四阶段进度,详见 视频翻译任务 API

分页与过滤通用参数(page/limit/dataEqual/dataLike/dataRange/sort/order)见 概述-分页与过滤参数

请求参数

名称位置类型必选说明
pagequeryinteger页码,从 1 开始
limitqueryinteger每页数量
sortquerystring排序字段
orderquerystring排序方向
dataEqualquerystring精确过滤条件 JSON 串,如 {"projectId":"xxx"}
dataLikequerystring模糊过滤条件 JSON 串
dataRangequerystring范围过滤条件 JSON 串

返回示例

200 Response

{
  "id": "string",
  "code": 0,
  "msg": "string",
  "data": {}
}

返回结果

状态码状态码含义说明数据模型
200OKnoneBaseReturnModel

编辑视频

GET /project/video/edit.html

编辑视频的可设置项(目标语言、成片质量、优先级等)。内部状态字段(各阶段状态/结果/耗时、付费信息等)由服务端维护,不接受传入。

请求参数

名称位置类型必选说明
idquerystring视频 id
projectIdquerystring项目 id
targetLanguagequerystring目标语言
durationquerystring短剧时长(秒)
priorityqueryinteger优先级:数字越大,优先级越高
qualityqueryinteger成片质量:0=降质(非会员),1=高清(会员);空走降质
subtitleRegionsquerystring字幕区域(JSON 格式,存储相对坐标)

详细说明

quality:成片质量,0=降质(非会员)、1=高清(会员),空走降质。决定三阶段是否把 OCR 数据还原到原始尺度:会员还原(原始帧号+原始分辨率 box),非会员保持 OCR 基准(fpsOcr 帧号+maxSide box)。须在擦除(erase)之前确定且之后不可变,否则已生成的 paddle.json/SRT 尺度会与 embed 抽帧错位。

srtFps / srtWidth / srtHeight(查询返回字段):SRT 帧空间基准,前端用 帧号/srtFps 反算时间戳、用 box * displayWidth / srtWidth 换算到播放器尺寸。存量数据为 null,前端不显示时间。

返回示例

200 Response

{
  "id": "string",
  "code": 0,
  "msg": "string",
  "data": {}
}

返回结果

状态码状态码含义说明数据模型
200OKnoneBaseReturnModel

删除视频

GET /project/video/del.html

批量删除视频记录。

请求参数

名称位置类型必选说明
idsqueryarraystring视频 id 列表

返回示例

200 Response

{
  "id": "string",
  "code": 0,
  "msg": "string",
  "data": {}
}

返回结果

状态码状态码含义说明数据模型
200OKnoneBaseReturnModel