Générer des sous-titres vidéo
Générer des sous-titres consiste à écouter la parole d’une vidéo et à produire un fichier horodaté — au format SRT ou VTT — que le lecteur affiche par-dessus l’image. Chaque réplique reçoit son minutage, prêt à charger sur une plateforme ou à retoucher avant diffusion.
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.
Ce que vous récupérez
Le résultat n’est pas une vidéo, mais un fichier texte de sous-titres : chaque ligne porte un numéro, un intervalle de temps et la réplique correspondante. Le format SRT convient aux plateformes vidéo et aux lecteurs de bureau ; le VTT vise la lecture web. Ce fichier reste séparé de la vidéo, ce qui vous laisse corriger une faute, ajuster un minutage ou traduire une ligne sans jamais réencoder l’image ni retoucher le fichier d’origine.
SRT ou VTT, lequel choisir
Pour déposer une vidéo sur une plateforme de partage ou l’ouvrir dans un logiciel de montage, le SRT est le format le plus universel. Pour une lecture directement dans une page web, via la balise vidéo du navigateur, le VTT est prévu pour cet usage et gère quelques options de mise en forme. En cas de doute, le SRT reste le choix sûr : la plupart des outils l’acceptent et savent le convertir si besoin.
Le tarif, à la minute
Le sous-titrage se paie à l’usage, en dollars US: $0.079 par requête, puis $0.01 par minute de vidéo. Une vidéo de dix minutes revient à environ $0.18, une demi-heure à environ $0.38, toujours calculés sur la durée réelle du fichier, sans arrondi. Pas d’abonnement: vous réglez le fichier que vous générez, une seule fois, et le prix ne change pas selon le canal utilisé.
Disponibilité
Le générateur de sous-titres est en cours de déploiement. Le prix est arrêté et affiché ; l’exécution, elle, n’est pas encore ouverte au public, et nous préférons l’annoncer franchement plutôt que de laisser croire à un service déjà actif. L’outil se lancera depuis cette page en premier lieu, puis via l’API, avant une arrivée prévue sur mobile, e-mail et Telegram, avec le même tarif partout.
Cas d’usage
Vidéo pour les réseaux
Studio Lumen SAS sous-titre une capsule promotionnelle : la majorité des vues se font sans le son, les sous-titres rendent le message lisible d’emblée.
Accessibilité
Une association ajoute un fichier SRT à ses conférences filmées pour les personnes sourdes ou malentendantes, une exigence désormais courante des financeurs publics.
Cours en ligne
Élodie Garnier fournit le VTT de ses modules vidéo afin que les apprenants suivent le texte à l’écran et retrouvent un passage précis par la lecture.
Questions fréquentes
Quelle est la différence avec l’incrustation des sous-titres ?
Ici, vous obtenez un fichier séparé (SRT ou VTT) que le lecteur superpose et que l’on peut désactiver ou corriger. L’incrustation, elle, grave les sous-titres dans l’image de façon définitive.
Puis-je corriger le texte des sous-titres ensuite ?
Oui. Le fichier généré est du texte modifiable : vous ouvrez le SRT ou le VTT dans un simple éditeur pour relire, corriger une faute ou ajuster un minutage avant diffusion.
Combien coûte le sous-titrage d’une vidéo ?
Le tarif est de $0.079 par requête, plus $0.01 par minute. Dix minutes reviennent à environ $0.18, facturés sur la durée réelle du fichier, en dollars US.
Ma vidéo est-elle conservée sur vos serveurs ?
Non. Le fichier transite le temps de produire les sous-titres, par un transfert chiffré, puis il est effacé. Le sous-titrage automatique demande un traitement côté serveur, que nous assumons sans le déguiser.
Le service est-il déjà utilisable ?
Pas encore : il est en cours de déploiement. Le tarif est publié et l’exécution sera ouverte sous peu, d’abord sur cette page, puis via l’API.
Faut-il créer un compte ?
Non. Il n’y a ni compte ni inscription : l’achat se fait directement, à l’usage, quand la capacité sera ouverte.
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/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/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/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/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/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.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. |
422 | task_failed | La tâche a échoué : elle ne vous est pas facturée. |