Andare al contenuto principale
SubtitleMatrix

Convertire CSV in TTML

Oppure incollare il testo dei sottotitoli

Cosa cambia questa conversione

In questa direzione non si perde nulla: ogni caratteristica del formato di partenza ha un posto dove andare nel formato di destinazione.

Questo elenco deriva dalla matrice delle capacità di questi due formati, non dal particolare file caricato. Un file specifico può perdere di più se usa caratteristiche che il formato consente ma la matrice non modella.

Questa pagina converte un file CSV in TTML. Si trascina il file nel riquadro, oppure si incolla il testo, e si riprende indietro la versione TTML. La conversione avviene interamente nel browser: nessun file viene caricato e non serve un account.

In questa direzione non si perde nulla. Ogni caratteristica che CSV sa esprimere ha un equivalente in TTML, quindi l’uscita sono gli stessi sottotitoli in un’altra confezione: la linea temporale, gli a capo e il testo sopravvivono tutti. Vale per qualunque file CSV, compreso uno che sfrutti ogni caratteristica concessa dal formato.

Un file va bene, e così un’intera stagione: la coda li lavora in ordine e i risultati scendono insieme in un unico ZIP.

Esempi

Un file CSV tipico, convertito in TTML

Ingresso

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."

Uscita

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

Qui non si perde nulla: confronto le due parti riga per riga.

La stessa conversione su un input scomodo

Ingresso

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.

Uscita

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

È il tipo di danno che hanno i file reali: fine riga misti, spazi vaganti, campi lasciati vuoti. Confronto con l’esempio ordinato qui sopra per vedere cosa il parser perdona.

Domande frequenti

Che aspetto ha il risultato quando CSV diventa TTML?

Come TTML: niente numeri di blocco, ogni sottotitolo è un elemento `<p>` con gli attributi `begin` ed `end`, annidato in un `<body>` (e di solito in un `<div>`), con una dichiarazione XML sopra l’intero documento. Ogni blocco CSV diventa un blocco TTML, nello stesso ordine, con lo stesso testo.

I tempi CSV sono esatti nel file TTML?

Sì, al millisecondo, che è la precisione massima di entrambi i formati. CSV e TTML scrivono un istante nello stesso modo, `00:00:04.126`, quindi i timecode escono carattere per carattere come sono entrati.

Come esce in TTML un blocco CSV su due righe?

Come due righe separate da un `<br/>`, che è il modo in cui TTML scrive un a capo forzato. L’abbinamento sopravvive: le due righe CSV restano un solo sottotitolo nel file TTML e il lettore le mostra insieme.

I blocchi CSV mantengono l’ordine nel file TTML?

Sì, e lungo la strada vengono ordinati per istante di inizio: prima il più anticipato, che è l’ordine atteso da ogni formato di questo sito e quello con cui i lettori li scorrono. Se il file CSV elencava i blocchi fuori sequenza, il TTML li rimette in ordine: è un intervento sulla struttura del file, non sul contenuto, ed è voluto.

Posso riconvertire il TTML in CSV?

Sì, e quella è la direzione con perdite: TTML esprime stile e posizione con elementi e attributi, e in una tabella a tre colonne non hanno dove stare. In questo verso non si perde nulla, quindi quel costo compare solo tornando indietro.

Il file TTML conserva la codifica del file CSV?

No: l’uscita è UTF-8, con fine riga Unix e senza BOM, qualunque codifica usasse il CSV. Un file che arriva in UTF-16 o in una codifica a byte singolo di Windows viene decodificato in ingresso (il pannello del risultato lo segnala quando accade); quello che esce è sempre lo stesso TTML in UTF-8.

Strumenti correlati