API d'incrustation Cloud
Soumettez vos projets à notre cluster de rendu haute performance pour la génération de vidéos avec sous-titres incrustés et stylisation professionnelle.
/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"
}'Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| Paramètres de base | |||
projectId | String | Yes | L'identifiant unique du projet contenant la vidéo et les sous-titres. |
resolution | String | No | Résolution de sortie vidéo souhaitée. Options : original, 1080p, 720p, 480p | Par défaut : original |
fileName | String | No | Nom personnalisé pour le fichier MP4 généré. |
language | String | No | Langue cible pour les sous-titres incrustés. Par défaut : Langue active du projet |
| Support multi-langues (Sous-titres doubles) | |||
languages | Array | No | Configurations pour plusieurs pistes de sous-titres dans une seule vidéo. Limite : Max 3 langues |
- language | String | Yes* | Le code pour cet emplacement de langue (ex : 'zh' ou 'original'). |
- lineBreakRules | Object | No | Surcharges de segmentation par langue. |
- styleSettings | Object | No | Style par langue (Crucial pour le positionnement des sous-titres doubles). |
| Règles de segmentation (lineBreakRules) | |||
lineBreakRules | Object | No | Objet imbriqué pour la logique de segmentation des sous-titres. |
- maxChars | Number | No | Nombre maximal de caractères autorisés par ligne. Plage : 5 - 100 | Par défaut : 45 |
- maxWords | Number | No | Nombre maximal de mots autorisés par ligne de sous-titre. Plage : 1 - 20 | Par défaut : 10 |
- balanceLines | Boolean | No | Équilibre la longueur des lignes pour les sous-titres multi-lignes. Par défaut : true |
- sentenceSplit | Boolean | No | Préfère couper les lignes à la fin des phrases. Par défaut : true |
- gapThreshold | Number | No | Écart maximal (secondes) entre les mots sur une ligne. Plage : 0.1 - 2.0 | Par défaut : 0.4 |
| Bases du style (styleSettings) | |||
uppercase | Boolean | No | Forcer tout le texte en majuscules. |
styleSettings | Object | No | Objet imbriqué pour les surcharges de style visuel. |
- preset | String | No | Appliquer un style prédéfini comme base. Options : standard-stream, classic-apple, etc. |
- fontSize | Number | No | Taille de la police en ratio par rapport à la hauteur de la vidéo. Par défaut : 0.045 |
- fontFamily | String | No | Nom de la police standard utilisée pour le rendu. Par défaut : Arial |
- bold | Boolean | No | Appliquer un poids gras au texte. Par défaut : false |
- italic | Boolean | No | Appliquer un style italique au texte. Par défaut : false |
| Couleurs & Bordures | |||
- primaryColor | Hex | No | Code hexadécimal de la couleur principale du texte. Par défaut : #FFFFFF |
- secondaryColor | Hex | No | Couleur secondaire (utilisée pour les effets karaoké). Par défaut : #00FFFF |
- outlineColor | Hex | No | Couleur du contour du texte. Par défaut : #000000 |
- outline | Number | No | Épaisseur du contour (Ratio par rapport à la hauteur). Par défaut : 0.002 |
- shadow | Number | No | Profondeur de l'ombre (Ratio par rapport à la hauteur). Par défaut : 0.001 |
| Positionnement (Ratios 0-1) | |||
- alignment | Number | No | Code d'alignement ASS (1-9). Bas-Centre est 2. Plage : 1 - 9 | Par défaut : 2 |
- posX | Number | No | Position horizontale (0 = Gauche, 1 = Droite). Par défaut : 0.5 |
- posY | Number | No | Ratio de position verticale (0 = Haut, 1 = Bas). Par défaut : 0.88. |
- marginV | Number | No | Ratio de marge verticale depuis le bas/haut. Par défaut : 0.056. |
| Animation & Effets | |||
- fadeIn | Number | No | Durée du fondu d'entrée en millisecondes. |
- fadeOut | Number | No | Durée du fondu de sortie en millisecondes. |
- karaoke | String | No | Type de balise karaoké (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"
}
}
]
}'Statut & Réponse
1. Initialisation asynchrone
Les tâches d'incrustation cloud sont asynchrones. L'API répondra immédiatement avec un burnId une fois la tâche acceptée par le cluster de rendu.
Utilisez le Point de terminaison de statut d'exportation pour suivre la progression et obtenir l'URL finale de la vidéo.
{ "success": true, "burnId": "brnc_abc123", "status": "running" }
2. Suivi & Récupération
Pour obtenir le résultat final, interrogez le statut du projet en utilisant le burnId reçu lors de l'initialisation :
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"
}'Une fois terminé, le statut passera à completed et une resultUrl (la vidéo téléchargeable) sera fournie.
{ "status": "completed", "resultUrl": "https://cdn.b2.com/video.mp4" }
Codes d'erreur
| Statut | Code d'erreur | Description |
|---|---|---|
| 400 | missing_parameter | projectId est requis. |
| 400 | missing_video | Le projet n'a aucune vidéo source attachée. |
| 401 | unauthorized | La clé API est manquante ou invalide. |
| 403 | insufficient_balance | Crédits insuffisants pour la durée de la vidéo. |
| 404 | not_found | L'identifiant du projet n'existe pas. |
| 500 | burn_submission_failed | Le cluster de rendu est à pleine capacité ou inaccessible. |
| 500 | export_error | Une erreur est survenue lors du traitement des sous-titres. |
| 500 | server_error | Erreur interne inattendue du serveur. |