Quitar etiquetas override de ASS
O pega el texto de los subtítulos
Opciones
Un recuadro, siete opciones y cada opción tiene su propia página. Cursiva, Negrita, Subrayado y Color quitan ese tipo de intervalo y dejan el resto del estilo de la línea intacto. Todo quita todos los intervalos que modela la herramienta —esos cuatro más la sincronización karaoke— y deja intacto todo lo demás del texto. HTML hace lo mismo y además barre el marcado entre corchetes angulares que quedó en el texto porque la herramienta no lo modela, como las etiquetas de hablante <v Bob> y <c.className> de VTT. ASS hace lo mismo con los bloques de anulación: limpia los códigos {...} que no se reconocieron al analizar, como {\fad(500,500)}. Esta página rellena el recuadro con la opción que nombra su título y no lista ninguna otra.
La velocidad de fotogramas con la que se cuentan los tiempos. En las páginas de formato es lo que necesita MicroDVD, porque guarda los tiempos como números de fotograma. En las páginas de velocidad de fotogramas es la velocidad con la que se cronometró el archivo (la versión para la que se hicieron los subtítulos), y el segundo recuadro de la página toma la velocidad del video con el que vas a usarlos. 23,976, 24, 25, 29,97, 30, 50, 59,94 y 60 son las habituales. Equivocarla desplaza toda la línea de tiempo, y en las páginas de velocidad de fotogramas la desplaza por una proporción en lugar de por una cantidad fija.
Esta página limpia los códigos de sustitución de un archivo ASS o SSA: los rangos de estilo, el cronometraje de karaoke, los bloques de efecto que quedaron y la posición. Lo que devuelve es texto cronometrado sin más: las palabras, los tiempos de los bloques y la estructura del propio archivo, con las líneas donde las coloque su estilo con nombre.
ASS es el formato que más puede decir, y la mayor parte de lo que puede decir se escribe como códigos de sustitución dentro del texto de una línea. Algunos de esos códigos son estilo que la herramienta modela —`{\i1}`, `{\b1}`, `{\c&H...&}`, `{\k50}`— y otros son efectos que no: fundidos, movimientos, escalado y desenfoque, todos escritos como bloques de la misma forma. Esos bloques no modelados se quedan en el texto mientras se lee un archivo, a propósito, porque comerse un marcado que la herramienta no puede leer sería perder datos. Esta es la página que los barre.
La posición también se limpia aquí, y es lo único que hace esta página que no sea simplemente quitar marcado: dónde se sitúa una línea es una propiedad del evento entero y no un rango sobre su texto, así que una línea posicionada vuelve a donde la coloque su estilo con nombre. Eso es lo que hace que la salida sea de verdad plana. La hoja de estilos con nombre no se toca: un bloque cuyo estilo es negrita sigue viéndose en negrita, porque la negrita pertenece al estilo y no al texto.
Un código se queda, y la página lo dice en lugar de dejarte que lo descubras: una alineación de nueve celdas como `{\an8}` se conserva tal como está escrita. Codifica la colocación vertical además de la horizontal, y la idea de alineación de la herramienta solo cubre izquierda, centro y derecha, así que no hay dónde guardar la otra mitad. Entenderla a medias daría un archivo que sale mal al convertirlo de ida y vuelta. No se sube nada; un archivo sin nada que quitar vuelve byte por byte.
Ejemplos
Estilo y un bloque de efecto que quedó
Entrada
[Script Info]
Title: fade
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,{\fad(500,500)}{\i1}hello{\i0}
Resultado
[Script Info]
Title: fade
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,hello
`{\fad(500,500)}` pide al reproductor que la línea aparezca y desaparezca con medio segundo de fundido en cada extremo. La herramienta nunca lo modeló, así que se quedó en el texto hasta que esta pasada lo barrió, y el par de cursiva que tiene al lado se va por el mismo camino y deja la línea sola. Nada en la salida registra que el fundido estuviera allí.
Una línea posicionada
Entrada
[Script Info]
Title: position
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,{\pos(100,200)}hello there
Resultado
[Script Info]
Title: position
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,hello there
La línea ya no recibe la orden de dónde situarse, así que vuelve al lugar donde la coloca el estilo con nombre del evento. Esta es la única parte de la pasada que no es simplemente quitar marcado, y es la razón de que la página sea la correcta para un archivo que tiene que volverse plano y no solo perder el énfasis.
Una alineación de nueve celdas que se queda
Entrada
[Script Info]
Title: alignment
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,{\an8}hello there
Resultado
[Script Info]
Title: alignment
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,{\an8}hello there
Esta vuelve sin cambios, y no es un olvido. `{\an8}` dice arriba y centro a la vez, mientras que la alineación de la herramienta solo cubre izquierda, centro y derecha, así que la mitad vertical no tiene dónde vivir y la etiqueta se conserva entera en lugar de entenderse a medias. El código de posición se limpia; este no.
Preguntas frecuentes
¿Por qué sobrevive a esta página una etiqueta de alineación de nueve celdas?
Porque la herramienta no puede representarla con exactitud. Una alineación como `{\an8}` nombra una de nueve celdas, que codifica a la vez una posición horizontal y una vertical, mientras que la alineación propia de la herramienta solo tiene izquierda, centro y derecha. Guardar la mitad horizontal y descartar la otra haría que el archivo saliera mal al convertirlo de ida y vuelta, así que la etiqueta se conserva tal cual. El código de posición se limpia, el de alineación no, y la página te lo dice en lugar de dejar que lo notes tú.
¿Qué es un bloque de sustitución y por qué está dentro del texto?
Es un conjunto de instrucciones escritas dentro del texto de una línea, entre llaves, que le dice al reproductor que haga algo con esa línea: cambiar el estilo, animarla, fundirla, moverla. La herramienta modela el subconjunto de estilo habitual y lo lee en su propia estructura, pero deja el resto exactamente donde lo encontró: los fundidos, los movimientos, los desenfoques y similares se conservan tal cual en lugar de descartarse, porque descartar un marcado que el lector no entiende sería perder datos en silencio. Esta página es donde por fin se van.
¿Limpiar los códigos de sustitución cambia los tiempos o el texto?
No. Las palabras vuelven idénticas byte por byte, cada bloque conserva su inicio y su fin al milisegundo y el orden de los bloques es el del archivo. Los saltos de línea dentro de un bloque forman parte del bloque y no de su estilo, así que se quedan donde el archivo los puso. Lo que cambia son las instrucciones alrededor de las palabras y, en algunos casos, dónde se sitúa la línea en pantalla.
¿El resultado seguirá reproduciéndose bien sin los códigos?
Sí, y de forma más predecible que antes. Un código de sustitución que un reproductor no entiende se ignora en el mejor de los casos y se analiza mal en el peor, y distintos reproductores no coinciden sobre todo con los códigos de efecto. El texto cronometrado sin más no tiene esa ambigüedad. Si el archivo dependía de la posición para colocar un rótulo sobre algo concreto del plano, esa colocación se ha ido y la línea se sentará donde la ponga el estilo.
¿Esta página elimina también los estilos con nombre de la hoja de estilos?
No: la hoja de estilos y el estilo al que apunta cada bloque quedan exactamente como estaban. La página trabaja sobre los códigos escritos dentro del texto de una línea, y un bloque cuyo estilo con nombre es negrita sigue viéndose en negrita después, porque el grosor viene del estilo y no del texto de la línea. Limpiar una hoja de estilos es otro trabajo y todavía no hay una página para ello.
¿Puedo usar esta página con un archivo SRT o solo con ASS y SSA?
Puedes soltar cualquiera de los formatos que lee el sitio. En un archivo SRT o WebVTT la primera mitad sigue haciendo su trabajo —los rangos de estilo se van— y el barrido simplemente no encuentra nada, porque los bloques entre llaves no aparecen en esos formatos. Un archivo que no tiene ni estilo ni bloques entre llaves vuelve byte por byte, que es el resultado honesto de una pasada sin nada que hacer.