雲端壓制 API
將項目提交到我們的高性能渲染集群,以生成帶有專業樣式的硬字幕影片。
/api/v1/burncurl -X POST https://api.srtgen.com/api/v1/burn \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"projectId": "proj_8k2n9m1b",
"resolution": "1080p"
}'參數
| 參數 | 類型 | 是否必填 | 描述 |
|---|---|---|---|
| 核心參數 | |||
projectId | String | Yes | 包含影片和字幕的項目唯一識別碼。 |
resolution | String | No | 期望的輸出影片解析度。 選項: original, 1080p, 720p, 480p | 預設: 原始解析度 |
fileName | String | No | 生成的 MP4 檔案的自定義名稱。 |
language | String | No | 壓制字幕的目標語言。 預設: 項目當前活動語言 |
| 多語言支援 (雙語字幕) | |||
languages | Array | No | 單個影片中多個字幕軌道的配置。 限制:最多 3 種語言 |
- language | String | Yes* | 此語言插槽的代碼 (例如 'zh' 或 'original')。 |
- lineBreakRules | Object | No | 每種語言的特定分段覆蓋。 |
- styleSettings | Object | No | 每種語言的特定樣式 (對於雙語字幕定位至關重要)。 |
| 換行規則 (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 |
- fontFamily | String | No | 用於渲染的標準字體名稱。 預設: Arial |
- bold | Boolean | No | 對文本應用加粗。 預設: false |
- italic | Boolean | No | 對文本應用斜體。 預設: 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.5 |
- posY | Number | No | 垂直位置比例 (0 = 頂, 1 = 底)。預設: 0.88。 |
- marginV | Number | No | 距離底部/頂部的垂直邊距比例。預設: 0.056。 |
| 動畫與效果 | |||
- fadeIn | Number | No | 淡入時長 (毫秒)。 |
- fadeOut | Number | No | 淡出時長 (毫秒)。 |
- karaoke | String | No | 卡拉 OK 標籤類型 (k, kf, ko, ks)。 |
curl -X POST https://api.srtgen.com/api/v1/burn \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"projectId": "proj_8k2n9m1b",
"resolution": "1080p",
"styleSettings": {
"preset": "standard-stream",
"fontSize": 0.055,
"bold": true
}
}'curl -X POST https://api.srtgen.com/api/v1/burn \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"projectId": "proj_8k2n9m1b",
"languages": [
{
"language": "original",
"styleSettings": {
"preset": "classic-apple",
"posY": 0.85
}
},
{
"language": "es",
"styleSettings": {
"preset": "classic-apple",
"posY": 0.75,
"primaryColor": "#FFFF00"
}
}
]
}'狀態與響應
1. 異步初始化
雲端壓制作業是異步的。一旦任務被渲染集群接受,API 將立即返回一個 burnId。
使用 導出狀態端點 來輪詢進度和最終影片 URL。
{ "success": true, "burnId": "brnc_abc123", "status": "running" }
2. 追蹤與檢索
要獲取最終結果,請使用初始化期間收到的 burnId 輪詢項目狀態:
curl -X POST https://api.srtgen.com/api/v1/export/proj_xxx \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"output": "mp4",
"burnId": "brnc_abc123"
}'完成後,狀態將變為 completed,並提供一個 resultUrl (可下載的影片)。
{ "status": "completed", "resultUrl": "https://cdn.b2.com/video.mp4" }
錯誤代碼
| 狀態 | 錯誤代碼 | 描述 |
|---|---|---|
| 400 | missing_parameter | projectId 是必填項。 |
| 400 | missing_video | 項目未附帶源影片。 |
| 401 | unauthorized | API 金鑰缺失或無效。 |
| 403 | insufficient_balance | 額度不足以支付影片時長。 |
| 404 | not_found | 項目 ID 不存在。 |
| 500 | burn_submission_failed | 渲染集群已滿或無法存取。 |
| 500 | export_error | 字幕處理過程中發生錯誤。 |
| 500 | server_error | 發生意外的內部伺服器錯誤。 |