Cookies de estadística y publicidad
Usamos cookies de estadística y de publicidad, y ambas van a Google. Si rechazas, para ti no cambia nada visible.Ir a la página de privacidad
Aquí puedes convertir SRT a VTT gratis y sin cuenta: suelta el archivo arriba y en un par de segundos tienes el resultado listo para descargar. La conversión ocurre en tu propio navegador, así que el archivo no se sube nunca. Funciona igual en Windows, macOS y Linux que en iPhone y Android, y sigue funcionando aunque cortes la conexión.
Hasta 100 archivos a la vez. Mezclar formatos no es problema.
Se convierten uno tras otro y vuelven juntos en un ZIP.
SRT a VTT
El vídeo de HTML recibe los subtítulos a través de la etiqueta track, y el único formato de subtítulos que esa etiqueta acepta es WebVTT. Dale un SRT a un navegador y no pasa nada: ningún error en la consola, ninguna entrada en el menú de subtítulos, solo un vídeo reproduciéndose sin texto. Ese silencio es lo que trae aquí a casi todo el mundo, porque el archivo está bien, el marcado está bien y el formato es lo único que falla.
Que los dos formatos sean parientes tan cercanos hace el fallo más confuso de lo que merece. Estructuralmente un WebVTT es un SubRip con una línea de cabecera y otro separador decimal. El navegador no está objetando nada de fondo: está rechazando un archivo que está a dos ediciones mecánicas de ser válido, y este conversor hace las dos.
SubRip escribe 00:01:32,500 con coma antes de las milésimas; WebVTT escribe 00:01:32.500 con punto. Un carácter por marca de tiempo, dos por cada subtítulo, y un analizador que se encuentra la coma deja de leer. La trampa es especialmente traicionera escribiendo en español, porque la coma decimal es la que usamos en todo lo demás y la línea del SRT se ve perfectamente natural.
Por eso los archivos editados a mano adquieren este defecto con tanta fiabilidad: alguien corrige un tiempo, escribe el decimal como lo escribiría en cualquier otro sitio y rompe el archivo sin que nada avise. La conversión reescribe todas las marcas con horas rellenadas a dos cifras, minutos, segundos y milésimas con punto delante de la fracción, de modo que la mano humana deja de ser el eslabón que decide.
Un archivo WebVTT tiene que empezar con la palabra WEBVTT sola en su primera línea, antes de cualquier otra cosa. No es documentación y no es opcional: un archivo sin ella se rechaza de plano. La salida de aquí abre con WEBVTT seguida de una línea en blanco, y a partir de ahí van los bloques de tiempo y texto separados por líneas en blanco.
Es la diferencia que más gente pasa por alto porque no está dentro de ningún subtítulo, sino delante de todos. Si alguna vez has abierto un .vtt que no funcionaba y has revisado los tiempos uno por uno, es probable que el problema estuviera en la línea que no mirabas, que era la primera.
Es lo primero que prueba casi todo el mundo, y se entiende: el archivo es texto, las estructuras se parecen y cambiar una extensión lleva un segundo. Tampoco puede funcionar, porque ninguna de las dos diferencias de arriba vive en el nombre del archivo. El resultado es un archivo que dice ser WebVTT, se sirve como WebVTT y el analizador descarta en la primera línea.
Lo caro es que el fallo parece otra cosa. Quien ha renombrado el archivo pasa después a revisar la etiqueta track, la ruta, el tipo MIME y el reproductor, y ninguno de ellos es el problema. Convertir de verdad elimina la posibilidad, y merece la pena hacerlo antes de dedicarle una tarde al marcado.
SubRip numera cada subtítulo, empezando por el uno, en la línea de encima de la marca de tiempo. Este conversor lee esos números, no los usa para nada y no los escribe en el VTT. La salida es una cabecera, una línea en blanco y luego bloques de tiempo y texto separados por líneas en blanco.
Es una decisión de diseño y no una pérdida. WebVTT trata la línea anterior a la marca de tiempo como un identificador opcional y no como un contador, y nada en un navegador ni en un reproductor depende de él. Lo que de verdad se puede adjuntar a un subtítulo concreto —una posición vertical, una alineación, un ancho— es un ajuste que se escribe después del tiempo de fin, y un número delante solo sería ruido.
El texto de cada subtítulo se copia literalmente del SRT al VTT. No se elimina, no se escapa y no se reinterpreta nada. Los dos formatos escriben la cursiva y la negrita de la misma forma, con las mismas etiquetas entre ángulos, así que un archivo que las usa para enfatizar mantiene ese énfasis en una página web.
La consecuencia conviene comprobarla antes de publicar. Un código propio de un reproductor que algún programa de escritorio respeta dentro de un SRT —una etiqueta de posición al estilo ASS entre llaves es la habitual— también sobrevive literalmente, y un navegador no tiene ni idea de qué significa: lo dibujará como caracteres sueltos en mitad de un subtítulo. Si tu SRT viene de una comunidad de subtitulado o de un flujo de centro multimedia, lee los primeros subtítulos del resultado.
Para muchos de los que llegan aquí esto no es una mejora sino un requisito. La normativa europea de accesibilidad de los sitios web y aplicaciones del sector público, traspuesta en España por el Real Decreto 1112/2018, obliga a que el vídeo pregrabado lleve subtítulos, y la norma técnica que se usa para comprobarlo es la EN 301 549, que se apoya a su vez en las WCAG. En la práctica eso significa un archivo de subtítulos que el navegador cargue de verdad, no uno que exista en el servidor.
Ahí es donde este fallo silencioso pasa de molestia a incumplimiento. Un SRT subido junto al vídeo, enlazado en una etiqueta track y descartado por el analizador deja una página que parece subtitulada al equipo que la publicó y no lo está para quien la necesita. La revisión que lo detecta es abrir el vídeo y buscar el menú de subtítulos, y dura menos que discutir sobre ello.
La etiqueta track va dentro del elemento video, con src apuntando al archivo .vtt, kind indicado, srclang con el código de idioma —es para español, y conviene afinar a es-ES o es-MX cuando hay más de una versión— y un label que será la entrada del menú. Añade el atributo default si los subtítulos deben salir encendidos al empezar, porque si no el espectador tiene que buscar el menú y la mayoría no lo busca.
El atributo que merece pensarse en lugar de copiarse es kind. Los subtítulos suponen a alguien que oye y necesita la traducción; los subtítulos para sordos suponen a alguien que no oye y describen por tanto también el audio que no es diálogo. Donde el subtitulado es una obligación de accesibilidad y no un detalle, una pista marcada como captions que solo contiene diálogo traducido cumple con el marcado y no con el requisito.
Si la cabecera y los tiempos son correctos y los subtítulos siguen sin aparecer, lo que queda está en la página y no en el archivo. Puede faltar kind o srclang en la etiqueta track, o puede que nadie haya encendido nunca los subtítulos porque no hay ningún default en ninguna parte.
El que más tiempo cuesta es el origen cruzado. Un VTT servido desde un dominio distinto al de la página —un dominio de recursos, un contenedor de objetos, un nombre de CDN— se rechaza salvo que la respuesta traiga las cabeceras adecuadas, y el rechazo es silencioso. La prueba más rápida es abrir la URL del .vtt directamente en una pestaña: si se ve como texto, la ruta y el servidor están bien y el fallo está en el marcado o en el origen; si se descarga o da un 404, nada de la etiqueta track iba a importar nunca y el trabajo pendiente es de alojamiento.
El archivo se produce con el tipo de medio de WebVTT, text/vtt, y el servidor que acabe alojándolo tiene que enviar lo mismo. Casi todos los alojamientos estáticos asignan bien la extensión .vtt, pero un número sorprendente de configuraciones antiguas cae a un tipo binario genérico o a text/plain, y un navegador que recibe un archivo de subtítulos con el tipo equivocado está en su derecho de rechazarlo.
Dos detalles de despliegue ahorran tiempo después. Los archivos de subtítulos son diminutos y cambian poco, así que se guardan bien en caché, y una caché larga sobre un archivo que luego corriges es un error de subtitulado que sobrevive en la máquina del espectador después de haberlo arreglado: versiona el nombre en lugar de confiar en un purgado. Y conserva la extensión .vtt aunque la cadena de compilación quiera ponerle una huella, porque algunos reproductores y validadores siguen decidiendo por la extensión y no por el tipo de medio.
Los editores de subtítulos, los servicios de transcripción y las herramientas de escritorio se llevan mejor con SRT que con cualquier otra cosa de este sitio; es el formato que todo el ecosistema da por supuesto. Corregir el texto y los tiempos allí y convertir en el momento de publicar es un buen reparto del trabajo.
Lo que hay que evitar es mantener los dos. Dos archivos que empezaron idénticos se separan la primera vez que alguien arregla una errata en el que le pilló abierto, y la divergencia es invisible hasta que un espectador lee un subtítulo que la transcripción no contiene. Trata el VTT como resultado de compilación: se regenera, no se edita.
En tu navegador, en JavaScript, sin subida y sin cola. El archivo se lee como texto, se convierte en una lista de subtítulos con tiempos en milisegundos y se vuelve a escribir en forma WebVTT. No hay ningún servidor de por medio, que es la razón de que sea instantáneo y de que no haya que registrarse.
El techo gratuito son 100 MB y ningún archivo de subtítulos se va a acercar jamás: una película entera son unas pocas decenas de kilobytes de texto. La garantía más útil es otra: la salida se escribe en UTF-8. Un SRT no tiene forma de declarar su propia codificación, y de ahí que las tildes y las eñes salgan mal tan a menudo; comprometer la salida a UTF-8 es lo que espera un navegador y cierra la cuestión en el punto de la conversión.
| SRT | VTT | |
|---|---|---|
| Nombre completo | Subtítulos SubRip | WebVTT |
| Extensión de archivo | .srt | .vtt |
| Tipo de medio | application/x-subrip | text/vtt |
| Publicado por primera vez | 2000 | 2010 |
| Publicado por | — | W3C |
| Especificación | — | WebVTT |
| Licencia | Estándar abierto | Estándar abierto |
| Situación actual | Vigente | Vigente |
| Se abre en el navegador | Ningún navegador | Todos los navegadores |
| Considerado en su lugar | ASS | ASS |
No se descarta nada. SRT y VTT guardan su contenido sin pérdida, así que la conversión cambia el envoltorio y no la calidad, y puede repetirse sin que el daño se acumule.
VTT se abre en cualquier navegador actual. SRT llega a menos navegadores todavía. Si el archivo va a una página web o a un formulario, ese suele ser todo el motivo de la conversión.
VLC y Subtitle Edit leen tanto SRT como VTT, así que puedes comparar el resultado con el original sin un segundo programa.
VTT viene de W3C y es de 2010, recogido en WebVTT. VLC y Subtitle Edit lo leen.
No. Esta conversión ocurre por completo en tu navegador, así que el archivo no sale de tu dispositivo. Puedes comprobarlo tú: abre la pestaña de red de las herramientas de desarrollo y convierte algo. Verás la propia página y las peticiones de estadística y publicidad con las que se paga este servicio, y ni una sola que lleve tu archivo.
Sí. Sin cuenta, sin marca de agua y sin cupo diario que se gaste: se ejecuta en tu propio equipo, así que puedes volver tantas veces como quieras. El navegador procesa archivos de hasta 100 MB, 100 a la vez.
No. VTT guarda el mismo contenido sin tirar nada: el resultado es idéntico en calidad al original.
No se descarta nada. SRT y VTT guardan su contenido sin pérdida, así que la conversión cambia el envoltorio y no la calidad, y puede repetirse sin que el daño se acumule.