Converter xml para srt

Conversor online gratuito de XML para SRT

Converta XML de legendas em legendas SRT compatíveis e editáveis e verifique a sincronização e a perda de formatação.

Converter XML para SRT online - grátis

Uploading…
Os arquivos selecionados excedem o limite total de 9 MB. Selecione arquivos menores ou em menor quantidade.

Seu arquivo é processado instantaneamente e excluído assim que você o baixa.

Como funciona

  1. 1/3

    Envie seu arquivo .xml

    Clique para selecionar o arquivo que deseja converter ou simplesmente arraste e solte o arquivo na área indicada.

  2. 2/3

    Faça a conversão de .xml para .srt

    Após o envio do arquivo, clique em converter quando estiver pronto.

  3. 3/3

    Baixe o arquivo .srt convertido

    O resultado da conversão está pronto para download.

Como converter xml para srt arquivo

Um editor de vídeo, media player ou serviço de legendas pode exigir SRT quando as legendas foram exportadas como XML de outro sistema. A conversão torna o arquivo portátil e editável, mas somente se o XML contiver texto de cue identificável e dados de temporização.

O que é o formato XML

XML é uma linguagem de marcação estruturada, não um formato de legendas específico. Sistemas de legendas e transcrições usam diferentes schemas XML, incluindo TTML/DFXP, EBU-TT, Final Cut Pro XML e exportações proprietárias de softwares de edição, transmissão e conversão de fala em texto.

Um arquivo XML de legendas pode armazenar cues em elementos como <p begin="00:00:01.000" end="00:00:04.000"> ou usar atributos chamados start, end, in, out ou duration. Final Cut Pro XML pode descrever um projeto de edição em vez de conter cues de legendas diretamente utilizáveis, portanto pode exigir a exportação do aplicativo original antes da conversão.

XML não tem uma estrutura universal para legendas. Renomear captions.xml para captions.srt não o converte; o software precisa identificar os campos de temporização, extrair o texto visível e reescrever os dados na sintaxe SRT.

O que é o formato SRT

SRT é um formato de texto simples compatível com a maioria dos players de vídeo, editores não lineares, media servers e plataformas de legendas. Cada cue contém um número sequencial, um horário inicial e final, o texto da legenda e uma linha em branco:

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

Os timestamps SRT usam vírgulas antes dos milissegundos e o formato HH:MM:SS,mmm. As legendas XML podem usar segundos decimais, pontos, números de frames, horário do relógio, ticks ou durações ISO 8601. SRT é pequeno, fácil de editar em um editor de texto e amplamente compatível, mas contém muito menos metadados e estilos do que a maioria dos schemas XML de legendas.

Converta XML reconhecido com Subtitle Edit

  1. Faça um backup do XML de origem.
  2. Instale a versão desktop atual do Subtitle Edit, um editor de legendas de código aberto para Windows.
  3. Abra o arquivo por meio de File → Open. Subtitle Edit pode importar vários formatos padrão de legendas e captions, mas o suporte depende do schema XML específico.
  4. Verifique os cues importados na grade de legendas e na timeline. Compare os cues inicial, intermediário e final com a origem ou o vídeo e confira as quebras de linha e os caracteres não latinos.
  5. Exporte por meio de File → Save as, selecione SubRip (*.srt) e escolha a codificação UTF-8 se a caixa de diálogo oferecer uma opção de codificação.

Se o arquivo abrir como XML comum, não importar nenhum cue ou produzir horários incorretos, provavelmente se trata de um schema não compatível ou específico de um projeto. Inspecionar o XML em um editor de texto pode revelar se ele contém texto real de legendas e dados de temporização; não considere a abertura bem-sucedida do arquivo como prova de uma conversão correta.

Use um conversor online para arquivos documentados e não confidenciais

Serviços online de legendas, como Happy Scribe e VEED, são compatíveis com formatos selecionados de legendas e captions, mas o suporte a XML varia de acordo com o produto e pode estar limitado a um schema específico, como TTML. Verifique se o serviço lista explicitamente o tipo exato de XML antes de fazer o upload. Não faça upload de legendas confidenciais, não lançadas ou que contenham informações de identificação pessoal, a menos que o processamento por terceiros seja permitido.

Sites genéricos de XML para texto ou XML para SRT frequentemente selecionam os elementos errados, ignoram namespaces, tratam milissegundos como segundos ou retornam um arquivo vazio. Baixe o resultado, abra-o em um editor de legendas e compare seus horários com o vídeo antes de usá-lo.

Converta um schema personalizado previsível com Python

Um script é adequado quando cada cue tem valores reconhecíveis de start, end e texto. Este exemplo é compatível com horários de relógio e segundos numéricos, além de valores de 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')

