Convertir ASS a VTT
O pega el texto de los subtítulos
Qué cambia esta conversión
4 cosas se descartan o requieren una decisión
- Estilo
todo el estilo excepto negrita y cursiva (color, contorno, sombra, márgenes)
- Posición
la posición en pantalla (cada bloque vuelve a la posición predeterminada)
- Karaoke
la sincronización karaoke (resaltado por sílaba)
- Contenido específico del formato
contenido que el formato de origen guarda fuera de sus bloques (bloques que no son cue, texto de cabecera, ajustes por bloque, eventos comentados): el formato de destino no tiene sitio para él
Esta lista proviene de la matriz de capacidades de estos dos formatos, no del archivo concreto que has cargado. Un archivo específico puede perder más si usa características que el formato permite pero que la matriz no modela.
Esta página convierte ASS a WebVTT. Suelta un archivo o pega el texto y recuperas la versión VTT. Todo ocurre en tu navegador: no se sube nada, no hace falta cuenta y la página sigue funcionando sin red una vez cargada.
ASS es el formato que usan los estudios de subtitulado para el trabajo con estilo, y guarda más de lo que WebVTT puede contener, así que esta dirección es con pérdidas y conviene leer el informe que aparece sobre el cuadro de archivo antes de convertir. La negrita y la cursiva sobreviven (los códigos {\b1} y {\i1} se convierten en las etiquetas <b> e <i> de VTT), pero el resto de la tabla de estilos no: colores, contornos, sombras y márgenes se descartan, y con ellos los estilos con nombre. La colocación en pantalla corre la misma suerte, porque {\pos(320,240)} y {\an7} no tienen equivalente en un formato cuya única colocación es un conjunto limitado de ajustes de subtítulo. El karaoke tampoco sobrevive: las sílabas se conservan como tramos separados en el texto, de modo que las palabras siguen ahí, pero el resaltado que las hacía aparecer una tras otra desaparece.
Hay otras dos cosas que conviene saber. Los archivos ASS suelen traer secciones [Fonts] y [Graphics], que incrustan las fuentes y las imágenes que usa el script; son adjuntos para un renderizador, no subtítulos, y WebVTT no tiene esas secciones, así que no se trasladan. Y los códigos de sustitución que el conversor no modela, como {\fad}, se dejan en el texto tal como estaban en lugar de traducirse a medias o desaparecer, de modo que nada se pierde en silencio.
Las entradas raras no son problema: una marca de orden de bytes, finales de línea de Windows, una línea de comentario que no es un subtítulo o un código de tiempo con un solo decimal se leen sin queja. Puedes soltar un archivo o una temporada completa; la cola los procesa en orden, puedes detenerla a mitad de camino y los resultados se descargan juntos en un único ZIP.
Ejemplos
Un archivo ASS típico convertido a VTT
Entrada
[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left
Resultado
WEBVTT
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:05.000 --> 00:00:08.500
<i>Italic</i> and <b>bold</b> text.
00:00:09.000 --> 00:00:12.000
Positioned
00:00:13.000 --> 00:00:16.000
<c>ka</c><c>ra</c><c>o</c><c>ke</c>
00:00:17.000 --> 00:00:20.000
Line one
Line two
00:00:21.000 --> 00:00:24.000
Top left
En esta salida se pierden: estilos, posicionamiento, karaoke y contenido propio del formato. Todo lo demás coincide línea por línea.
La misma conversión con una entrada difícil
Entrada
[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecodeResultado
WEBVTT
00:00:01.000 --> 00:00:04.000
Hello, world
00:00:05.000 --> 00:00:08.000
{\fad(300,300)}Unmodelled override
00:00:09.000 --> 00:00:12.000
Both, wrong order
00:00:13.000 --> 00:00:16.500
One decimal centisecond
00:00:17.000 --> 00:00:20.000
Soft
break
Este es el tipo de daño que traen los archivos reales: finales de línea mezclados, espacios sueltos, campos vacíos. Compáralo con el ejemplo limpio de arriba para ver qué perdona el analizador.
Preguntas frecuentes
¿Por qué desaparece el karaoke al convertir ASS a VTT?
WebVTT no tiene tiempos por sílaba. Las sílabas se conservan como tramos separados en el texto, así que una línea de karaoke sigue leyéndose ka ra o ke en cuatro partes, pero los valores de \k que encendían cada parte por turno no tienen destino. Si necesitas el resaltado, guarda el ASS como original y trata el VTT como la versión de texto plano.
¿Se conservan la negrita y la cursiva de ASS en VTT?
Sí. Son las dos cosas que puede expresar el conjunto de etiquetas en línea de WebVTT: {\i1}Cursiva{\i0} sale como <i>Cursiva</i>, y lo mismo con la negrita. Todo lo más rico (color, contorno, sombra, márgenes, nombres de fuente) se descarta.
¿Qué pasa con los subtítulos posicionados al pasar de ASS a VTT?
Pierden su colocación. \pos(x,y) y \an7 son propios de ASS, y el equivalente en WebVTT es un conjunto limitado de ajustes de subtítulo, no coordenadas libres, así que el texto aparece en la posición por defecto del reproductor. Las palabras no se tocan.
¿Dónde quedaron las secciones [Fonts] y [Graphics] al convertir ASS a VTT?
No se trasladan. Esas secciones incrustan las fuentes y las imágenes que un reproductor necesita para dibujar el script, y son adjuntos, no subtítulos: WebVTT no tiene una sección equivalente. Incrustar una fuente en un VTT no es posible, así que cuenta con una fuente del sistema o con estilos definidos en el reproductor.
¿Hay que subir el script ASS de un cliente para convertirlo a VTT?
No. El script se analiza y se reescribe dentro de la pestaña del navegador, así que nada de él (los subtítulos, el bloque [Script Info], la tabla de estilos) se envía a ningún sitio. Carga la página una vez, desconecta la red y la conversión sigue funcionando.