SSubToolDesk
es
SRT → VTT

Convierte SubRip (.srt) a WebVTT

Haz que un archivo .srt sea válido para el elemento <track> de HTML5 y los reproductores de vídeo modernos. Cabecera WEBVTT añadida, códigos de tiempo reformateados, nada se sube para lograrlo.

Detectado: …
Suelta un archivo, pega el texto o edítalo directamente
…

Tus archivos nunca tocan un servidor. Cada conversión en esta página se ejecuta localmente en tu navegador usando la API FileReader de JavaScript. Nada se sube, se registra ni se almacena. Seguro para grabaciones confidenciales de Zoom/Teams, vídeo no publicado y entrevistas legales.

Cómo funciona la conversión de SRT a VTT

Si alguna vez intentaste soltar un archivo .srt directamente en una etiqueta HTML5 <track kind="captions" src="captions.srt">, probablemente descubriste que los navegadores simplemente lo ignoran. El elemento <track> (y el menú nativo de subtítulos que todo navegador moderno construye a su alrededor) solo entiende WebVTT. SubRip, a pesar de ser el formato más compatible entre reproductores y editores de escritorio, no forma parte en absoluto de la especificación HTML5.

La solución es mecánica pero exigente: WebVTT requiere una línea literal WEBVTT al inicio del archivo, y el separador de milisegundos de cada código de tiempo debe ser un punto en lugar de la coma de SRT (00:00:09,400 → 00:00:09.400). Si te equivocas en cualquiera de los dos detalles, el navegador fallará en silencio al renderizar los subtítulos, sin ningún mensaje de error. El convertidor de SubToolDesk analiza tu SRT localmente, lo reconstruye con una cabecera válida y códigos de tiempo corregidos, y renumera los bloques de forma limpia, todo dentro de tu pestaña del navegador.

Instrucciones paso a paso

  • Suelta tu archivo .srt en el convertidor de arriba, o pega su contenido en el panel izquierdo.
  • Confirma que la insignia de formato detecta SRT.
  • Pulsa Descargar para guardar un archivo .vtt válido, con un nombre que coincide con tu archivo original.
  • Referéncialo desde un elemento <track>: <track kind="captions" src="/captions.vtt" srclang="en" label="English">.

Por qué convertir SRT a WebVTT

Un archivo .srt se sincroniza perfectamente en un editor de escritorio, pero no hace nada en un navegador. Convertirlo a WebVTT suele responder a uno de estos motivos:

  • Motivo: estás añadiendo subtítulos a un elemento <video> propio y necesitas un formato que la etiqueta <track> de HTML5 realmente entienda.
  • Motivo: necesitas cumplir un requisito de accesibilidad (como el criterio de subtítulos de WCAG 2.1) con subtítulos conformes al estándar, no con un formato que los navegadores ignoran en silencio.
  • Motivo: tu plataforma de vídeo, CMS o la incrustación de capturas de pantalla de tu sitio de documentación solo acepta archivos .vtt.
  • Motivo: recibiste archivos .srt de un editor, un autónomo o un proveedor de subtitulado, y necesitas entregarle a un desarrollador algo listo para usar.
  • Motivo: estás migrando una biblioteca de vídeo desde una plataforma que exportaba SRT hacia un reproductor personalizado basado en el subtitulado nativo del navegador.
  • Motivo: quieres resolverlo sin instalar ffmpeg ni escribir un script de conversión puntual para un solo archivo.

Antes y después: un ejemplo real

Un archivo SRT breve de tres bloques, con códigos de tiempo con coma y numeración secuencial:

1
00:00:01,200 --> 00:00:04,000
Bienvenidos de nuevo, hoy repasamos las cifras del tercer trimestre.

2
00:00:04,300 --> 00:00:07,900
Gracias por invitarme. Empecemos sin más.

3
00:00:08,100 --> 00:00:11,500
Los ingresos aumentaron un ocho por ciento respecto al año anterior.

Con Quitar etiquetas de hablante y Quitar etiquetas de formato ambos desactivados (el estado predeterminado en esta página, ya que no es necesario eliminar nada para producir un WebVTT válido), eso se convierte en:

WEBVTT

