Il WebVTT è il formato di sottotitolo che un browser sa leggere. Ed è l'unico: metti un SRT in un video HTML5 e non succede assolutamente niente. Né errore, né avviso, né sottotitolo.
La sua estensione è .vtt e dentro somiglia molto a un SRT. Tre cose cambiano: porta un'intestazione obbligatoria, mette un punto dove un SRT mette una virgola, e sa esprimere considerevolmente più di quanto un SRT riesca.
Cosa c'è dentro
WEBVTT
1
00:00:04.120 --> 00:00:06.480
Prima di entrare nei numeri,
ripassiamo dove siamo.
2
00:00:06.600 --> 00:00:09.000 line:90% align:start
Quello che non mi aspettavo
era il calo della seconda settimana.
Quella prima riga è obbligata a dire WEBVTT. Se non compare, se una marca dell'ordine dei byte le sta davanti, o se una riga vuota la precede, il browser butta via tutto il file.
Da lì in poi, gli stessi blocchi di sempre. Con due differenze che si vedono a colpo d'occhio: il punto davanti ai millisecondi, e la possibilità di appendere impostazioni in fondo alla riga dei tempi.
Cosa aggiunge rispetto a un SRT
Posizione e allineamento. line:90% fa scendere il sottotitolo, align:start lo attacca a sinistra e position:20% lo sposta di lato. Comodo per non coprire una scritta che è già nell'immagine.
Stile. Un blocco STYLE con CSS vero in cima al file, e classi sparse nel testo tramite <c.narratore>. Colori, dimensioni, ombre.
Chi parla. Un'etichetta <v Marta>Buongiorno</v> è il modo in cui si segna la voce. I player capaci di riconoscerla possono dipingerla di un altro colore; gli altri passano avanti. Su un'intervista o su una riunione, quella è la frontiera fra un muro di testo e qualcosa di leggibile.
Note e regioni. I blocchi NOTE conservano commenti che nessuno vede, e REGION delimita zone dello schermo con uno scorrimento proprio, come le scritte che salgono in una diretta.
Identificatori di battuta. Sopra la riga dei tempi, ogni blocco accetta un nome — intro, domanda-3 — per puntarci da JavaScript.
Quando ti serve un VTT
Ogni volta che il video gira dentro un browser. Se la tua pagina contiene un <video> col suo <track>, quel file deve essere WebVTT:
<video controls>
<source src="riunione.mp4" type="video/mp4" />
<track src="riunione.vtt" kind="subtitles" srclang="it" label="Italiano" default />
</video>
E lo stesso coi player web di oggi (Video.js, Plyr, Shaka) e con la trasmissione HLS, che distribuisce i sottotitoli come segmenti WebVTT.
Passata la porta del browser, quasi nessuno lo chiede: i programmi di montaggio da computer, i player che tutti hanno sempre usato e quasi tutti i moduli di caricamento si aspettano ancora un SRT.
Due cose che si rompono e non sono colpa del file
Il server è obbligato a mandarlo come text/vtt. Consegnato come text/plain o come application/octet-stream, certi browser lo buttano via. Questo si tocca nella configurazione del server, mai nel file.
E deve venire dalla stessa origine, o portare CORS. Un .vtt ospitato su un altro dominio senza l'intestazione Access-Control-Allow-Origin non si carica mai, per quanto bene l'indirizzo funzioni quando lo apri a mano. È la causa numero uno del classico «il video gira, i sottotitoli no».
Nessuno dei due è un problema di contenuto e nessuno dei due lascia un errore visibile sulla pagina. Compaiono nella scheda di rete degli strumenti del browser, e solo se sai che devi andare a guardare lì.
Convertirlo
Il tragitto da SRT a VTT è semplice: mettere l'intestazione, mettere un punto dove c'era la virgola, e proteggere quei caratteri & e < che un SRT tiene come testo e che il WebVTT prenderebbe per marcatura. Il nostro convertitore da SRT a VTT risolve tutti e tre nel tuo browser, senza che il file ne esca.
Al contrario, tutto quello che un SRT non sa dire resta fuori — la posizione, lo stile, le regioni —, quindi il convertitore da VTT a SRT lo scarta e trasforma le etichette di voce in un «Marta:» che apre la riga, che è come un SRT sa mostrarlo. Quale scegliere e per cosa.
Se quello che hai è il video e non i sottotitoli
Caricalo e restituiamo la trascrizione coi suoi minuti, con ogni voce separata e con un nome, e con un riassunto. Il VTT ne cade già montato e con le voci segnate. Senza account per iniziare.