Converti xml in srt

Convertitore online gratuito da XML a SRT

Converti il caption XML in sottotitoli SRT compatibili e modificabili e verifica il timing e la formattazione persa.

Converti XML in SRT online - gratuito

Uploading…
I file selezionati superano il limite totale di 9 MB. Seleziona file meno numerosi o più piccoli.

Il tuo file viene elaborato istantaneamente ed eliminato non appena lo scarichi.

Come funziona

  1. 1/3

    Carica il tuo file .xml

    Fai clic per selezionare il file che vuoi convertire oppure trascinalo semplicemente nell'area indicata.

  2. 2/3

    Avvia la conversione da .xml a .srt

    Dopo il caricamento del file, fai clic su converti quando sei pronto.

  3. 3/3

    Scarica il file .srt convertito

    Il risultato della conversione è pronto per il download.

Come convertire xml in srt file

Un editor video, un media player o un servizio per sottotitoli può richiedere SRT quando i sottotitoli sono stati esportati come XML da un altro sistema. La conversione rende i sottotitoli portabili e modificabili, ma solo se l'XML contiene testo dei cue identificabile e dati di temporizzazione.

Cos'è il formato XML

XML è un linguaggio di markup strutturato, non un formato per sottotitoli. I sistemi per sottotitoli e trascrizioni utilizzano schemi XML diversi, tra cui TTML/DFXP, EBU-TT, Final Cut Pro XML ed esportazioni proprietarie da software di editing, broadcast e speech-to-text.

Un file XML per sottotitoli può memorizzare i cue in elementi come <p begin="00:00:01.000" end="00:00:04.000">, oppure utilizzare attributi denominati start, end, in, out o duration. Final Cut Pro XML può descrivere un progetto di editing invece di contenere cue per sottotitoli direttamente utilizzabili, quindi potrebbe richiedere l'esportazione dall'applicazione originale prima della conversione.

XML non dispone di una struttura universale per i sottotitoli. Rinominare captions.xml in captions.srt non lo converte; il software deve identificare i campi di temporizzazione, estrarre il testo visibile e riscrivere i dati nella sintassi SRT.

Cos'è il formato SRT

SRT è un formato di testo semplice supportato dalla maggior parte dei video player, degli editor non lineari, dei media server e delle piattaforme per sottotitoli. Ogni cue contiene un numero sequenziale, un'ora di inizio e di fine, il testo del sottotitolo e una riga vuota:

1
00:00:01,000 --> 00:00:04,000
Example caption.

I timestamp SRT utilizzano le virgole prima dei millisecondi e il formato HH:MM:SS,mmm. I sottotitoli XML possono invece utilizzare secondi decimali, punti, numeri di fotogramma, orario, tick o durate ISO 8601. SRT è compatto, facile da modificare in un editor di testo e ampiamente compatibile, ma contiene molti meno metadati e stili rispetto alla maggior parte degli schemi XML per sottotitoli.

Convertire XML riconosciuti con Subtitle Edit

  1. Crea un backup dell'XML di origine.
  2. Installa la versione desktop corrente di Subtitle Edit, un editor di sottotitoli open source per Windows.
  3. Apri il file tramite File → Open. Subtitle Edit può importare diversi formati standard per sottotitoli e caption, ma il supporto dipende dallo schema XML specifico.
  4. Controlla i cue importati nella griglia dei sottotitoli e nella timeline. Confronta il primo, il centrale e l'ultimo cue con l'origine o con il video, quindi controlla le interruzioni di riga e i caratteri non latini.
  5. Esporta tramite File → Save as, seleziona SubRip (*.srt) e scegli la codifica UTF-8 se la finestra di dialogo fornisce un'opzione per la codifica.

Se il file si apre come normale XML, non importa alcun cue o produce tempi errati, probabilmente si tratta di uno schema non supportato o specifico di un progetto. L'ispezione dell'XML in un editor di testo può rivelare se contiene testo effettivo dei sottotitoli e dati di temporizzazione; non considerare la corretta apertura del file come prova di una conversione corretta.