1
00:00:01.200 --> 00:00:04.000
Bienvenidos de nuevo, hoy repasamos las cifras del tercer trimestre.

2
00:00:04.300 --> 00:00:07.900
Gracias por invitarme. Empecemos sin más.

3
00:00:08.100 --> 00:00:11.500
Los ingresos aumentaron un ocho por ciento respecto al año anterior.

El texto de los subtítulos, la sincronización e incluso los números de bloque se mantienen sin cambios. Solo se añade la cabecera WEBVTT y cada coma antes de los milisegundos se convierte en un punto, exactamente los dos cambios que un navegador necesita para aceptar el archivo.

Antes y después

Entrada SRT:
1
00:00:09,400 --> 00:00:12,900
Los ingresos aumentaron un ocho por ciento.

Salida VTT:
WEBVTT

1
00:00:09.400 --> 00:00:12.900
Los ingresos aumentaron un ocho por ciento.

Por qué esto importa para los desarrolladores web

El vídeo accesible y subtitulado es tanto un requisito de usabilidad como de cumplimiento normativo para la mayoría de los sitios de cara al público (el criterio de éxito 1.2.2 de WCAG 2.1 exige subtítulos para medios pregrabados), y el elemento <track> es la forma estandarizada de ofrecerlos sin depender de una plataforma de vídeo de terceros. Si tu flujo de edición (o un autónomo) solo te entrega archivos .srt, convertirlos aquí te devuelve un recurso WebVTT listo para usar en segundos, sin instalar ffmpeg ni escribir un script de conversión.

Procesado donde estás tú, no en nuestros servidores

Dado que esto es un reformateo de texto plano, ningún archivo multimedia se toca ni se sube jamás, solo el texto de los subtítulos, y únicamente dentro de tu propia pestaña del navegador. Eso importa tanto para un vídeo de demostración interno de producto como para una página de marketing pública.

Cómo usar el resultado en un elemento <track>

Una vez que hayas descargado el archivo convertido, añádelo a tu marcado <video> con un elemento hijo <track>:

<video controls>
  <source src="demo.mp4" type="video/mp4">
  <track
    kind="captions"
    src="/captions.vtt"
    srclang="en"
    label="English"
    default>
</video>

El atributo default indica al navegador que active esta pista automáticamente; omítelo si ofreces varias pistas de idioma y quieres que el espectador elija. Los navegadores validan la cabecera WEBVTT de forma estricta: una cabecera ausente o mal escrita es la razón más común por la que los subtítulos fallan en silencio incluso cuando el resto del archivo está bien formado.

Para quién está pensado este convertidor

Los desarrolladores front-end y full-stack que añaden subtítulos a un reproductor de vídeo propio son el público principal, pero los equipos de producción de vídeo que entregan activos a un desarrollador también lo usan para entregar algo que garantizadamente funciona, en lugar de dejar la conversión de formato como una tarea pendiente en el plato de otra persona. Es igual de útil para sitios de documentación de código abierto que incrustan capturas de pantalla en vídeo, equipos de herramientas internas que subtitulan vídeos de formación por cumplimiento de accesibilidad, y cualquiera que esté migrando una biblioteca de vídeo desde una plataforma que exportaba SRT hacia un reproductor personalizado que espera subtitulado nativo del navegador.

Qué conserva y qué cambia este convertidor

Se conserva:

  • Cada palabra del texto del diálogo, exactamente como está escrita, incluidos los errores tipográficos del archivo original.
  • La sincronización con precisión de milisegundos de cada bloque, trasladada sin cambios.
  • Un bloque por subtítulo, en el orden original, con los números de bloque renumerados secuencialmente a partir de 1.
  • Los prefijos de hablante o las etiquetas en línea del texto del subtítulo, a menos que actives Quitar etiquetas de hablante o Quitar etiquetas de formato.

Se cambia o elimina:

  • La coma antes de los milisegundos se convierte en un punto en cada código de tiempo, ya que WebVTT exige 00:00:04.000, no el 00:00:04,000 de SRT.
  • Se añade una línea de cabecera WEBVTT al inicio del archivo, ya que WebVTT la exige y SRT no la tiene.
  • Los prefijos de hablante en texto plano como LOCUTOR 1:, pero solo si activas Quitar etiquetas de hablante; por defecto se dejan tal cual.
  • Las etiquetas de formato como <i> o <b>, pero solo si activas Quitar etiquetas de formato; por defecto se dejan tal cual.

