Ir para o conteúdo principal
SubtitleMatrix

Converter CSV para TTML

Ou cole o texto da legenda

O que esta conversão altera

Nada se perde nesta direção — cada recurso do formato de origem tem para onde ir no formato de destino.

Esta lista vem da matriz de capacidades destes dois formatos, não do arquivo específico que você carregou. Um arquivo específico pode perder mais se usar recursos que o formato permite mas a matriz não modela.

Esta página converte CSV em TTML. Arraste um arquivo — ou cole o texto — e receba a versão TTML de volta. A conversão roda inteiramente no seu navegador, então nada é enviado e nenhuma conta é necessária.

Nada se perde nesta direção. Tudo o que o CSV consegue expressar tem equivalente no TTML, então a saída são as mesmas legendas num invólucro diferente — a linha do tempo, as quebras de linha e o texto sobrevivem. Isso vale para qualquer arquivo CSV, inclusive um que use todos os recursos que o formato permite.

Um arquivo está bom, e uma temporada inteira também: a fila processa na ordem e os resultados descem juntos num único ZIP.

Exemplos

Um arquivo CSV típico, convertido para 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."

Saída

<?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>

Nada é perdido aqui: compare os dois lados linha a linha.

A mesma conversão sobre uma entrada problemática

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.

Saída

<?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>

É o tipo de dano que os arquivos reais têm: fim de linha misturado, espaço sobrando, campos vazios. Compare com o exemplo organizado acima para ver o que o analisador perdoa.

Perguntas frequentes

Como fica a saída quando CSV vira TTML?

Fica no formato TTML: sem números de bloco, cada legenda é um elemento p com os atributos begin e end, dentro de um body, e o documento inteiro abre com a declaração XML. Cada fala CSV vira uma fala TTML, na mesma ordem, com o mesmo texto.

Os tempos do CSV ficam exatos no arquivo TTML?

Ficam exatos ao milissegundo, que é o limite dos dois formatos. Tanto o CSV quanto o TTML escrevem um instante da mesma maneira, 00:00:04.126, então os timecodes saem caractere por caractere como entraram.

Como sai no TTML uma fala CSV de duas linhas?

Sai como duas linhas separadas por um br, que é como o TTML escreve uma quebra rígida. O vínculo se mantém: as duas linhas do CSV continuam pertencendo a uma única legenda no TTML, e o player as exibe juntas.

A ordem das falas CSV se mantém no TTML?

Se mantém, com as falas ordenadas pelo início no caminho, do mais cedo para o mais tarde, que é como os players leem. Se o seu CSV listava as falas fora de ordem, o TTML as devolve em ordem; a mudança é de estrutura, não de conteúdo, e é proposital.

Consigo converter o TTML de volta para CSV?

Consigo, e o preço aparece só na volta: um TTML pode marcar estilo com atributos tts, posicionar a fala numa região e separar metadados no head, e o CSV não tem coluna para nada disso. Nesta direção, de CSV para TTML, nada se perde — o custo fica do outro lado da rua.

O TTML de saída mantém a codificação do arquivo CSV?

Não: o TTML gerado é UTF-8, com fim de linha Unix e sem BOM, qualquer que tenha sido a codificação do CSV. Um arquivo que chega em UTF-16 ou numa codificação de byte único do Windows é decodificado na leitura, e o painel de resultado avisa quando isso acontece.

Ferramentas relacionadas