Utilizzare un convertitore online per file documentati e non sensibili

I servizi online per caption, come Happy Scribe e VEED, supportano formati selezionati per sottotitoli e caption, ma il supporto XML varia in base al prodotto e potrebbe essere limitato a uno schema denominato, come TTML. Verifica che il servizio elenchi esplicitamente il tipo esatto di XML prima del caricamento. Non caricare caption riservate, non ancora pubblicate o contenenti informazioni personali identificabili, a meno che il trattamento da parte di terzi sia consentito.

I siti generici per la conversione da XML a testo o da XML a SRT spesso selezionano gli elementi errati, ignorano gli namespace, interpretano i millisecondi come secondi o restituiscono un file vuoto. Scarica il risultato, aprilo in un editor di sottotitoli e confronta i tempi con il video prima di utilizzarlo.

Convertire uno schema personalizzato prevedibile con Python

Uno script è adatto quando ogni cue presenta valori riconoscibili per start, end e il testo. Questo esempio supporta orari e secondi numerici, oltre ai valori duration:

import re
import sys
import xml.etree.ElementTree as ET

def seconds(value):
    value = value.strip().replace(',', '.')
    if re.fullmatch(r'\d+(?:\.\d+)?', value):
        return float(value)
    match = re.fullmatch(r'(\d+):(\d{2}):(\d{2})(?:\.(\d+))?', value)
    if not match:
        raise ValueError(f'Unsupported time: {value}')
    h, m, s, fraction = match.groups()
    return int(h) * 3600 + int(m) * 60 + int(s) + float('0.' + (fraction or '0'))

def srt_time(value):
    ms = max(0, round(value * 1000))
    h, remainder = divmod(ms, 3600000)
    m, remainder = divmod(remainder, 60000)
    s, ms = divmod(remainder, 1000)
    return f'{h:02}:{m:02}:{s:02},{ms:03}'

root = ET.parse(sys.argv[1]).getroot()
cues = []
for element in root.iter():
    start = element.get('start') or element.get('begin')
    end = element.get('end')
    duration = element.get('duration') or element.get('dur')
    if not start or (not end and not duration):
        continue
    start = seconds(start)
    end = seconds(end) if end else start + seconds(duration)
    text = ' '.join(''.join(element.itertext()).split())
    if text and end > start:
        cues.append((start, end, text))

cues.sort()
with open(sys.argv[2], 'w', encoding='utf-8', newline='\n') as output:
    for number, (start, end, text) in enumerate(cues, 1):
        output.write(f'{number}\n{srt_time(start)} --> {srt_time(end)}\n{text}\n\n')

Eseguilo con python xml_to_srt.py captions.xml captions.srt. Modifica i nomi degli attributi e la selezione dei cue in base allo schema di origine. Lo script non interpreta i timecode SMPTE basati sui fotogrammi, le durate ISO 8601, i tick, le unità in millisecondi non documentate, gli namespace XML che richiedono una ricerca qualificata o gli elementi separati per stili e parlanti. Inoltre, comprime le interruzioni di riga incorporate in spazi; sostituisci quella riga di elaborazione del testo se è necessario preservare la struttura delle righe.

Controllare temporizzazione, codifica e metadati persi

  • Conferma la base temporale prima della conversione. I conteggi dei fotogrammi richiedono la frequenza dei fotogrammi di origine; i valori numerici possono rappresentare secondi, millisecondi o tick.
  • Converti correttamente le durate relative: un cue con begin e dur termina a begin + dur.
  • Controlla la presenza di cue sovrapposti, cue di durata zero, tempi invertiti, testo mancante, cue duplicati e tracce in più lingue. I lettori SRT gestiscono questi casi in modo non uniforme.
  • Preserva la codifica dei caratteri dichiarata nell'XML durante la lettura dell'origine e salva l'SRT come UTF-8. Controlla i caratteri accentati e gli alfabeti non latini dopo l'esportazione.
  • Prevedi la perdita di funzioni specifiche dell'XML, come posizionamento, colori, font, metadati dei parlanti, temporizzazione karaoke, ordine di lettura e stili complessi delle righe. Ricrea manualmente le etichette dei parlanti o la formattazione essenziali.
  • Apri l'SRT risultante in Subtitle Edit o in un altro editor di sottotitoli e visualizzalo insieme al video. Controlla il primo e l'ultimo cue, i cambi di scena, le interruzioni di riga e la sincronizzazione prima della consegna.