Problemas comunes y cómo solucionarlos

  • El navegador sigue sin mostrar subtítulos después de convertir: comprueba que la insignia de formato encima del convertidor mostrara realmente SRT antes de convertir; un pegado muy truncado puede romper la detección de bloques y producir una salida vacía o mal formada.
  • Las etiquetas <i> o <b> siguen apareciendo como texto literal en los subtítulos: es lo esperado, Quitar etiquetas de formato está desactivado por defecto en esta página porque WebVTT admite esas etiquetas de forma nativa; actívalo solo si prefieres texto plano.
  • Nombres como LOCUTOR 1: pasan directamente a la salida VTT: activa Quitar etiquetas de hablante si prefieres que no aparezcan; se conservan por defecto porque este convertidor asume que quieres un reformateo estructural fiel, no una edición de contenido.
  • La salida todavía muestra una coma en lugar de un punto antes de los milisegundos: comprueba que descargaste realmente el archivo .vtt de salida y no una copia del .srt original; la insignia de formato y la etiqueta de salida encima del convertidor confirman cuál estás viendo.
  • Los subtítulos no aparecen aunque el archivo parezca correcto: abre el archivo .vtt en un editor de texto y confirma que la primera línea es exactamente WEBVTT sin nada antes, ni siquiera una marca de orden de bytes o una línea en blanco; los navegadores rechazan el archivo en silencio si esa línea no va primero.
  • Las letras acentuadas o el texto no inglés se convierten en caracteres extraños como é en el archivo convertido: el .srt de origen no se guardó como UTF-8; vuelve a exportarlo o guardarlo como UTF-8 antes de convertir, ya que WebVTT, igual que SRT, asume texto en UTF-8.

Lo que no cambia en la conversión

El texto del diálogo y la sincronización con precisión de milisegundos se mantienen exactamente igual. Esto es un reformateo estructural, no una nueva transcripción. Si tu SRT original tiene errores tipográficos, esos mismos errores estarán en la salida VTT; esta herramienta corrige el cumplimiento del formato, no la precisión del contenido. Si además quieres limpiar etiquetas de hablante o etiquetas de estilo en línea mientras conviertes, los interruptores Quitar etiquetas de hablante y Quitar etiquetas de formato de arriba se aplican al texto del bloque antes de reescribirlo en sintaxis WebVTT, de modo que puedes combinar la conversión de formato con la limpieza de contenido en un solo paso en lugar de ejecutar dos herramientas separadas.

Preguntas frecuentes

¿Por qué mi navegador rechaza un archivo .srt en un elemento <track>?

El elemento <track> de HTML5 requiere específicamente WebVTT. Los navegadores no analizan SRT de forma nativa para el subtitulado de vídeo. Convertir a .vtt es imprescindible para poder usar la API nativa de subtítulos.

¿Qué añade exactamente el convertidor para que sea un WebVTT válido?

Antepone la línea de cabecera WEBVTT obligatoria, cambia el separador de milisegundos de cada código de tiempo de coma a punto, y renumera los identificadores de bloque: las tres cosas que le faltan a un SRT para que un navegador acepte el archivo.

¿Puedo añadir posicionamiento o estilos a los bloques después de convertir?

Sí, esta herramienta produce una salida de texto WebVTT limpia y conforme al estándar, que después puedes editar a mano para añadir ajustes de bloque (como align o position) o etiquetas de voz <v>, ya que la estructura base ya es válida.

¿Seguirán sincronizándose correctamente los subtítulos después de la conversión?

Sí, la sincronización se conserva con precisión de milisegundos; solo cambian el carácter separador y la cabecera, nunca los valores de las marcas de tiempo.

¿Funciona con subtítulos exportados desde Premiere o DaVinci Resolve?

Sí. Ambos exportan SRT estándar, que este analizador lee de forma nativa sin importar qué software haya generado el archivo.