Video Transcriber

Transcript API

提交公开可访问的媒体 URL,跟踪异步任务状态,并通过统一 API 获取结构化转录、章节、翻译以及 SRT、VTT 字幕文件。

REST + JSON · UTF-8 · UTC / ISO 8601 · 支持 200+ 语言

快速开始

一个转录请求分为三个步骤。接口会立即返回,任务在后台异步处理。

  1. 通过 POST /transcriptions 创建任务。
  2. 轮询返回的 poll_url,并遵循 retry_after 指定的间隔。
  3. 获取结构化结果和短期有效的字幕下载 URL。

身份验证

所有 OpenAPI 请求都通过 Bearer API Key 鉴权,不接受网站 Cookie 或登录 Token。

HTTP 请求头
Authorization: Bearer $VT_API_KEY
请求头必填说明
AuthorizationBearer API Key。
Content-TypePOST 请求必须为 application/json
Idempotency-KeyPOST 请求一次逻辑创建操作的稳定标识。
X-Request-ID客户端链路标识,服务端会原样返回或自动生成。

幂等请求

每次逻辑创建操作都应使用稳定的 Idempotency-Key,避免网络重试产生重复计费任务。

请求结果
相同 Key 和相同请求体返回原任务,HTTP 200。
相同 Key 和不同请求体返回 HTTP 409 idempotency_conflict

来源与格式

请提供公开可访问的 HTTP 或 HTTPS URL。OpenAPI 不支持文件上传。

来源支持示例
平台链接YouTube、TikTok、Instagram、Facebook、X、Bilibili
云盘链接Google Drive、Dropbox
文件直链MP3、MP4、M4A、WAV、WebM、MOV、AVI、OGG、AAC

能力与计费

用量按照媒体时长向上取整计算:

billable_minutes = ceil(duration_seconds / 60)

功能说明额度用量
转录返回全文、检测语言、带时间轴的片段和可选说话人。1 API Quota / 1 分钟
YouTube、
TikTok、
Instagram、
Facebook、
X、
Bilibili、
Vimeo
直接通过受支持的平台 URL 转录媒体内容。免费(限时)
说话人识别识别并标记转录中的不同说话人。免费(限时)
语言检测自动检测媒体的源语言。免费(限时)
时间戳返回带时间轴的片段,用于定位内容和同步字幕。免费(限时)
字幕(SRT/VTT)生成 SRT、VTT 字幕文件的签名下载 URL。免费(限时)
章节生成带标题和摘要的有序章节区间。1 API Quota / 1 分钟
翻译生成翻译全文和对齐片段。1 API Quota / 1 分钟

任务生命周期

queuedprocessingsucceededpartial_succeededfailedcancelled

创建转录任务

POST/transcriptions

通过公开媒体 URL 创建异步转录任务。

字段类型必填说明
source_urlstring公开媒体直链或支持的平台链接。
languagestring源语言代码,默认为自动检测。
speaker_diarizationboolean在支持时识别说话人。
features.chaptersboolean生成章节。
features.translationobject传入时启用翻译。
cURL
curl --request POST "https://videotranscriber.ai/openapi/v1/transcriptions" \
  --header "Authorization: Bearer $VT_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: transcribe-order-0001" \
  --data '{
    "source_url": "https://example.com/media/demo.mp4",
    "language": "auto",
    "speaker_diarization": true,
    "features": {
      "chapters": true,
      "translation": {"target_language": "es"}
    }
  }'
响应
{
  "request_id": "tr_01JEXAMPLE",
  "status": "queued",
  "poll_url": "/transcriptions/tr_01JEXAMPLE",
  "retry_after": 5
}

查询转录任务

GET/transcriptions/{request_id}

查询任务状态、各能力状态、用量、错误和结果可用性。

cURL
curl --request GET \
  "https://videotranscriber.ai/openapi/v1/transcriptions/$REQUEST_ID" \
  --header "Authorization: Bearer $VT_API_KEY"

获取任务结果

GET/transcriptions/{request_id}/result

获取成功能力的结构化结果,以及 SRT、VTT 文件的签名下载 URL。

cURL
curl --request GET \
  "https://videotranscriber.ai/openapi/v1/transcriptions/$REQUEST_ID/result" \
  --header "Authorization: Bearer $VT_API_KEY"

响应数据结构

JSON 使用 UTF-8 编码。时间轴字段统一使用秒并允许小数。客户端必须忽略未知响应字段。

数据结构内容
Transcript检测语言、全文、时长、时间轴片段和可选说话人。
Chapters按顺序返回包含开始、结束、标题和摘要的章节区间。
Translation源语言、目标语言、翻译全文和对齐片段。

未启用说话人识别,或供应商未返回可靠说话人标签时,speaker 字段为 null

错误处理

请求级失败使用 HTTP 状态码和稳定的英文 error.code。不要根据 error.message 编写分支逻辑。

错误响应
{
  "error": {
    "code": "invalid_request",
    "message": "The request body is invalid.",
    "retryable": false
  },
  "request_id": "req_01JEXAMPLE"
}
HTTP 状态码含义
400请求无效或输入不受支持。
401API Key 缺失或无效。
409幂等冲突。
429达到速率或额度限制。
500 / 503服务端或供应商临时失败。

限制与重试

请遵循 API 返回的速率限制和重试响应头:

  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset
  • Retry-After

保留与安全

资源保留时间
结果从结果生成之日起保留 30 天。
下载 URL私有签名地址,有效期最长一小时。
任务记录按 UTC 保留创建月份和下一个自然月。