VTT

¿Qué es un archivo VTT?

El formato de subtítulos que espera el vídeo HTML5. Un SRT con cabecera y con opciones de estilo.

Qué es VTT

VTT es un formato de texto plano que se abre en cualquier editor. Se usa para los subtítulos y la web.

La extensión es .vtt y el nombre completo, WebVTT. Ambos importan menos que lo que el archivo puede contener, y de eso trata el resto de esta página.

De dónde viene VTT

W3C lo publicó en 2010. La especificación es WebVTT.

La edad interesa por un motivo práctico: cuanto más antiguo es un formato, más programas han tenido tiempo de aprenderlo.

La especificación es pública

Está publicada entera, así que cualquiera puede implementarla leyendo el documento en vez de a base de inspeccionar archivos. Por eso aparece en tantos programas, y por eso los archivos escritos hace veinte años siguen abriéndose hoy. Publicada no quiere decir libre de regalías: cuando un formato envuelve un códec, la licencia de las patentes es un asunto aparte que la norma no resuelve.

No se tira nada

VTT guarda su contenido exactamente. Volver a guardarlo no cambia nada, así que puedes abrirlo, editarlo y guardarlo tantas veces como quieras sin acumular daño; eso es lo que lo convierte en un formato de trabajo y no de entrega.

Qué abre VTT

VLC y Subtitle Edit lo leen, y también la mayoría de programas del mismo tipo.

Cuando un archivo no se abre, el formato rara vez es el problema: lo más habitual es que el programa sea anterior al formato. Convertir a algo más antiguo es la salida fiable, y para eso está el resto de este sitio.

Abrirlo en el navegador

Cualquier navegador actual lo lee.

Eso lo convierte en algo que puedes poner en una página o adjuntar a un mensaje sin preguntarte qué tiene instalado el otro lado.

Es un formato de trabajo

VTT está pensado para abrirse y cambiarse. Guarda el archivo en este formato mientras el trabajo siga en marcha y exporta desde él cada vez que haga falta una copia terminada.

El único formato de subtítulos que el navegador acepta

El vídeo de HTML recibe los subtítulos a través de un elemento track que apunta a un archivo VTT, y no admite ningún otro formato. Ni SRT ni ASS: si le entregas cualquiera de los dos, el navegador los ignora. Ese único hecho explica casi todo el tráfico de esta página, porque alguien tiene unos subtítulos, los ha puesto junto a un vídeo en una web y no aparece nada.

El formato se diseñó a propósito muy cerca de SubRip para que convertir fuera trivial. Los cues se numeran de forma opcional en lugar de obligatoria, las marcas de tiempo separan los milisegundos con un punto en vez de con una coma, y el archivo tiene que empezar con la palabra WEBVTT sola en la primera línea. Esa cabecera no es adorno: un archivo sin ella se rechaza sin más.

Cuatro motivos por los que no se ve nada, en orden

Falta la línea WEBVTT, normalmente porque el archivo se hizo renombrando un SRT. Las marcas de tiempo siguen llevando coma, por lo mismo. Al elemento track le faltan los atributos kind y srclang, o no lleva default y el espectador nunca activó los subtítulos. O — la que más tiempo hace perder — el archivo se sirve desde otro dominio sin las cabeceras de origen cruzado correctas y el navegador lo descarta en silencio.

Ese último caso merece un párrafo porque no produce ningún error visible. El vídeo se reproduce, el menú de subtítulos aparece vacío y nada en la página sugiere por qué. Servir el VTT desde el mismo origen que la página lo evita por completo, y es la razón más simple para alojar los subtítulos junto al vídeo en lugar de en un dominio de recursos aparte.

Los ajustes de cue: posición, alineación y ancho

Cada cue puede llevar ajustes después de su marca de tiempo: una posición vertical, una alineación horizontal, un ancho, un número de línea. Es lo que SRT no tiene forma de expresar, y el motivo práctico de preferir VTT para cualquier cosa más trabajada que una transcripción corrida.

La aplicación típica es apartar un rótulo. Los subtítulos van abajo por defecto, que es exactamente donde las televisiones ponen sus faldones y donde el reproductor pone sus propios controles. Un ajuste de línea que suba el cue arriba durante esos segundos son dos palabras en el archivo y resuelve un problema que ninguna hoja de estilos externa puede tocar.

Lo que se puede pintar y lo que conviene no dar por hecho

VTT admite unas pocas etiquetas dentro del texto — negrita, cursiva, subrayado — y etiquetas de voz con el nombre de quien habla, que es como una transcripción distingue a dos personas sin escribir sus nombres en la línea. Un bloque de estilo dentro del propio archivo, o CSS en la página apuntando al pseudoelemento del cue, permiten fijar tipografía, color y fondo.

Lo que cada navegador respeta de verdad varía, y es la parte de la especificación con implementación más floja. Da por seguras la cursiva y la distinción de voces, y trata todo lo demás como una mejora. Un subtitulado que se vuelve ilegible cuando se ignora el estilo está diseñado contra el formato en lugar de con él.

Capítulos, audiodescripción y cues que no se ven

Un archivo VTT no tiene por qué contener subtítulos. El elemento track lleva un atributo kind, y los otros valores son útiles de verdad: chapters produce una lista navegable de secciones en los reproductores que la soportan, descriptions transporta el texto de audiodescripción para lectores de pantalla, y metadata transporta cues arbitrarios a los que el JavaScript de la página puede reaccionar mientras el vídeo avanza.

Ese último es la base de las transcripciones interactivas, de las diapositivas sincronizadas y de las anotaciones temporizadas. Los cues se disparan cuando el cabezal de reproducción los alcanza, la página hace con ellos lo que quiera y no se muestra nada salvo que la página lo muestre. Es un pequeño planificador escondido dentro de un formato de subtítulos.