Confronto formato: XML vs SRT

Come i formati XML e SRT si confrontano sulle proprietà più importanti per questa conversione.

Confronto dei formati XML e SRT
Proprietà .XML Extensible Markup Language .SRT SubRip Subtitle
Standard aperto Sì Parzialmente aperto
Compressione Non compresso Non compresso
Dimensione tipica del file Piccolo Molto piccolo
Si apre in un browser web Sì, nativamente Parziale
Modifica successiva Facile Facile
Supporto metadata Base Base
Leggibile come testo semplice Sì Sì
Ideale per Scambio dati Condivisione e distribuzione
Introdotto 1998 1997
Sviluppatore W3C Unknown / SubRip community
Tipo MIME application/xml application/x-subrip

Domande frequenti

Il convertitore da XML a SRT è gratuito?

Sì, convertire XML in SRT su 101convert.com è completamente gratuito. Non sono richiesti registrazione, e-mail o installazione. Se hai bisogno di un limite di dimensione del file più alto o vuoi convertire più file alla volta, consulta i nostri piani.

Quanto può essere grande il mio file XML?

Puoi caricare file XML fino a 100 MB e convertire fino a 100 file alla volta in un unico lotto.

Cosa succede ai file caricati?

I file vengono elaborati automaticamente ed eliminati dai nostri server pochi minuti dopo la conversione. Non visualizziamo né condividiamo mai i tuoi file.

Devo installare un software per convertire XML in SRT?

No. La conversione da XML a SRT avviene completamente online nel browser e funziona su Windows, Mac, Linux, Android e iPhone.

La conversione non è riuscita?

Nella maggior parte dei casi, la causa è un formato di file errato. Carica un file XML valido per questa conversione da XML a SRT. A volte il problema può dipendere anche da noi. Analizziamo gli errori di conversione ricorrenti e disattiviamo o ripariamo il convertitore se rileviamo un difetto.

Convertendo XML in SRT si perdono la formattazione e il posizionamento delle didascalie?

Di solito sì: SRT conserva i numeri delle didascalie, i tempi di inizio e fine e il testo dei sottotitoli, ma lo stile XML, i colori, i metadati degli interlocutori, il posizionamento sullo schermo e altri attributi possono essere appiattiti o eliminati. Le interruzioni di riga di base vengono spesso conservate, a seconda del formato delle didascalie XML.

La sincronizzazione dei sottotitoli rimane precisa convertendo XML in SRT?

Può rimanere precisa se l'XML usa timecode supportati e la base dei tempi corretta, ma la sincronizzazione basata sui fotogrammi o specifica del formato potrebbe richiedere una conversione. Una differenza nella frequenza dei fotogrammi può spostare gli inizi e le fini delle didascalie, mentre le didascalie sovrapposte o malformate possono essere modificate o rifiutate.

Perché la conversione dei sottotitoli XML genera didascalie SRT mancanti o vuote?

L'XML generico non è automaticamente un formato per didascalie, quindi la conversione può fallire quando il file usa una struttura di didascalie, namespace, campi temporali o elementi di testo non supportati. L'XML deve contenere voci di didascalia riconoscibili, con testo leggibile e tempi di inizio e fine validi.

Posso riconvertire un SRT nell'XML originale senza perdere informazioni?

Di solito no, perché SRT non può rappresentare tutti i dati delle didascalie XML, come formattazione dettagliata, posizionamento, metadati e campi temporali personalizzati. L'SRT risultante resta modificabile come semplice testo di sottotitoli, ma per riconvertirlo è generalmente necessario ricreare le informazioni eliminate.