Andare al contenuto principale
SubtitleMatrix

Convertire SBV in JSON

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 SBV in JSON: trascini un file, o incolli il testo, e riottieni la versione JSON, con i blocchi come oggetti e i tempi in millisecondi interi. La conversione gira nel browser e nessun file viene caricato.

I due formati hanno le stesse capacità dichiarate, e il rapporto delle perdite qui sopra non elenca nulla perché non c’è nulla da elencare: ogni informazione che SBV conserva, JSON la conserva, e con la stessa precisione al millisecondo. Non è un’omissione, è il risultato del confronto fra ciò che i due formati sanno esprimere.

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 SBV tipico, convertito in JSON

Ingresso

0:00:01.000,0:00:03.500
The quick brown fox.

0:00:04.000,0:00:06.250
Jumps over the lazy dog.

0:00:07.000,0:00:09.000
Two lines here.
And a second one.

Uscita

{
  "version": 1,
  "cues": [
    {
      "start": 1000,
      "end": 3500,
      "lines": [
        "The quick brown fox."
      ]
    },
    {
      "start": 4000,
      "end": 6250,
      "lines": [
        "Jumps over the lazy dog."
      ]
    },
    {
      "start": 7000,
      "end": 9000,
      "lines": [
        "Two lines here.",
        "And a second one."
      ]
    }
  ]
}

Qui non si perde nulla: confronta i due lati riga per riga.

La stessa conversione su un input disordinato

Ingresso

0:00:02.000,0:00:04.000
Carriage-return line endings.

	0:00:06.000,0:00:08.000
Indented timecode, no final newline.

Uscita

{
  "version": 1,
  "cues": [
    {
      "start": 2000,
      "end": 4000,
      "lines": [
        "Carriage-return line endings."
      ]
    },
    {
      "start": 6000,
      "end": 8000,
      "lines": [
        "Indented timecode, no final newline."
      ]
    }
  ]
}

È 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

Che aspetto ha l’uscita quando SBV diventa JSON?

Ha l’aspetto del JSON: un array di oggetti blocco, ciascuno con `id`, `start` ed `end`, più l’oggetto `styles` e il titolo. Ogni blocco SBV diventa un blocco JSON, nello stesso ordine, con lo stesso testo.

I tempi SBV restano esatti nel file JSON?

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

Come esce in JSON un blocco SBV su due righe?

Come due voci nell’array `lines` del blocco. L’abbinamento sopravvive: le due righe SBV appartengono ancora a un solo sottotitolo nell’uscita JSON, e il lettore le mostra insieme.

I blocchi SBV mantengono l’ordine nell’uscita JSON?

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 SBV elencava i blocchi fuori sequenza, l’uscita JSON li rimette in ordine: è un cambiamento nella struttura del file, non nel suo contenuto, ed è voluto.

Posso riconvertire il JSON in SBV?

Sì, ed è la direzione con un costo: stile, posizione e karaoké non hanno posto in SBV. In questa direzione, da SBV a JSON, non si perde nulla: quel costo compare solo tornando indietro.

L’uscita JSON conserva la codifica del file SBV?

No: l’uscita è UTF-8, con fine riga Unix e senza BOM, qualunque codifica usasse il file SBV. 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 JSON in UTF-8.

Strumenti correlati