Andare al contenuto principale
SubtitleMatrix

Convertire SMI in CSV

Oppure incollare il testo dei sottotitoli

Cosa cambia questa conversione

3 elementi vengono scartati o richiedono una decisione

  • Stile

    tutto lo stile (grassetto, corsivo, colore, contorno, ombra)

  • Posizionamento

    il posizionamento sullo schermo (ogni blocco torna alla posizione predefinita)

  • Contenuto specifico del formato

    il contenuto che il formato di partenza tiene fuori dai suoi blocchi (blocchi non-cue, testo di intestazione, impostazioni per blocco, eventi commentati) — il formato di destinazione non ha un posto per esso

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 SAMI in CSV: trascini un file, o incolli il testo, e riottieni la versione CSV, una riga per blocco con inizio, fine e testo. La conversione gira interamente nel browser, quindi nessun file viene caricato.

I due formati non conservano le stesse cose, e la differenza non è estetica: stile, posizione e contenuti propri di SAMI non hanno posto in CSV. L’elenco qui sopra deriva da ciò che ciascuno dei due formati sa esprimere, non dal tuo file: la risposta è la stessa prima che tu carichi qualcosa.

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

Esempi

Un file SAMI tipico, convertito in CSV

Ingresso

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>&nbsp;
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

Uscita

start,end,text
00:00:01.000,00:00:03.000,Hello there.
00:00:03.500,00:00:06.000,"How are you?
Fine, thanks."

In questa uscita si perdono stile, posizione e contenuti propri del formato. Tutto il resto corrisponde riga per riga.

La stessa conversione su un input disordinato

Ingresso

<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom &amp; Jerry
<SYNC Start=12000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

Uscita

start,end,text
00:00:02.500,00:00:09.000,"Line one
Line two"
00:00:09.000,00:00:12.000,Tom &amp; Jerry

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

Domande frequenti

Grassetto e corsivo sopravvivono dal SAMI al CSV?

L’enfasi sì, lo stile globale no. La formattazione che appartiene a un frammento di testo — grassetto, corsivo, sottolineatura, un colore — viene scritta nel testo CSV con i tag `<i>`, `<b>`, `<u>` e `<font color="…">`, perché è l’unico tipo di stile che un formato a blocchi sa ancora portare. Si perde tutto ciò che il file SAMI diceva fuori dal testo: il carattere, la sua dimensione, il contorno, l’ombra e i margini, più il blocco `<STYLE>` che li conteneva.

Che fine fa la posizione sullo schermo da SAMI a CSV?

CSV non sa dire dove viene disegnato un sottotitolo, quindi gli attributi dei paragrafi e il CSS a cui rimandano cadono in uscita dal SAMI, e ogni blocco torna alla posizione predefinita scelta dal lettore — per la maggior parte, in basso al centro del fotogramma.

Che fine fanno il blocco `<STYLE>`, il `<TITLE>` e gli attributi `Class=` di SAMI nel CSV?

Vengono scartati. Un file CSV ha tre colonne — `start`, `end`, `text` — e nient’altro: non c’è una testata in cui tenere il `<TITLE>`, non c’è una tabella degli stili in cui accogliere il CSS del blocco `<STYLE>` e non c’è una colonna per il `Class=ENCC` che ogni paragrafo porta. L’enfasi scritta dentro il paragrafo si salva solo perché viaggia dentro la cella di testo, come tag.

Che aspetto ha l’uscita quando SAMI diventa CSV?

Ha l’aspetto del CSV: una riga di intestazione (`start,end,text`) e poi una riga per blocco. Ogni blocco SAMI diventa un blocco CSV, nello stesso ordine, con lo stesso testo.

I tempi SAMI restano esatti nel file CSV?

Sì, al millisecondo — che è la precisione massima di entrambi i formati. SAMI scrive un istante come `Start=4126` e CSV scrive lo stesso istante come `00:00:04.126`; nulla viene arrotondato o spostato fra i due, e un blocco rimasto sullo schermo per 2,9 secondi lo resta.

Come esce in CSV un blocco SAMI su due righe?

Come due righe dentro l’unica cella di testo, fra virgolette come il CSV richiede. L’abbinamento sopravvive: le due righe SAMI appartengono ancora a un solo sottotitolo nell’uscita CSV.

I blocchi SAMI mantengono l’ordine nell’uscita CSV?

Sì, e lungo la strada vengono ordinati per istante di inizio — prima il più antico, che è l’ordine atteso da ogni formato di questo sito e quello con cui i lettori li interpretano. Se il tuo file SMI elencava i blocchi fuori sequenza, l’uscita CSV li rimette in ordine: è un cambiamento nella struttura del file, non nel suo contenuto, ed è voluto.

Posso riconvertire il CSV in SMI?

Sì, e quella direzione non costa nulla in più: un file CSV contiene meno di quanto SAMI sappia conservare, quindi tornando indietro non si perde altro. Quello che questa direzione ha già buttato resta però buttato — stile, posizione e contenuti propri del formato non si ricostruiscono da un file CSV, perché nulla in esso registra come erano.

L’uscita CSV conserva la codifica del file SMI?

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

Strumenti correlati