Incruster des sous-titres
Incruster des sous-titres, c’est graver un fichier SRT dans l’image : le texte devient une partie du film, visible sur tout lecteur et sur tout réseau social, même là où les sous-titres séparés ne s’affichent pas. Vous fournissez la vidéo et le fichier ; l’outil rend la version incrustée.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Sous-titres gravés contre fichier séparé
Un fichier de sous-titres séparé se désactive et dépend du lecteur ; l’incrustation, elle, fait du texte un élément de l’image. L’avantage est la certitude : sur un mur Instagram, dans un e-mail ou sur un écran d’accueil qui coupe le son, les sous-titres restent visibles sans réglage. La contrepartie est qu’ils ne s’enlèvent plus et ne se traduisent plus après coup. Gravez donc une version relue et définitive.
Ce qu’il faut fournir
Deux éléments : la vidéo et un fichier de sous-titres SRT déjà synchronisé. Vous choisissez la police, la taille et la position basse habituelle, et l’outil réencode la vidéo avec le texte apposé. Le minutage de votre fichier est respecté tel quel, réplique après réplique. Si vous n’avez pas encore de sous-titres, l’outil de génération produit d’abord le SRT, que vous relisez avant de l’incruster ici de façon définitive.
Formats et limites
Les conteneurs vidéo courants sont acceptés — MP4, MOV, MKV — jusqu’à 500 Mo et 60 min par fichier. La sortie est une vidéo MP4 lisible partout, sur téléphone comme sur ordinateur. Une capsule d’une minute comme un module de trois quarts d’heure restent dans ces bornes. Pour une vidéo plus longue ou plus lourde, découpez-la avant l’incrustation, puis rassemblez les parties une fois le texte gravé sur chacune.
Tarif et mise en service
L’incrustation se paie à l’usage, en dollars US: $0.077 par requête, puis $0.0045 par minute de vidéo. Une vidéo de dix minutes revient à environ $0.12, calculée sur sa durée réelle, sans abonnement. La capacité est en cours de déploiement: le prix est affiché, l’exécution ouvrira prochainement, depuis cette page puis via l’API, avec une arrivée ensuite sur mobile, e-mail et Telegram.
Cas d’usage
Format vertical sans son
Une créatrice grave les sous-titres de ses vidéos verticales : lues sans le son dans le fil, elles gardent leur message même quand personne n’active l’audio.
Vidéo envoyée par e-mail
Atelier Garnier SARL diffuse une présentation produit en pièce jointe : les sous-titres incrustés s’affichent quel que soit le logiciel de lecture du destinataire.
Affichage en boutique
Une vidéo tourne en boucle sur un écran de vitrine, sans haut-parleur ; le texte gravé porte seul le message aux passants.
Questions fréquentes
Pourrai-je retirer les sous-titres plus tard ?
Non. Une fois gravés dans l’image, les sous-titres en font partie et ne s’enlèvent plus. Conservez la vidéo d’origine si vous voulez garder une version sans texte.
Dois-je fournir moi-même le fichier de sous-titres ?
Oui, un fichier SRT synchronisé est nécessaire pour l’incrustation. Si vous n’en avez pas, générez-le d’abord à partir de la bande-son, puis incrustez-le.
Puis-je choisir la police et la taille du texte ?
Oui. La police, la taille et le placement en bas de l’image sont réglables pour rester lisibles selon le format de la vidéo, vertical ou horizontal.
Combien coûte l’incrustation ?
Le tarif est de $0.077 par requête, plus $0.0045 par minute. Dix minutes reviennent à environ $0.12, en dollars US, sans abonnement.
Ma vidéo est-elle supprimée après le traitement ?
Oui. Le fichier passe par nos serveurs le temps du réencodage, via un transfert chiffré, puis il est effacé. L’incrustation modifie l’image et demande donc un traitement côté serveur.
L’outil est-il déjà disponible ?
Il est en cours de déploiement. Le tarif est publié ; l’exécution sera activée sous peu, d’abord sur cette page, ensuite via l’API.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/video/burn-subtitles \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/video/burn-subtitles", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/burn-subtitles",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/burn-subtitles", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/burn-subtitles", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"audio": "https://ejemplo.com/audio.mp3"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.burn_subtitles",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |