Saltar al contenido principal
SubtitleMatrix

Convertir TTML a TXT

O pega el texto de los subtítulos

Qué cambia esta conversión

5 cosas se descartan o requieren una decisión

  • Tiempos

    toda la línea de tiempo (el formato de salida no registra ningún tiempo)

  • Estilo

    todo el estilo (negrita, cursiva, color, contorno, sombra)

  • Posición

    la posición en pantalla (cada bloque vuelve a la posición predeterminada)

  • Saltos de línea

    los saltos de línea (los bloques de varias líneas se unirán en una sola)

  • 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 TTML en TXT. Arrastra un archivo —o pega el texto— y recibes la versión TXT. La conversión corre dentro del navegador de principio a fin: nada se sube y no hace falta cuenta.

Los dos formatos no guardan lo mismo, y la diferencia no es cosmética: los tiempos, el estilo, la posición, los saltos de línea y el contenido propio del formato no tienen dónde ir en TXT. La lista de arriba sale de lo que cada formato puede expresar, no de tu archivo, así que no depende de lo que cargues.

Un archivo vale, y una temporada entera también: la cola los procesa en orden y los resultados llegan juntos como un único ZIP.

Ejemplos

Un archivo TTML típico, convertido a TXT

Entrada

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
  <head>
    <styling>
      <style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
    </styling>
    <layout>
      <region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
    </layout>
  </head>
  <body>
    <div>
      <p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
      <p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
    </div>
  </body>
</tt>

Resultado

Hello there.
How are you?
Fine, thanks.

Se pierden los tiempos, el estilo, la posición, los saltos de línea y el contenido propio del formato. El resto coincide línea por línea.

La misma conversión con una entrada difícil

Entrada

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
    xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
    ttp:frameRate="25" xml:lang="en">
  <body>
    <div>
      <p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
      <p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
      <p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
      <p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom &amp; Jerry.</p>
    </div>
  </body>
</tt>

Resultado

Loaded from an offset and a duration.
A coarser clock spelling.
Frames, at 25fps.
Half-open and Tom &amp; Jerry.

Estos son los daños 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

¿A dónde fueron los códigos de tiempo de TTML al convertir a TXT?

TXT no tiene ninguno que dar: una exportación de texto son palabras, no instantes. Se mantiene el orden de las líneas TTML, así que la línea cuarenta de tu archivo es la línea cuarenta aquí, pero nada en la salida dice cuándo aparece en pantalla.

¿Qué pasa con la negrita, la cursiva y el color de TTML a TXT?

TXT no guarda estilo de ningún tipo, así que se va todo: un `<span tts:color="…">` dentro de un párrafo, o un estilo con nombre de la tabla `<styling>` al que apunte, no tiene dónde caer, y cada línea se escribe como texto plano. Las palabras no se tocan.

¿Qué ocurre con la posición en pantalla al pasar de TTML a TXT?

TXT no puede decir dónde se dibuja un subtítulo, así que las referencias `region` y `style` que lleva un `<p>` se descartan al salir de TTML, y cada bloque vuelve a la posición predeterminada que elige el reproductor: el borde inferior del fotograma, centrado, casi siempre.

¿Qué sucede con un bloque TTML de dos líneas en TXT?

Se escriben las dos líneas, una debajo de la otra, pero el archivo deja de decir que van juntas: TXT no puede agrupar líneas en un solo bloque, así que leer el resultado daría dos subtítulos donde tu archivo TTML tenía uno. Eso importa si después va a leer el archivo una pasada de traducción o una herramienta de resincronización.

¿Qué pasa con el prólogo TTML y sus tablas <styling> y <layout> en TXT?

Se descartan. Un archivo TTML guarda su aspecto y su disposición en la cabecera, no en las palabras: la declaración XML y sus espacios de nombres, la tabla `<styling>` de estilos con nombre (`tts:color`, `tts:fontWeight`), la tabla `<layout>` de regiones con nombre (`tts:origin`, `tts:extent`), cualquier `<metadata>` y los atributos `style` / `region` con los que un `<p>` apunta a ellas. TXT guarda bloques de subtítulos, no un documento, así que nada de esa cabecera tiene dónde caer. El estilo escrito dentro de un párrafo es otra cosa: un `<span tts:fontStyle="italic">` es énfasis sobre las palabras y se escribe con la marca propia de TXT allí donde TXT la tiene.

¿Qué aspecto tiene la salida cuando TTML se convierte en TXT?

Como TXT: sin números de bloque y sin códigos de tiempo; una línea de texto por línea de subtítulo. Cada bloque TTML se convierte en un bloque TXT, en el mismo orden y con el mismo texto.

¿Conservan los bloques TTML su orden en la salida TXT?

Sí, y de paso se ordenan por hora de inicio: primero los más tempranos, que es lo que esperan todos los formatos de este sitio y cómo los leen los reproductores. Si tu archivo TTML traía los bloques desordenados, la salida TXT los devuelve a su orden; eso cambia la estructura del archivo, no su contenido, y es deliberado.

¿Puedo convertir el TXT de vuelta a TTML?

Sí, y esa dirección tiene su propia lista: convertir TXT en TTML pierde los tiempos. La lista es distinta de la de arriba porque los dos formatos guardan cosas distintas.

¿Respeta la salida TXT la codificación del archivo TTML?

No: la salida es UTF-8, con finales de línea Unix y sin marca de orden de bytes, sea cual sea la que usara el archivo TTML. Un archivo que llega en UTF-16 o en una codificación Windows de un solo byte se decodifica a la entrada (el panel de resultados lo indica cuando ocurre); lo que sale es siempre el mismo TXT en UTF-8.

Herramientas relacionadas