Convertir SRT en VTT

Vous pouvez convertir SRT en VTT gratuitement et sans compte : déposez le fichier ci-dessus et, une ou deux secondes plus tard, le résultat est prêt à télécharger. La conversion se fait dans votre propre navigateur : le fichier n’est donc jamais téléversé. Cela marche sous Windows, macOS et Linux comme sur iPhone et Android, et continue de marcher si vous coupez le réseau.

  • Où cela s’exécute Dans votre navigateur. Le fichier n’est pas téléversé.
  • Sans perte Rien ne se perd. VTT contient exactement ce que contenait SRT.
  • Limite de taille Jusqu’à 100 Mo par fichier, gratuitement et sans compte.

Jusqu’à 100 fichiers à la fois. Les formats mélangés ne posent pas de problème.

Pourquoi un navigateur ne lira pas votre fichier SRT

L’élément HTML video prend ses sous-titres par une balise track, et le seul format de sous-titres que cette balise accepte est WebVTT. Donnez un SRT à un navigateur et il ne se passe rien : pas d’erreur console, pas d’entrée dans le menu des sous-titres, juste une vidéo qui joue sans légendes. Ce silence est ce qui amène la plupart des gens à cette conversion, parce que le fichier est correct, le balisage est correct, et le format est la seule chose qui ne va pas.

Les deux formats étant proches parents rend l’échec plus déroutant qu’il ne le mérite. Structurellement, un fichier WebVTT est un fichier SubRip avec une ligne d’en-tête et un séparateur décimal différent. Le navigateur n’élève aucune objection substantielle ; il refuse un fichier à deux éditions mécaniques d’être valide, et ce convertisseur accomplit les deux.

Les deux différences d’orthographe entre SRT et VTT

La première est l’horodatage. SubRip écrit 00:01:32,500 avec une virgule avant les millisecondes ; WebVTT écrit 00:01:32.500 avec un point. Un caractère par horodatage, deux fois par réplique, et un parseur qui trouve la virgule arrête de lire. La majeure partie du monde écrit les décimales avec une virgule, ce qui explique pourquoi les fichiers retouchés à la main attrapent ce défaut si régulièrement.

La seconde est l’en-tête. Un fichier WebVTT doit commencer par le mot WEBVTT sur sa propre première ligne, avant tout le reste. Ce n’est pas de la documentation et ce n’est pas facultatif — un fichier sans cela est refusé sans condition. La sortie ici s’ouvre par WEBVTT suivi d’une ligne vide, et écrit chaque horodatage en heures, minutes, secondes et millisecondes avec les heures complétées par des zéros et un point devant la fraction.

Renommer un SRT en .vtt est l’erreur qui mérite d’être nommée

C’est la première chose que presque tout le monde tente, et c’est compréhensible : le fichier est du texte, les structures se ressemblent, et changer une extension prend une seconde. Cela ne peut pas marcher non plus, parce qu’aucune des deux différences ci-dessus ne vit dans le nom de fichier. Le résultat est un fichier qui prétend être WebVTT, est servi comme WebVTT, et est écarté par le parseur dès la première ligne.

Ce qui rend cela coûteux, c’est que l’échec ressemble à autre chose. Les développeurs qui ont renommé le fichier passent ensuite à vérifier la balise track, le chemin du fichier, le type MIME et le lecteur, dont aucun n’est le problème. Convertir proprement retire la possibilité, ce qui vaut la peine d’être fait avant de passer un après-midi sur le balisage.

Les numéros de répliques du SRT sont supprimés au passage vers VTT

SubRip numérote chaque réplique, en commençant à un, sur la ligne au-dessus de l’horodatage. Ce convertisseur lit ces numéros, ne s’en sert pas, et ne les écrit pas dans le VTT. La sortie est un en-tête, puis une ligne vide, puis des blocs horodatage-texte séparés par des lignes vides.

C’est une décision de conception plutôt qu’une perte. WebVTT traite la ligne avant l’horodatage comme un identifiant facultatif de réplique, pas comme un compteur, et rien dans un navigateur ou un lecteur n’en dépend. Tout ce que vous avez réellement besoin d’attacher à une réplique individuelle — une position verticale, un alignement, une largeur — est un réglage de réplique écrit après l’horodatage de fin, et un identifiant numérique ne serait que du bruit devant.

