导出字幕
以您偏好的格式下载字幕,并实时跟踪转录项目的状态。
/api/v1/export/:projectIdcurl -X POST https://api.srtgen.com/api/v1/export/proj_8k2n9m1b \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"output": "srt"
}'参数
| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| 核心参数 | |||
id | String | Yes | 在 URL 路径中传递的唯一项目标识符。 |
output | String | No | 期望导出的字幕格式或媒体资产。 选项: srt, vtt, ass, txt, json, mp4 | 默认: srt |
burnId | String | No | 明确请求特定压制作业 ID 的状态/结果。 |
language | String | No | 字幕的目标语言。 范围: 任何已翻译的代码或 'original' | 默认: original |
| 多语言支持 (新增) | |||
languages | Array | No | 在同一个文件中显示多种语言的配置数组。 限制:最多 3 种语言 | 默认: 默认支持:ASS, VTT |
- language | String | Yes* | 此语言插槽的代码 (例如 'zh' 或 'original')。 |
- lineBreakRules | Object | No | 每种语言的特定分段覆盖。 |
- styleSettings | Object | No | 每种语言的特定样式 (主要用于 ASS)。 |
| 换行规则 (lineBreakRules) | |||
lineBreakRules | Object | No | 字幕分段逻辑的嵌套对象。 |
- maxChars | Number | No | 每行允许的最大字符数。 范围: 5 - 100 | 默认: 45 |
- maxWords | Number | No | 每行字幕允许的最大单词数。 范围: 1 - 20 | 默认: 10 |
- balanceLines | Boolean | No | 平衡多行字幕中的行长度。 默认: true |
- sentenceSplit | Boolean | No | 优先在句子末尾断行。 默认: true |
- gapThreshold | Number | No | 一行中单词之间的最大间隔 (秒)。 范围: 0.1 - 2.0 | 默认: 0.4 |
| 样式基础 (styleSettings) | |||
uppercase | Boolean | No | 强制所有转录文本大写。 |
styleSettings | Object | No | 用于视觉样式覆盖的嵌套对象。 |
- preset | String | No | 应用内置样式预设作为基础。 选项: standard-stream, classic-apple, etc. |
- fontSize | Number | No | 字体大小占视频高度的比例。 默认: 0.045 (approx 48px) |
- fontFamily | String | No | 用于渲染的标准字体名称。 默认: 用于渲染的标准字体名称。 |
- bold | Boolean | No | 对文本应用加粗。 范围: true | false | 默认: false |
- italic | Boolean | No | 对文本应用斜体。 范围: true | false | 默认: false |
| 颜色与边框 | |||
- primaryColor | Hex | No | 主文本颜色的十六进制代码。 默认: #FFFFFF |
- secondaryColor | Hex | No | 辅助颜色 (用于卡拉 OK 效果)。 默认: #00FFFF |
- outlineColor | Hex | No | 文本轮廓颜色。 默认: #000000 |
- outline | Number | No | 轮廓厚度 (高度比例)。 默认: 0.002 |
- shadow | Number | No | 阴影深度 (高度比例)。 默认: 0.001 |
| 定位 (比例 0-1) | |||
- alignment | Number | No | ASS 对齐代码 (1-9)。底端居中为 2。 范围: 1 - 9 | 默认: 2 |
- posX | Number | No | 水平位置 (0 = 左, 1 = 右)。 范围: 0.0 - 1.0 | 默认: 0.5 |
- posY | Number | No | 垂直位置比例 (0 = 顶, 1 = 底)。默认: 0.88。 范围: 0.0 - 1.0 | 默认: 0.88 |
- marginV | Number | No | 距离底部/顶部的垂直边距比例。默认: 0.056。 范围: 0.0 - 0.5 | 默认: 0.056 |
| 动画与效果 | |||
- fadeIn | Number | No | 淡入时长 (毫秒)。 范围: 0ms - 5000ms | 默认: 0 |
- fadeOut | Number | No | 淡出时长 (毫秒)。 范围: 0ms - 5000ms | 默认: 0 |
- karaoke | String | No | 卡拉 OK 标签类型 (k, kf, ko, ks)。 选项: k, kf, ko, ks | 默认: none |
curl -X POST https://api.srtgen.com/api/v1/export/proj_8k2n9m1b \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"output": "srt",
"language": "fr",
"lineBreakRules": {
"maxChars": 25,
"maxWords": 5,
"balanceLines": true
}
}'curl -X POST https://api.srtgen.com/api/v1/export/proj_8k2n9m1b \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"output": "ass",
"lineBreakRules": {
"maxChars": 30
},
"styleSettings": {
"preset": "standard-stream",
"fontSize": 55,
"primaryColor": "#FF0000",
"bold": true
}
}'curl -X POST https://api.srtgen.com/api/v1/export/proj_8k2n9m1b \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"output": "ass",
"languages": [
{
"language": "original",
"styleSettings": {
"preset": "classic-apple",
"fontSize": 40,
"posY": 0.85
}
},
{
"language": "zh",
"lineBreakRules": {
"maxChars": 16,
"balanceLines": false
},
"styleSettings": {
"preset": "standard-stream",
"fontSize": 55,
"posY": 0.7
}
}
]
}'响应结构
1. 处理状态
如果项目仍在由我们的 AI 引擎处理或处于挂起状态,您将收到一个指示其当前状态的状态更新。
这允许您在前端使用同一个端点实现简单的轮询,直到状态变为 completed。
{ "projectId": "proj_abc123", "status": "processing", "message": "AI is generating..." }
2. 完成状态
一旦完成,响应将包含您请求格式的字幕内容。
每种格式都针对其用例进行了优化:
{ "success": true, "projectId": "proj_abc123", "status": "completed", "format": "srt", "content": "1\\n00:00:01,000 --> 00:00:03,000\\nHello..." }
错误代码
| 状态 | 错误代码 | 描述 |
|---|---|---|
| 400 | param_not_valid | 提供的参数超出允许范围。 |
| 401 | unauthorized | API 密钥缺失或无效。 |
| 404 | not_found | 项目 ID 不存在。 |
| 500 | export_error | 格式化过程中发生错误。 |
| 500 | project_fetch_failed | 检索项目数据失败。 |
| 500 | server_error | 发生意外内部服务器错误。 |
{ "success": false, "error": "unauthorized", "message": "提供的 API 密钥无效或已过期。" }