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 | 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.5 |
- posY | Number | No | Коэффициент вертикального положения (0 = сверху, 1 = снизу). По умолчанию: 0.88. |
- marginV | Number | No | Коэффициент вертикального отступа от низа/верха. По умолчанию: 0.056. |
| Анимация и эффекты | |||
- fadeIn | Number | No | Длительность появления в миллисекундах. |
- fadeOut | Number | No | Длительность затухания в миллисекундах. |
- karaoke | String | No | Тип тега караоке (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 | Непредвиденная внутренняя ошибка сервера. |