Subtitular y subtitular para personas sordas no es lo mismo

El elemento track distingue captions de subtitles, y la distinción no es tiquismiquis. Los subtítulos dan por hecho que quien mira oye y lo que necesita es la traducción del diálogo. El subtitulado accesible da por hecho que no oye, y por eso incluye la información que no es habla: una puerta que se cierra, la música que entra, quién habla fuera de plano.

Para las administraciones públicas y para un número creciente de empresas eso es una obligación y no una cortesía, por las WCAG y por la legislación de accesibilidad que las referencia. En España, además, la norma UNE 153010 fija cómo se hace: colores distintos para los personajes principales, identificación de quien habla y descripción de los efectos sonoros relevantes. Una pista marcada como captions que solo contenga diálogo traducido cumple el marcado y no cumple la obligación, y esa diferencia sí la ven las auditorías.

De dónde salen los archivos VTT

De transcripción automática, sobre todo. Todas las plataformas grandes y la mayoría de los servicios de transcripción exportan WebVTT, y la salida de máquina es lo bastante buena como para merecer una corrección y no lo bastante como para publicarla sin leerla: los nombres propios, las voces solapadas y el vocabulario técnico son donde falla, y suelen ser justo las palabras que llevan el significado.

La otra vía es la conversión. Editar subtítulos está mucho mejor resuelto en SRT por el software de escritorio, así que un flujo habitual es corregir y ajustar tiempos en SRT y convertir a VTT en el momento de publicar. Es un reparto sensato mientras uno de los dos archivos sea el maestro y el otro se genere, y no dos copias que se separan poco a poco.

Qué se conserva y qué se pierde al convertir un VTT aquí

Conviene ser explícito, porque afecta justo a lo que hace especial al formato. El conversor trabaja con tres datos por línea: momento de entrada, momento de salida y texto, en milisegundos enteros. Todo lo que no quepa en esa forma desaparece por construcción, y en un VTT lo que no cabe son precisamente los ajustes de cue — line, position, align, size — y los identificadores de cue.

La consecuencia concreta es que un rótulo colocado arriba para no tapar un cartel quemado en la imagen vuelve centrado abajo, encima del cartel. Por eso los pares que parten de VTT no están marcados como conversión exacta, aunque el texto y los tiempos sí lleguen intactos. Si has trabajado la colocación, guarda el VTT como maestro y trata cualquier SRT que salga de él como una copia de trabajo.

Lo que ocurre en las otras direcciones

Desde ASS, cada bloque de anulación entre llaves se elimina al leer, incluida la etiqueta de posicionamiento, así que colocación, tipografías, colores, karaoke y efectos no llegan. Hacia ASS ocurre lo contrario y también hay que saberlo: se inventa un estilo único llamado Default, Arial de cuerpo 48 en blanco, porque el archivo de origen no traía ninguno; y las marcas de tiempo se recortan a centésimas de segundo, hasta nueve milisegundos por extremo.

MicroDVD, el de extensión .sub, cuenta fotogramas en lugar de tiempo, así que la conversión depende de una velocidad de fotogramas que puede no ser la correcta; el control correspondiente parte de 25 fps. Todo esto se hace en el navegador, con un motor escrito a mano y sin dependencias externas, así que ningún archivo de subtítulos se envía a ninguna parte.

Los datos, en un solo sitio

Identificadores y procedencia del formato VTT.
Extensión.vtt
Tipo de mediotext/vtt
Publicado porW3C
Primera publicación2010
EspecificaciónWebVTT

VTT: preguntas de quien está peleando con un vídeo

¿Por qué no salen los subtítulos en mi página web?

Comprueba cuatro cosas por este orden: que el archivo empieza con WEBVTT en su propia línea, que los milisegundos van precedidos de un punto y no de una coma, que el elemento track tiene kind y srclang, y que el archivo se sirve desde el mismo origen que la página o con las cabeceras de origen cruzado correctas. La última falla sin decir nada.

¿Basta con renombrar un SRT a .vtt?

No. El archivo tiene que empezar por la línea WEBVTT y las marcas de tiempo usan punto en lugar de coma antes de los milisegundos. Renombrar produce un archivo que el navegador rechaza; convertirlo arregla las dos cosas de una vez.

¿Qué diferencia hay entre VTT y SRT?

VTT es lo que aceptan los navegadores para el vídeo de una web, y añade posicionamiento, alineación, voces y estilos. SRT es lo que esperan los reproductores de escritorio, los televisores y las plataformas de subida, y no tiene estilo ninguno. Por lo demás sus estructuras están lo bastante cerca como para que convertir sea directo.

¿Cómo aparto un rótulo de la parte de abajo del vídeo?

Añadiendo ajustes de cue después de la marca de tiempo: line lo mueve en vertical y align en horizontal. Es lo principal que VTT sabe expresar y SRT no, y es como se mantienen los rótulos lejos de los textos en pantalla y de los controles del reproductor.

¿Se conservan esos ajustes al convertir el archivo aquí?

No. El conversor guarda entrada, salida y texto, así que los ajustes de posición y los identificadores de cue se pierden, y un rótulo colocado arriba vuelve centrado abajo. Por eso las conversiones que parten de VTT no se anuncian como exactas.

¿Un VTT sirve para algo que no sean subtítulos?

Sí. El mismo formato transporta capítulos, audiodescripción y metadatos temporizados, según el atributo kind del elemento track. Los cues de metadatos se disparan mientras el vídeo avanza y el JavaScript de la página los recoge, que es como se construyen las transcripciones interactivas.