API de Cloud Burn
Envía proyectos a nuestro clúster de renderizado de alto rendimiento para la generación de videos con subtítulos incrustados y estilo profesional.
/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"
}'Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| Parámetros Principales | |||
projectId | String | Yes | El identificador único del proyecto que contiene el video y los subtítulos. |
resolution | String | No | Resolución de video de salida deseada. Opciones: original, 1080p, 720p, 480p | Predeterminado: original |
fileName | String | No | Nombre personalizado para el archivo MP4 generado. |
language | String | No | Idioma de destino para los subtítulos incrustados. Predeterminado: Idioma activo del proyecto |
| Soporte Multi-idioma (Subtítulos Duales) | |||
languages | Array | No | Configuraciones para múltiples pistas de subtítulos en un solo video. Límite: Máximo 3 idiomas |
- language | String | Yes* | El código para este espacio de idioma (ej. 'zh' o 'original'). |
- lineBreakRules | Object | No | Anulaciones de segmentación por idioma. |
- styleSettings | Object | No | Estilo por idioma (Crucial para el posicionamiento de subtítulos duales). |
| Reglas de Salto de Línea (lineBreakRules) | |||
lineBreakRules | Object | No | Objeto anidado para la lógica de segmentación de subtítulos. |
- maxChars | Number | No | Máximo de caracteres permitidos por línea. Rango: 5 - 100 | Predeterminado: 45 |
- maxWords | Number | No | Máximo de palabras permitidas por línea de subtítulo. Rango: 1 - 20 | Predeterminado: 10 |
- balanceLines | Boolean | No | Equilibra la longitud de las líneas en subtítulos de varias líneas. Predeterminado: true |
- sentenceSplit | Boolean | No | Prefiere romper las líneas al final de las oraciones. Predeterminado: true |
- gapThreshold | Number | No | Brecha máxima (segundos) entre palabras en una línea. Rango: 0.1 - 2.0 | Predeterminado: 0.4 |
| Conceptos Básicos de Estilo (styleSettings) | |||
uppercase | Boolean | No | Forzar todo el texto a mayúsculas. |
styleSettings | Object | No | Objeto anidado para anulaciones de estilo visual. |
- preset | String | No | Aplicar un ajuste preestablecido de estilo incorporado como base. Opciones: standard-stream, classic-apple, etc. |
- fontSize | Number | No | Tamaño de fuente como una relación con la altura del video. Predeterminado: 0.045 |
- fontFamily | String | No | Nombre de fuente estándar utilizado para el renderizado. Predeterminado: Arial |
- bold | Boolean | No | Aplicar negrita al texto. Predeterminado: false |
- italic | Boolean | No | Aplicar estilo cursiva al texto. Predeterminado: false |
| Colores y Bordes | |||
- primaryColor | Hex | No | Código hexadecimal del color de texto principal. Predeterminado: #FFFFFF |
- secondaryColor | Hex | No | Color secundario (utilizado para efectos de karaoke). Predeterminado: #00FFFF |
- outlineColor | Hex | No | Color del contorno del texto. Predeterminado: #000000 |
- outline | Number | No | Grosor del contorno (Relación con la altura). Predeterminado: 0.002 |
- shadow | Number | No | Profundidad de la sombra (Relación con la altura). Predeterminado: 0.001 |
| Posicionamiento (Relaciones 0-1) | |||
- alignment | Number | No | Código de alineación ASS (1-9). La parte inferior central es 2. Rango: 1 - 9 | Predeterminado: 2 |
- posX | Number | No | Posición horizontal (0 = Izquierda, 1 = Derecha). Predeterminado: 0.5 |
- posY | Number | No | Relación de posición vertical (0 = Arriba, 1 = Abajo). Predeterminado: 0.88. |
- marginV | Number | No | Relación de margen vertical desde la parte inferior/superior. Predeterminado: 0.056. |
| Animación y Efectos | |||
- fadeIn | Number | No | Duración del desvanecimiento de entrada en milisegundos. |
- fadeOut | Number | No | Duración del desvanecimiento de salida en milisegundos. |
- karaoke | String | No | Tipo de etiqueta de karaoke (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"
}
}
]
}'Estado y Respuesta
1. Inicialización Asíncrona
Los trabajos de Cloud Burn son asíncronos. La API responderá de inmediato con un burnId una vez que el clúster de renderizado acepte la tarea.
Utiliza el Endpoint de Estado de Exportación para consultar el progreso y la URL del video final.
{ "success": true, "burnId": "brnc_abc123", "status": "running" }
2. Seguimiento y Recuperación
Para obtener el resultado final, consulta el estado del proyecto utilizando el burnId recibido durante la inicialización:
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"
}'Al terminar, el estado cambiará a completed y se proporcionará una resultUrl (el video descargable).
{ "status": "completed", "resultUrl": "https://cdn.b2.com/video.mp4" }
Códigos de Error
| Estado | Código de Error | Descripción |
|---|---|---|
| 400 | missing_parameter | projectId es obligatorio. |
| 400 | missing_video | El proyecto no tiene un video de origen adjunto. |
| 401 | unauthorized | La clave API falta o no es válida. |
| 403 | insufficient_balance | Créditos insuficientes para la duración del video. |
| 404 | not_found | El ID del proyecto no existe. |
| 500 | burn_submission_failed | El clúster de renderizado está al máximo de su capacidad o es inaccesible. |
| 500 | export_error | Ocurrió un error durante el procesamiento de los subtítulos. |
| 500 | server_error | Error interno inesperado del servidor. |