Execute-o com python xml_to_srt.py captions.xml captions.srt. Altere os nomes dos atributos e a seleção de cues de acordo com o schema de origem. O script não interpreta timecodes SMPTE baseados em frames, durações ISO 8601, ticks, unidades de milissegundos não documentadas, namespaces XML que exigem uma busca qualificada nem elementos separados de estilos e falantes. Ele também transforma quebras de linha incorporadas em espaços; substitua essa linha de processamento de texto se a estrutura das linhas precisar ser preservada.

Verifique a temporização, a codificação e os metadados perdidos

  • Confirme a base de tempo antes da conversão. Contagens de frames exigem a taxa de frames da origem; valores numéricos podem representar segundos, milissegundos ou ticks.
  • Converta corretamente as durações relativas: um cue com begin e dur termina em begin + dur.
  • Verifique cues sobrepostos, cues com duração zero, horários invertidos, texto ausente, cues duplicados e múltiplas faixas de idioma. Os leitores SRT lidam com esses casos de forma inconsistente.
  • Preserve a codificação de caracteres declarada no XML ao ler a origem e salve o SRT como UTF-8. Inspecione os caracteres acentuados e os scripts não latinos após a exportação.
  • Espere perder recursos específicos do XML, como posicionamento, cores, fontes, metadados de falantes, temporização de karaokê, ordem de leitura e estilos complexos de linha. Recrie manualmente as identificações de falantes ou a formatação essenciais.
  • Abra o SRT resultante no Subtitle Edit ou em outro editor de legendas e visualize-o junto ao vídeo. Verifique os cues inicial e final, as mudanças de cena, as quebras de linha e a sincronização antes da entrega.

Comparação de formato: XML vs SRT

Como os formatos XML e SRT se comparam nas propriedades mais importantes para esta conversão.

Comparação dos formatos de arquivo XML e SRT
Propriedade .XML Extensible Markup Language .SRT SubRip Subtitle
Padrão aberto Sim Parcialmente aberto
Compressão Sem compressão Sem compressão
Tamanho típico do arquivo Pequeno Muito pequeno
Abre num navegador web Sim, nativamente Parcial
Edição posterior Fácil Fácil
Suporte a metadados Básico Básico
Legível em texto simples Sim Sim
Mais usado para Intercâmbio de dados Partilha e distribuição
Introduzido 1998 1997
Desenvolvedor W3C Unknown / SubRip community
Tipo MIME application/xml application/x-subrip

Perguntas frequentes

O conversor de XML para SRT é gratuito?

Sim, converter XML para SRT no 101convert.com é totalmente gratuito. Não é necessário cadastro, e-mail nem instalação. Se você precisa de um limite de tamanho de arquivo maior ou quer converter mais arquivos de uma vez, veja nossos planos.

Qual o tamanho máximo do meu arquivo XML?

Você pode enviar arquivos XML de até 100 MB e converter até 100 arquivos de uma vez em um único lote.

O que acontece com os arquivos enviados?

Os arquivos são processados automaticamente e excluídos dos nossos servidores poucos minutos após a conversão. Nunca visualizamos nem compartilhamos seus arquivos.

Preciso instalar algum programa para converter XML para SRT?

Não. A conversão de XML para SRT é feita totalmente online no navegador e funciona no Windows, Mac, Linux, Android e iPhone.

A conversão falhou?

Na maioria dos casos, a causa é um formato de arquivo incorreto. Envie um arquivo XML válido para esta conversão de XML para SRT. Às vezes, o problema também pode estar do nosso lado. Analisamos falhas de conversão recorrentes e desativamos ou corrigimos o conversor se detectarmos algum defeito.

A formatação e o posicionamento das legendas em XML serão perdidos ao converter para SRT?

Geralmente, sim: o SRT mantém os números das legendas, os horários de início e fim e o texto da legenda, mas o estilo em XML, as cores, os metadados do locutor, o posicionamento na tela e outros atributos podem ser simplificados ou descartados. As quebras de linha básicas costumam ser preservadas, dependendo do formato de legenda XML.

A sincronização das legendas continuará precisa ao converter XML para SRT?

Ela pode continuar precisa se o XML usar códigos de tempo compatíveis e a base de tempo correta, mas a sincronização baseada em frames ou específica do formato pode exigir conversão. Uma incompatibilidade na taxa de frames pode deslocar os inícios e finais das legendas, enquanto legendas sobrepostas ou malformadas podem ser alteradas ou rejeitadas.

Por que minha conversão de legendas XML gera legendas SRT ausentes ou vazias?

XML genérico não é automaticamente um formato de legenda, então a conversão pode falhar quando o arquivo usa uma estrutura de legenda, namespaces, campos de tempo ou elementos de texto não compatíveis. O XML precisa conter entradas de legenda reconhecíveis, com texto legível e horários de início e fim válidos.

É possível converter um SRT de volta para o XML original sem perder informações?

Geralmente, não, porque o SRT não pode representar todos os dados de legenda do XML, como formatação detalhada, posicionamento, metadados e campos de tempo personalizados. O SRT resultante continua editável como texto simples de legenda, mas convertê-lo de volta geralmente exige recriar as informações descartadas.