API de Gravação em Nuvem
Envie projetos para nosso cluster de renderização de alto desempenho para geração de vídeo com legendas gravadas e estilo profissional.
/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 | Obrigatório | Descrição |
|---|---|---|---|
| Parâmetros Principais | |||
projectId | String | Yes | O identificador exclusivo do projeto contendo vídeo e legendas. |
resolution | String | No | Resolução de vídeo de saída desejada. Opções: original, 1080p, 720p, 480p | Padrão: original |
fileName | String | No | Nome personalizado para o arquivo MP4 gerado. |
language | String | No | Idioma de destino para as legendas gravadas. Padrão: Idioma Ativo do Projeto |
| Suporte Multi-Idioma (Legendas Duplas) | |||
languages | Array | No | Configurações para várias trilhas de legenda em um vídeo. Limite: Máx 3 Idiomas |
- language | String | Yes* | O código para este slot de idioma (ex: 'zh' ou 'original'). |
- lineBreakRules | Object | No | Sobreposições de segmentação por idioma. |
- styleSettings | Object | No | Estilo por idioma (Crucial para posicionamento de legendas duplas). |
| Regras de Quebra de Linha (lineBreakRules) | |||
lineBreakRules | Object | No | Objeto aninhado para lógica de segmentação de legendas. |
- maxChars | Number | No | Máximo de caracteres permitidos por linha. Intervalo: 5 - 100 | Padrão: 45 |
- maxWords | Number | No | Máximo de palavras permitidas por linha de legenda. Intervalo: 1 - 20 | Padrão: 10 |
- balanceLines | Boolean | No | Equilibra o comprimento das linhas em legendas de várias linhas. Padrão: true |
- sentenceSplit | Boolean | No | Preferir quebrar linhas no final das sentenças. Padrão: true |
- gapThreshold | Number | No | Intervalo máximo (segundos) entre as palavras em uma linha. Intervalo: 0.1 - 2.0 | Padrão: 0.4 |
| Básico do Estilo (styleSettings) | |||
uppercase | Boolean | No | Forçar todo o texto da transcrição para maiúsculas. |
styleSettings | Object | No | Objeto aninhado para sobreposições de estilo visual. |
- preset | String | No | Aplicar um preset de estilo integrado como base. Opções: standard-stream, classic-apple, etc. |
- fontSize | Number | No | Tamanho da fonte como uma proporção da altura do vídeo. Padrão: 0.045 |
- fontFamily | String | No | Nome da fonte padrão usada para renderização. Padrão: Arial |
- bold | Boolean | No | Aplicar peso negrito ao texto. Padrão: false |
- italic | Boolean | No | Aplicar estilo itálico ao texto. Padrão: false |
| Cores e Bordas | |||
- primaryColor | Hex | No | Código hexadecimal da cor principal do texto. Padrão: #FFFFFF |
- secondaryColor | Hex | No | Cor secundária (usada para efeitos de karaoke). Padrão: #00FFFF |
- outlineColor | Hex | No | Cor do contorno do texto. Padrão: #000000 |
- outline | Number | No | Espessura do contorno (Proporção da altura). Padrão: 0.002 |
- shadow | Number | No | Profundidade da sombra (Proporção da altura). Padrão: 0.001 |
| Posicionamento (Proporções 0-1) | |||
- alignment | Number | No | Código de alinhamento ASS (1-9). Centro-Inferior é 2. Intervalo: 1 - 9 | Padrão: 2 |
- posX | Number | No | Posição horizontal (0 = Esquerda, 1 = Direita). Padrão: 0.5 |
- posY | Number | No | Proporção da posição vertical (0 = Topo, 1 = Base). Padrão: 0,88. |
- marginV | Number | No | Proporção da margem vertical da base/topo. Padrão: 0,056. |
| Animação e Efeitos | |||
- fadeIn | Number | No | Duração do fade in em milissegundos. |
- fadeOut | Number | No | Duração do fade out em milissegundos. |
- karaoke | String | No | Tipo de tag 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"
}
}
]
}'Status e Resposta
1. Inicialização Assíncrona
As tarefas de gravação em nuvem são assíncronas. A API responderá imediatamente com um burnId assim que a tarefa for aceita pelo cluster de renderização.
Use o Endpoint de Status de Exportação para consultar o progresso e a URL final do vídeo.
{ "success": true, "burnId": "brnc_abc123", "status": "running" }
2. Rastreamento e Recuperação
Para obter o resultado final, consulte o status do projeto usando o burnId recebido durante a inicialização:
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"
}'Quando terminar, o status mudará para completed e uma resultUrl (o vídeo para download) será fornecida.
{ "status": "completed", "resultUrl": "https://cdn.b2.com/video.mp4" }
Códigos de Erro
| Status | Código do Erro | Descrição |
|---|---|---|
| 400 | missing_parameter | projectId é obrigatório. |
| 400 | missing_video | O projeto não tem vídeo de origem anexado. |
| 401 | unauthorized | Chave de API ausente ou inválida. |
| 403 | insufficient_balance | Créditos insuficientes para a duração do vídeo. |
| 404 | not_found | O ID do Projeto não existe. |
| 500 | burn_submission_failed | O cluster de renderização está com capacidade máxima ou inacessível. |
| 500 | export_error | Ocorreu um erro durante o processamento das legendas. |
| 500 | server_error | Erro interno inesperado do servidor. |