Subtítulos6 min de lectura

Qué es un archivo VTT

WebVTT es el formato que admiten los navegadores. Qué aporta frente a SRT, cuándo necesitarlo y para qué sirve cada elemento adicional.

WebVTT es el formato de subtítulos que un navegador sabe leer. Y es el único: si a un vídeo de HTML5 le enchufas un SRT, no ocurre absolutamente nada. Ni un error, ni un aviso, ni un subtítulo.

Su extensión es .vtt y por dentro se parece muchísimo a un SRT. Cambian tres cosas: lleva una cabecera obligatoria, pone un punto donde el SRT pone una coma, y puede expresar bastante más de lo que un SRT alcanza a expresar.

Qué hay dentro

WEBVTT

1
00:00:04.120 --> 00:00:06.480
Antes de meternos en cifras,
repasemos en qué punto estamos.

2
00:00:06.600 --> 00:00:09.000 line:90% align:start
Lo que no me esperaba
era el bajón de la segunda semana.

Esa primera línea está obligada a decir WEBVTT. Basta con que falte, con que le precedan los tres bytes de una marca de orden, o con que haya una línea vacía por delante, para que el navegador se deshaga del archivo entero.

A partir de ahí, los bloques de siempre. Con dos diferencias que saltan a la vista: el punto delante de los milisegundos, y la posibilidad de colgar ajustes detrás del tiempo.

Lo que añade sobre un SRT

Posición y alineación. Con line:90% el subtítulo baja, con align:start se pega a la izquierda y con position:20% se desplaza de lado. Vale para no taparle un rótulo a la imagen.

Estilos. Un bloque STYLE con CSS auténtico al comienzo del archivo, y clases repartidas por el texto mediante <c.narrador>. Colores, cuerpos, sombras.

Quién habla. Con la etiqueta <v Marta>Buenos días</v> se marca la voz. Los reproductores que la reconocen pueden pintarla de otro color; los que no, se la saltan sin más. En una entrevista o en una reunión, ahí está la frontera entre un muro de texto y algo legible.

Notas y regiones. Los bloques NOTE guardan comentarios que nadie ve, y los REGION delimitan zonas de la pantalla con su propio desplazamiento, como los rótulos que van subiendo en un directo.

Nombres de subtítulo. Encima de la línea de tiempo, cada bloque admite un identificador —intro, pregunta-3— con el que apuntarle desde JavaScript.

Cuándo necesitas un VTT

Cada vez que el vídeo se reproduzca dentro de un navegador. Si en tu página hay un <video> con su <track>, ese archivo tiene que ser WebVTT:

<video controls>
  <source src="reunion.mp4" type="video/mp4" />
  <track src="reunion.vtt" kind="subtitles" srclang="es" label="Español" default />
</video>

Y lo mismo con los reproductores web de hoy (Video.js, Plyr, Shaka) y con el streaming en HLS, que reparte los subtítulos en segmentos WebVTT.

Puertas afuera del navegador, apenas se lo pide nadie: los editores de escritorio, los reproductores de toda la vida y casi todos los formularios de subida siguen esperando un SRT.

Dos cosas que se rompen y no son culpa del archivo

El servidor está obligado a mandarlo como text/vtt. Si lo entrega como text/plain o como application/octet-stream, hay navegadores que lo descartan. Eso se toca en la configuración del servidor, nunca en el archivo.

Y tiene que venir del mismo origen, o traer CORS. Un .vtt alojado en otro dominio sin la cabecera Access-Control-Allow-Origin no llega a cargar, por más que la dirección funcione de maravilla si la abres tú a mano. Es la causa número uno del clásico «el vídeo va, los subtítulos no».

Ni una ni otra tienen que ver con el contenido, y ninguna deja rastro a la vista. Para dar con ellas hay que abrir las herramientas del navegador y mirar en la pestaña de red, cosa que solo haces si ya sospechas que el problema anda por ahí.

Convertirlo

El viaje de SRT a VTT es sencillo: colocar la cabecera, sustituir la coma por un punto y escapar esos & y esos < que en un SRT son texto y que WebVTT confundiría con marcado. Nuestro conversor de SRT a VTT resuelve las tres cosas dentro de tu navegador, sin que el archivo salga de ahí.

Al revés, lo que un SRT no sabe decir se queda fuera —la posición, los estilos, las regiones—, de modo que el conversor de VTT a SRT lo descarta y transforma las etiquetas de voz en un «Marta:» al principio de la línea, que es como un SRT sí puede enseñarlo. Cuál elegir en cada caso.

Si lo que tienes es el vídeo y no los subtítulos

Súbelo y te devolvemos la transcripción con su minutaje, con cada voz separada y con nombre, y con un resumen. De ahí sale el VTT ya montado y con las voces marcadas. Para empezar no hace falta cuenta.

Herramienta relacionada

SRT a VTT

SRT a VTT

Convierte tu grabación en texto

Texto con marca de tiempo, cada voz identificada y un resumen de lo importante. Sin necesidad de cuenta para empezar.