Экспорт субтитров
Скачивайте субтитры в предпочитаемых форматах и отслеживайте статус ваших проектов транскрибации в реальном времени.
/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' | По умолчанию: оригинальный |
| Поддержка нескольких языков (новое) | |||
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 | Hex-код основного цвета текста. По умолчанию: #FFFFFF |
- secondaryColor | Hex | No | Вторичный цвет (используется для эффектов караоке). По умолчанию: #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 | Тип тега караоке (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-движком или ожидает очереди, вы получите обновление статуса, указывающее на его текущее состояние.
Это позволяет вам реализовать простой опрос (polling) на вашем фронтенде, используя тот же эндпоинт, пока статус не станет 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 недействителен или просрочен." }