VTT

Qu’est-ce qu’un fichier VTT ?

Le format de sous-titres qu’attend la vidéo HTML5. Un SRT avec un en-tête et des possibilités de style.

Ce qu’est VTT

VTT est un format texte que n’importe quel éditeur ouvre. Il est utilisé pour le sous-titrage et le web.

L’extension est .vtt et le nom complet WebVTT. L’un et l’autre comptent moins que ce que le fichier peut contenir, et c’est le sujet du reste de cette page.

D’où vient VTT

W3C l’a publié en 2010. La spécification est WebVTT.

L’âge est utile à connaître pour une raison pratique : plus un format est ancien, plus les programmes ont eu le temps de l’apprendre.

La spécification est publique

Elle est publiée intégralement : n’importe qui peut l’implémenter à partir du document plutôt qu’en l’observant, et c’est pourquoi ce format apparaît dans tant de programmes et pourquoi des fichiers écrits il y a vingt ans s’ouvrent encore. Une spécification publiée n’est pas pour autant libre de redevances : quand un format enveloppe un codec, les brevets sont une question à part, que la norme ne tranche pas.

Rien n’est jeté

VTT enregistre son contenu à l’identique. Le réenregistrer ne change rien : vous pouvez l’ouvrir, le modifier et le réenregistrer autant de fois que vous voulez sans accumuler de dégâts, et c’est ce qui en fait un format de travail plutôt qu’un format de livraison.

Ce qui ouvre VTT

VLC et Subtitle Edit le lisent, comme la plupart des programmes du même genre.

Quand un fichier ne s’ouvre pas, le format est rarement en cause : le plus souvent, c’est le programme qui est plus ancien que lui. Convertir vers quelque chose de plus ancien est le contournement fiable, et c’est à cela que sert le reste de ce site.

L’ouvrir dans un navigateur

Tous les navigateurs actuels le lisent.

Vous pouvez donc le poser sur une page ou l’attacher à un message sans vous demander ce que le destinataire a installé.

C’est un format de travail

VTT est fait pour être ouvert et modifié. Gardez le fichier dans ce format tant que le travail dure, et exportez depuis lui chaque fois qu’une version finie est nécessaire.

Le format qu’attend le navigateur

L’élément vidéo HTML reçoit ses sous-titres par un élément track pointant vers un fichier VTT, et c’est le seul format de sous-titres qu’il accepte. Ni SRT, ni ASS — un navigateur à qui on donne l’un ou l’autre l’ignore. Ce fait unique explique la majorité du trafic qui arrive sur cette page : quelqu’un a des sous-titres, les a placés à côté d’une vidéo sur une page web, et rien n’apparaît, et le diagnostic correct n’a rien d’évident pour qui n’a pas vu le comportement du navigateur avec d’autres formats.

Le format lui-même est délibérément proche de SubRip, ce qui rend la conversion triviale. Les repères sont numérotés facultativement plutôt qu’obligatoirement, les horodatages utilisent un point avant les millisecondes au lieu d’une virgule, et le fichier doit commencer par le mot WEBVTT sur sa propre première ligne. Cet en-tête n’est pas une décoration — un fichier sans lui est rejeté sans autre forme de procès, et c’est aussi pour cela qu’un fichier qui commence par un BOM, par un en-tête XML, ou par un commentaire mal placé est refusé en silence alors que tout le reste est correct. La spec autorise un en-tête plus riche avec des métadonnées (Kind, Language, Label), mais aucun navigateur n’interprète ces champs et il n’y a aucune raison de les remplir.

Pourquoi les sous-titres n’apparaissent pas

Quatre causes, dans l’ordre où il vaut la peine de les vérifier. L’en-tête WEBVTT manque, en général parce que le fichier a été produit en renommant un SRT. Les horodatages utilisent encore des virgules, pour la même raison. L’élément track n’a pas ses attributs kind et srclang, ou n’a pas d’attribut default et le spectateur n’a jamais activé les sous-titres. Ou — celle qui fait perdre le plus de temps — le fichier est servi depuis une origine différente sans les en-têtes cross-origin corrects, et le navigateur le refuse silencieusement.

Ce dernier cas mérite qu’on s’y arrête, parce qu’il ne produit aucune erreur visible. La vidéo se lit, le menu des sous-titres est vide, et rien dans la page ne suggère pourquoi. Un VTT servi depuis la même origine que la page l’évite entièrement, ce qui est la raison la plus simple d’héberger les sous-titres à côté de la vidéo plutôt que sur un domaine d’actifs séparé.

Réglages de repère : position, alignement et taille

Chaque repère peut porter des réglages après son horodatage — une position verticale, un alignement horizontal, une largeur, un numéro de ligne. C’est ce que le SRT n’a aucun moyen d’exprimer, et c’est la raison pratique de préférer le VTT pour tout ce qui dépasse la transcription brute.

L’application habituelle consiste à écarter un sous-titre du chemin. Les sous-titres se placent par défaut en bas, c’est-à-dire exactement là où les diffuseurs placent leurs bandeaux et où le lecteur vidéo place ses propres commandes. Un réglage de ligne qui pousse un repère en haut pendant ces quelques secondes tient en deux mots dans le fichier et résout un problème qu’aucun style ailleurs ne peut résoudre.

Le style, et ses limites

Le VTT autorise quelques balises en ligne — gras, italique, souligné — et des balises de voix nommant le locuteur, ce qui est la façon dont une transcription distingue deux personnes sans écrire leurs noms dans le texte. Un bloc de style à l’intérieur du fichier, ou du CSS dans la page ciblant le pseudo-élément de repère, peut ensuite définir la police, la couleur et le fond.

Ce que les navigateurs honorent réellement varie, et c’est la partie de la spécification dont l’implémentation est la plus faible. Présumez que l’italique et la distinction des locuteurs fonctionneront partout et traitez tout ce qui va au-delà comme un enrichissement. Une piste de sous-titres qui devient illisible quand le style est ignoré a été conçue contre le format plutôt qu’avec lui.

Chapitres, descriptions et métadonnées

Un fichier VTT n’est pas obligé de contenir des sous-titres. L’élément track possède un attribut kind, et les autres valeurs sont réellement utiles : chapters produit une liste navigable de sections dans les lecteurs qui le supportent, descriptions porte le texte de l’audiodescription pour les lecteurs d’écran, et metadata porte des repères arbitraires auxquels du JavaScript peut réagir au fil de la lecture.

Ce dernier cas est la façon dont on construit des transcriptions interactives, des diapositives synchronisées et des annotations temporelles. Les repères se déclenchent quand la tête de lecture les atteint, la page fait ce qu’elle veut avec eux, et rien n’est affiché à moins que la page ne l’affiche. C’est un petit système d’ordonnancement caché dans un format de sous-titres.

Sous-titres pour sourds et malentendants, sous-titres pour traduction, et la différence juridique

L’élément track distingue les sous-titres pour sourds et malentendants (captions) des sous-titres de traduction (subtitles), et la distinction n’est pas de la pédanterie. Les sous-titres de traduction présupposent que le spectateur entend et traduit le dialogue. Les sous-titres pour sourds et malentendants présupposent que le spectateur n’entend pas et incluent donc les informations non parlées — une porte qui claque, de la musique qui démarre, qui parle hors champ.

Pour la plupart des organismes du secteur public et un nombre croissant d’entreprises, les sous-titres pour sourds et malentendants sur une vidéo préenregistrée sont une exigence plutôt qu’une attention, au titre du RGAA et de la législation sur l’accessibilité qui s’y réfère. Une piste marquée comme captions qui ne contient qu’un dialogue traduit satisfait le balisage et non l’obligation, ce qui est une distinction que les auditeurs remarquent. En France, l’Arcom et les obligations du secteur audiovisuel ajoutent une couche supplémentaire, et un service qui diffuse de la vidéo à destination du public est en général tenu de proposer une version sous-titrée accessible, distincte d’une traduction.

