Saltar al contenido principal
SubtitleMatrix

Convertir CSV a TTML

O pega el texto de los subtítulos

Qué cambia esta conversión

No se pierde nada en esta dirección: cada característica del formato de origen tiene un lugar al que ir en el formato de destino.

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 CSV en TTML. Arrastra un archivo —o pega el texto— y recibes la versión TTML. La conversión corre entera dentro del navegador: no se sube nada y no se pide cuenta.

En esta dirección no se pierde nada. Todo lo que CSV puede expresar tiene un equivalente en TTML —una fila de la tabla se vuelve un elemento con dos tiempos—, así que la salida son los mismos subtítulos con otra envoltura. Eso vale para cualquier archivo CSV, incluso uno que use todas las funciones que permite el formato.

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

Ejemplos

Un archivo CSV típico, convertido a TTML

Entrada

start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."

Resultado

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:03.500">The quick brown fox.</p>
<p begin="00:00:04.000" end="00:00:06.250">Jumps over, the lazy dog.</p>
<p begin="00:00:07.000" end="00:00:09.000">Two lines here.<br/>And a second one.</p>  </body>
</tt>

Aquí no se pierde nada: compara los dos lados línea por línea.

La misma conversión con una entrada difícil

Entrada

id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.

Resultado

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:04.000">Hello there, friend.</p>
<p begin="00:00:05.000" end="00:00:07.000">Second line.</p>
<p begin="00:00:10.000" end="00:00:10.001">End before start.</p>
<p begin="00:00:12.000" end="00:00:14.000">Unquoted comma in text, right here.</p>  </body>
</tt>

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

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

Como TTML: sin números de bloque; cada subtítulo es un elemento `<p>` con atributos `begin` y `end`, anidado en un `<body>` (y normalmente en un `<div>`), con una declaración XML encima de todo el documento. Cada bloque CSV se convierte en un bloque TTML, en el mismo orden y con el mismo texto.

¿Son exactos los tiempos CSV en el archivo TTML?

Sí, al milisegundo, que es lo más fino que llega cualquiera de los dos formatos. Tanto CSV como TTML escriben un instante igual, `00:00:04.126`, así que los códigos de tiempo salen carácter por carácter como entraron.

¿Cómo sale en TTML un bloque CSV de dos líneas?

Como dos líneas con un `<br/>` entre ellas, que es como TTML escribe un salto de línea duro. La pareja se mantiene: las dos líneas CSV siguen perteneciendo a un mismo subtítulo en la salida TTML, y el reproductor las muestra juntas.

¿Mantienen las filas CSV su orden en la salida TTML?

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 CSV traía los bloques desordenados, la salida TTML los devuelve a su orden; eso cambia la estructura del archivo, no su contenido, y es deliberado.

¿Puedo convertir el TTML de vuelta a CSV?

Sí, y esa es la dirección con pérdidas: TTML → CSV deja fuera las hojas de estilo, las regiones y los metadatos del documento TTML, porque una tabla CSV solo guarda inicio, fin y texto. En este sentido (CSV → TTML) no se pierde nada, así que ese coste solo aparece si vuelves.

¿Mantiene la salida TTML la codificación del archivo CSV?

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 CSV. 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 TTML en UTF-8.

Herramientas relacionadas