자막 내보내기 (Export)
원하는 형식으로 자막을 다운로드하고 전사 프로젝트의 실시간 상태를 추적하세요.
/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 | 기본값 (Default): srt |
burnId | String | No | 특정 인코딩 작업 ID의 상태/결과를 명시적으로 요청합니다. |
language | String | No | 자막의 대상 언어. 범위: 번역된 모든 코드 또는 '원본' | 기본값 (Default): 원본 (original) |
| 다국어 지원 | |||
languages | Array | No | 한 파일에 여러 언어를 표시하기 위한 구성 배열. 제한: 최대 3개 언어 | 기본값 (Default): 기본 지원: ASS, VTT |
- language | String | Yes* | 해당 언어 슬롯의 코드 (예: 'zh' 또는 'original'). |
- lineBreakRules | Object | No | 언어별 세분화 오버라이드. |
- styleSettings | Object | No | 언어별 스타일링 (ASS 핵심). |
| 줄바꿈 규칙 (lineBreakRules) | |||
lineBreakRules | Object | No | 자막 세분화 로직을 위한 중첩 객체. |
- maxChars | Number | No | 줄당 허용되는 최대 글자 수. 범위: 5 - 100 | 기본값 (Default): 45 |
- maxWords | Number | No | 자막 줄당 허용되는 최대 단어 수. 범위: 1 - 20 | 기본값 (Default): 10 |
- balanceLines | Boolean | No | 여러 줄 자막에서 줄 길이를 균등하게 맞춤. 기본값 (Default): true |
- sentenceSplit | Boolean | No | 문장이 끝나는 지점에서 줄바꿈 선호. 기본값 (Default): true |
- gapThreshold | Number | No | 한 줄 내 단어 간 최대 간격(초). 범위: 0.1 - 2.0 | 기본값 (Default): 0.4 |
| 기본 스타일 (styleSettings) | |||
uppercase | Boolean | No | 모든 텍스트를 대문자로 강제 변환. |
styleSettings | Object | No | 시각적 스타일 오버라이드를 위한 중첩 객체. |
- preset | String | No | 기본값으로 내장 스타일 프리셋 적용. 옵션: standard-stream, classic-apple, etc. |
- fontSize | Number | No | 비디오 높이 대비 글꼴 크기 비율. 기본값 (Default): 0.045 (approx 48px) |
- fontFamily | String | No | 렌더링에 사용되는 표준 글꼴 이름. 기본값 (Default): 렌더링에 사용되는 표준 글꼴 이름. |
- bold | Boolean | No | 텍스트에 굵게 스타일 적용. 범위: true | false | 기본값 (Default): false |
- italic | Boolean | No | 텍스트에 기울임꼴 스타일 적용. 범위: true | false | 기본값 (Default): false |
| 색상 및 테두리 | |||
- primaryColor | Hex | No | 기본 텍스트 색상 16진수 코드. 기본값 (Default): #FFFFFF |
- secondaryColor | Hex | No | 보조 색상 (가라오케 효과 등에 사용). 기본값 (Default): #00FFFF |
- outlineColor | Hex | No | 텍스트 외곽선 색상. 기본값 (Default): #000000 |
- outline | Number | No | 외곽선 두께 (높이 대비 비율). 기본값 (Default): 0.002 |
- shadow | Number | No | 그림자 깊이 (높이 대비 비율). 기본값 (Default): 0.001 |
| 위치 지정 (비율 0-1) | |||
- alignment | Number | No | ASS 정렬 코드 (1-9). 하단 중앙은 2입니다. 범위: 1 - 9 | 기본값 (Default): 2 |
- posX | Number | No | 가로 위치 (0 = 왼쪽, 1 = 오른쪽). 범위: 0.0 - 1.0 | 기본값 (Default): 0.5 |
- posY | Number | No | 세로 위치 비율 (0 = 상단, 1 = 하단). 기본값: 0.88. 범위: 0.0 - 1.0 | 기본값 (Default): 0.88 |
- marginV | Number | No | 상/하단으로부터의 세로 여백 비율. 기본값: 0.056. 범위: 0.0 - 0.5 | 기본값 (Default): 0.056 |
| 애니메이션 및 효과 | |||
- fadeIn | Number | No | 페이드 인 지속 시간(밀리초). 범위: 0ms - 5000ms | 기본값 (Default): 0 |
- fadeOut | Number | No | 페이드 아웃 지속 시간(밀리초). 범위: 0ms - 5000ms | 기본값 (Default): 0 |
- karaoke | String | No | 가라오케 태그 유형 (k, kf, ko, ks). 옵션: k, kf, ko, ks | 기본값 (Default): 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 키가 유효하지 않거나 만료되었습니다." }