Italiques et autres balises inline passent sans modification

Le texte de chaque réplique est copié tel quel du SRT dans le VTT. Rien n’est supprimé, échappé ni réinterprété. Les deux formats écrivent italique et gras de la même manière, avec les mêmes balises entre chevrons, donc un fichier qui s’en sert pour l’emphase garde cette emphase sur une page web.

La conséquence mérite d’être vérifiée avant publication. Un code spécifique à un lecteur que certains logiciels de bureau honorent dans un SRT — une balise de positionnement de style ASS entre accolades est la plus courante — survit lui aussi tel quel, et un navigateur n’a aucune idée de ce que cela signifie. Il l’affichera comme des caractères littéraux au milieu d’une légende. Si votre SRT vient d’un fansub ou d’un flux media-center, lisez les premières répliques de la sortie.

Brancher le VTT terminé dans une balise track

La balise track va à l’intérieur de l’élément video, avec src pointant vers le fichier .vtt, kind défini, srclang défini au code de langue, et un label qui devient l’entrée dans le menu des sous-titres. Ajoutez l’attribut default si les légendes doivent être activées au démarrage de la vidéo, parce que sinon le spectateur doit trouver le menu et la plupart ne le feront pas.

L’attribut kind est celui auquel il vaut la peine de penser plutôt que de copier. Les sous-titres partent du principe d’un spectateur qui entend et traduit le dialogue ; les captions partent du principe d’un spectateur qui n’entend pas et décrivent donc aussi les sons non parlés. Là où les captions sont une obligation d’accessibilité plutôt qu’un confort, une track marquée comme captions qui ne contient que le dialogue traduit satisfait le balisage et pas l’exigence.

Le VTT se charge et le menu reste vide

Si l’en-tête et les horodatages sont corrects et que les légendes n’apparaissent toujours pas, les causes restantes sont dans la page plutôt que dans le fichier. La balise track peut manquer kind ou srclang, ou bien le spectateur n’a jamais activé les sous-titres parce qu’il n’y a pas d’attribut default nulle part.

Celle qui coûte le plus de temps est l’origine croisée. Un VTT servi depuis une origine différente de celle de la page — un domaine d’assets séparé, un bucket, un nom d’hôte CDN — est refusé à moins que la réponse porte les en-têtes cross-origin corrects, et le refus est silencieux. Servir le fichier de sous-titres depuis la même origine que la page élimine toute la classe de problèmes, et le moyen le plus rapide de discriminer le reste est d’ouvrir l’URL .vtt directement dans un onglet : si le fichier s’affiche en texte, le chemin et le serveur sont bons et la faute est dans le balisage ou l’origine, et s’il se télécharge ou renvoie 404, rien de ce qui concerne la balise track n’aurait jamais compté.

Gardez le SRT comme maître et générez le VTT

Les éditeurs de sous-titres, les services de transcription et l’outillage de bureau sont meilleurs en SRT que dans tout autre format de ce site ; c’est le format que tout l’écosystème suppose. Corriger le texte et le timing là, et convertir au moment de la publication, est une saine division du travail.

Le mode d’échec à éviter est de maintenir les deux. Deux fichiers qui ont commencé identiques dérivent la première fois que quelqu’un corrige une faute de frappe dans celui qu’il a ouvert, et la dérive est invisible jusqu’à ce qu’un spectateur lise une légende que la transcription ne contient pas. Traitez le VTT comme une sortie de build : régénérez-le, ne l’éditez jamais.

Servir le .vtt pour que le navigateur l’accepte

Le fichier est produit avec le type média WebVTT, text/vtt, et le serveur qui finit par l’héberger doit envoyer la même chose. La plupart des hôtes statiques mappent maintenant correctement l’extension .vtt, mais un nombre surprenant de configurations plus anciennes retombent sur un type binaire générique ou sur text/plain, et un navigateur à qui on remet un fichier de légendes sous le mauvais type est en droit de le refuser. Si l’en-tête et les horodatages sont bons et que la track ne se charge toujours pas, les en-têtes de réponse sont le prochain endroit à regarder et le plus rapide à vérifier.