D’où viennent les fichiers VTT

De la transcription automatique, en majorité. Chaque grande plateforme et la plupart des services de transcription exportent en WebVTT, et la sortie automatique est suffisamment bonne pour valoir la peine d’être corrigée et pas assez bonne pour être publiée sans relecture — les noms propres, les chevauchements de parole et le vocabulaire technique sont là où elle échoue, et ce sont en général les mots qui portent le sens.

L’autre voie est la conversion. L’édition de sous-titres est bien mieux prise en charge en SRT par les logiciels de sous-titrage de bureau, donc un flux de travail courant consiste à corriger et caler en SRT, puis à convertir en VTT au moment de la publication. C’est une division du travail sensée tant qu’un seul fichier est la source et que l’autre est généré, plutôt que deux copies qui dérivent en silence. Le point qui fait souvent déraper ce flux est la gestion des changements de version : si quelqu’un modifie le SRT après que le VTT a été généré, et qu’une seconde conversion n’est pas faite, le site diffuse des sous-titres qui ne sont plus ceux de la vidéo, et c’est un cas réel qui passe souvent inaperçu jusqu’à ce qu’un spectateur le signale.

Les données, au même endroit

Identifiants et origine du format VTT.
Extension.vtt
Type de médiatext/vtt
Publié parW3C
Première publication2010
SpécificationWebVTT

Fichiers VTT : questions courantes

Pourquoi mes sous-titres ne s’affichent-ils pas sur ma page web ?

Vérifiez quatre choses dans l’ordre : le fichier commence par WEBVTT sur sa propre ligne, les horodatages utilisent un point plutôt qu’une virgule avant les millisecondes, l’élément track a kind et srclang définis, et le fichier est servi depuis la même origine que la page ou avec les bons en-têtes cross-origin. Le dernier cas échoue silencieusement.

Peut-on renommer un fichier SRT en .vtt ?

Non. Le fichier doit commencer par une ligne d’en-tête WEBVTT et les horodatages utilisent un point plutôt qu’une virgule avant les millisecondes. Le renommage produit un fichier que le navigateur rejette. La conversion prend un instant et corrige les deux.

Quelle est la différence entre VTT et SRT ?

Le VTT est ce qu’acceptent les navigateurs pour la vidéo sur une page web, et il ajoute le positionnement, l’alignement, les voix de locuteur et le style. Le SRT est ce qu’attendent les lecteurs de bureau, les télévisions et les plateformes de téléversement, et il n’a aucun style. Les structures sont par ailleurs assez proches pour que la conversion soit directe.

Comment déplacer un sous-titre loin du bas de la vidéo ?

Ajoutez des réglages de repère après l’horodatage — un réglage de ligne déplace le repère verticalement et un réglage d’alignement le déplace horizontalement. C’est la principale chose que le VTT peut exprimer et que le SRT ne peut pas, et c’est ainsi qu’on écarte les sous-titres du texte à l’écran et des commandes du lecteur.

Quelle est la différence entre sous-titres et sous-titres pour sourds et malentendants ?

Les sous-titres de traduction présupposent que le spectateur entend et portent le dialogue. Les sous-titres pour sourds et malentendants présupposent que le spectateur n’entend pas et décrivent en plus le son — qui parle, ce qu’on entend hors champ, quand la musique démarre. Les exigences d’accessibilité demandent des sous-titres pour sourds et malentendants, et une piste étiquetée comme telle ne contenant que du dialogue ne les satisfait pas.

Un fichier VTT peut-il faire autre chose que des sous-titres ?

Oui. Le même format porte des chapitres, des audiodescriptions et des métadonnées temporelles arbitraires, sélectionnés par l’attribut kind de l’élément track. Les repères de métadonnées se déclenchent au fil de la lecture et peuvent être captés par JavaScript, ce qui est la façon dont on construit des transcriptions interactives et des annotations temporelles.