Deux petits détails de déploiement évitent des ennuis plus tard. Les fichiers de légendes sont minuscules et changent rarement, donc ils se mettent bien en cache, et une longue durée de cache sur un fichier que vous corrigerez ensuite est une erreur de légende qui persiste chez un spectateur après que le correctif a été livré — versionnez le nom de fichier plutôt que de vous fier à une purge. Et gardez l’extension en .vtt même quand un pipeline de build veut le fingerprinter, parce que certains lecteurs et validateurs se basent encore sur l’extension plutôt que sur le type média pour décider si une track mérite d’être récupérée.

Où tourne cette conversion SRT vers VTT

Dans votre navigateur, en JavaScript, sans téléversement et sans file d’attente. Le fichier est lu comme du texte, analysé en une liste de répliques avec des timing en millisecondes, et réécrit sous forme WebVTT. Aucun serveur n’est impliqué, ce qui explique pourquoi c’est instantané et pourquoi il n’y a pas d’inscription.

Le plafond gratuit est 100 Mo et aucun fichier de sous-titres ne s’en approchera jamais — un long métrage fait quelques dizaines de kilooctets de texte. La garantie la plus utile est que la sortie est écrite en UTF-8. SubRip n’a aucun moyen de déclarer son propre encodage, ce qui explique pourquoi les caractères accentués tournent mal si souvent ; engager la sortie en UTF-8 est ce qu’attend un navigateur et tranche la question au point de conversion.

Comment convertir SRT en VTT

  1. Déposez votre fichier SRT sur cette page, ou cliquez pour en choisir un.
  2. Choisissez VTT comme destination. La conversion se fait dans votre navigateur et le fichier n’est pas téléversé.
  3. Téléchargez le fichier VTT terminé.

SRT et VTT : ce qui change

SRT face à VTT
SRTVTT
Nom completSous-titres SubRipWebVTT
Extension de fichier.srt.vtt
Type de médiaapplication/x-subriptext/vtt
Première publication20002010
Publié parW3C
SpécificationWebVTT
LicenceStandard ouvertStandard ouvert
Situation actuelleActuelActuel
S’ouvre dans un navigateurAucun navigateurTous les navigateurs
Envisagé à la placeASSASS

Ce qui est conservé

Rien n’est écarté. SRT et VTT enregistrent leur contenu sans perte : la conversion change l’emballage, pas la qualité, et elle peut être répétée sans que les dégâts s’accumulent.

Ouvrir le résultat

VTT s’ouvre dans tous les navigateurs actuels. SRT va encore moins loin. Si le fichier part sur une page web ou dans un formulaire, c’est souvent toute la raison de la conversion.

VLC et Subtitle Edit lisent aussi bien SRT que VTT : vous pouvez comparer le résultat à l’original sans second logiciel.

À quoi sert chaque format

VTT vient de W3C et date de 2010, décrit par WebVTT. VLC et Subtitle Edit le lisent.

De SRT à VTT : questions fréquentes

Mon fichier SRT est-il téléversé quelque part ?

Non. Cette conversion se fait entièrement dans votre navigateur : le fichier ne quitte donc pas votre appareil. Vous pouvez le vérifier vous-même — ouvrez l’onglet réseau des outils de développement et convertissez quelque chose. Vous verrez la page elle-même et les requêtes de statistiques et de publicité qui financent ce service, et pas une seule qui transporte votre fichier.

Convertir SRT en VTT est-il gratuit ?

Oui. Pas de compte, pas de filigrane et pas de quota journalier à dépenser : cela tourne sur votre propre machine, vous pouvez donc revenir autant de fois que vous voulez. Le navigateur traite des fichiers jusqu’à 100 Mo, 100 à la fois.

Y a-t-il une perte de qualité en convertissant SRT en VTT ?

Non. VTT enregistre le même contenu sans rien jeter : le résultat est identique en qualité à l’original.

La conversion de SRT à VTT est-elle sans perte ?

Rien n’est écarté. SRT et VTT enregistrent leur contenu sans perte : la conversion change l’emballage, pas la qualité, et elle peut être répétée sans que les dégâts s’accumulent.

En savoir plus sur ces formats