SSubToolDesk
pt
VTT → ASS

Converte WebVTT (.vtt) em Advanced SubStation Alpha

Transforma um ficheiro de legendas .vtt numa pista de legendas .ass com estilo, com uma definição de estilo adequada e sincronização em centésimos de segundo, pronta para leitores e editores que esperam ASS. Nada é carregado para isso.

Detetado: …
Solta um ficheiro, cola o texto ou edita diretamente
…
Local

Os teus ficheiros nunca tocam num servidor. Cada conversão nesta página é executada localmente no teu navegador através da API FileReader do JavaScript. Nada é enviado, registado ou armazenado. Seguro para gravações confidenciais de Zoom/Teams, vídeo não publicado e entrevistas legais.

Como funciona a conversão de VTT para ASS

O WebVTT (.vtt) é construído para legendagem em navegador: um cabeçalho WEBVTT, seguido de legendas como um intervalo de código de tempo HH:MM:SS.mmm --> HH:MM:SS.mmm com uma ou duas linhas de texto, opcionalmente com definições de legenda ou etiquetas de voz <v Orador>. O Advanced SubStation Alpha (.ass), o formato usado pelo Aegisub, por muitos grupos de fansub e por leitores avançados como o MPV e o VLC, está estruturado de forma muito diferente: um cabeçalho [Script Info], uma secção [V4+ Styles] que define tipos de letra, cores, contornos e posição no ecrã, e uma secção [Events] que faz referência a esses estilos linha a linha.

O conversor de VTT para ASS do SubToolDesk analisa as tuas legendas WebVTT localmente no teu navegador, descarta o cabeçalho WEBVTT e qualquer etiqueta de voz, converte cada código de tempo para o formato em centésimos de segundo H:MM:SS.cc do ASS, e escreve um ficheiro .ass completo e válido com um bloco [Script Info] funcional, um único estilo Default, e uma linha Dialogue: por legenda.

Como converter VTT para ASS (passo a passo)

  • Arrasta o teu ficheiro .vtt para o conversor acima, ou clica em “Carregar ficheiro” para o procurares.
  • Confirma que a etiqueta de formato detetado automaticamente mostra VTT.
  • Ativa Remover etiquetas de orador se a tua origem tiver etiquetas <v Orador> ou etiquetas de nome no início que não queiras manter.
  • Pressiona Descarregar para guardar um ficheiro .ass válido, com um nome que corresponde ao teu ficheiro original.

Porquê converter VTT para ASS

Um ficheiro de legendas .vtt é pensado para o leitor nativo de um navegador, não para um editor que renderiza texto com estilo. Converter para ASS é quase sempre sobre o que o leitor ou editor de destino precisa de fazer com esse texto:

  • Sincronização ao estilo karaoke para fansubs: as etiquetas de substituição por sílaba do ASS são a forma padrão como os grupos de fansub e de lançamento de anime criam efeitos de karaoke, mesmo quando a legenda de origem nasceu como uma pista WebVTT exportada de um navegador.
  • Posicionar o diálogo no ecrã: o ASS consegue colocar uma linha em qualquer parte do fotograma através de substituições de margem e alinhamento, um substituto mais flexível do que as próprias definições de legenda align/position do WebVTT, que este conversor não transpõe automaticamente.
  • Texto com cor ou contorno para acessibilidade ou estilo: o estilo Default com cor e contorno que este conversor escreve automaticamente mantém-se legível sobre vídeo brilhante ou com muito movimento de uma forma que o texto simples do WebVTT não consegue garantir.
  • Fluxos de trabalho em Aegisub, MPV e VLC: o Aegisub é construído especificamente em torno do formato ASS, e tanto o MPV como o VLC renderizam as suas substituições de estilo, por isso um projeto que comece ali precisa de ASS, não de um ficheiro de legendas de navegador.
  • Substituições de tipo de letra e tamanho por linha: o ASS permite que linhas Dialogue individuais substituam o tipo de letra, o tamanho ou a cor sem tocar no estilo base, algo que as definições de legenda do WebVTT não conseguem exprimir.
  • Ter um ficheiro base com estilo para construir a partir dele: a conversão deixa pronta a estrutura [Script Info], [V4+ Styles] e [Events], de modo que o único trabalho que falta no Aegisub é adicionar o próprio estilo.

Antes e depois: um exemplo real

Um breve excerto WebVTT de duas legendas, com uma definição de legenda, uma etiqueta de voz e uma etiqueta de itálico, convertido com Remover etiquetas de formatação ativado e Remover etiquetas de orador desativado (o estado predefinido nesta página):

Before
WEBVTT

00:00:03.500 --> 00:00:06.120 align:start position:10%
<v Jordan>Obrigado por te juntares à chamada de hoje.

00:00:06.500 --> 00:00:09.800
<v Priya><i>Claro, vamos começar.</i>
After
[Script Info]
Title: SubToolDesk Export
ScriptType: v4.00+
...

[V4+ Styles]
Format: Name, Fontname, Fontsize, ...
Style: Default,Arial,20,&H00FFFFFF,...

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:03.50,0:00:06.12,Default,,0,0,0,,Jordan: Obrigado por te juntares à chamada de hoje.
Dialogue: 0,0:00:06.50,0:00:09.80,Default,,0,0,0,,Priya: Claro, vamos começar.

O cabeçalho WEBVTT e a definição de legenda align:start position:10% desapareceram ambos; este conversor não tem um equivalente em ASS para as definições de legenda, por isso são eliminadas em vez de traduzidas. Cada código de tempo passou dos milissegundos separados por ponto do WebVTT para os centésimos de segundo separados por ponto do ASS (00:00:03.500 tornou-se 0:00:03.50). A etiqueta <i> desapareceu porque Remover etiquetas de formatação estava ativado. As etiquetas de voz <v Jordan> e <v Priya> também desapareceram, mas como Remover etiquetas de orador estava desativado, cada nome foi mantido e incorporado no texto do diálogo como prefixo Nome: em vez de eliminado por completo; não existe um campo Name do ASS separado para onde pudesse ir, esse campo fica vazio.

O que contém o ficheiro .ass gerado

O resultado é um ficheiro ASS completo e pronto para leitores. Inclui um bloco [Script Info] real, uma secção [V4+ Styles] com um estilo chamado Default (texto branco, com um contorno fino e uma sombra para legibilidade sobre o vídeo, centrado na parte inferior), e uma secção [Events] com uma linha Dialogue: para cada legenda. Depois podes abrir o resultado no Aegisub para ajustar tipos de letra, cores ou posição.

O que acontece às funcionalidades exclusivas do WebVTT

As definições de legenda do WebVTT (como align:start position:10%) e as etiquetas de voz <v Nome do Orador> não têm um equivalente direto em ASS no resultado deste conversor; as definições de legenda são eliminadas e as etiquetas de voz são removidas pelo interruptor Remover etiquetas de orador, tal como em qualquer outro conversor deste site. Se precisares dessa mesma informação em ASS, ela é expressa de forma diferente ali, através de substituições MarginL/MarginR/MarginV por linha ou de um estilo dedicado, e é um passo manual posterior depois de teres o ficheiro base.

Porque é que os códigos de tempo parecem diferentes em ASS

O WebVTT mede o tempo ao milissegundo com um ponto como separador (00:00:09.400); o ASS mede ao centésimo de segundo, um centésimo de um segundo, com uma hora sem zero à esquerda (0:00:09.40). O conversor trata esse arredondamento automaticamente, de modo que uma legenda que começa aos 9,4 segundos na origem acaba no centésimo de segundo correto no resultado.

Porque é que as pessoas passam de VTT para ASS

  • Fansubbing e grupos de lançamento de anime, onde os estilos e as substituições de posicionamento do ASS são o padrão de facto, mesmo quando a legenda de origem foi exportada como WebVTT.
  • Editores a trabalhar em Aegisub, que espera o ASS como o seu formato de projeto nativo em vez de uma importação simples de VTT.
  • Leitores e fluxos de trabalho que renderizam substituições com estilo, como o MPV ou certos codificadores de streaming, onde as definições de legenda do WebVTT não correspondem ao mesmo controlo de posicionamento e tipo de letra que o ASS oferece.
  • Começar um projeto de legendas com estilo a partir de uma pista de legendas exportada da web, usando este conversor para ter um ficheiro ASS estruturalmente válido antes de adicionar estilos à mão.

Privacidade pela arquitetura, não por política

A análise do VTT e a escrita do ficheiro ASS acontecem ambas em JavaScript a correr no separador do teu navegador. Não existe nenhum ponto de carregamento que esta funcionalidade pudesse contactar, o que importa quer a origem seja uma legenda exportada de um vídeo público do YouTube, quer seja uma gravação confidencial.

O que este conversor preserva e remove

Preservado:

  • Cada palavra do texto falado, pela ordem e pontuação originais.
  • A sincronização de cada legenda, reformatada da precisão em milissegundos do WebVTT para a precisão em centésimos de segundo do ASS sem desvios.
  • Uma linha Dialogue: por legenda de origem, pela mesma ordem em que apareciam no ficheiro VTT.
  • Os nomes das etiquetas de voz, como Jordan, incorporados no texto do diálogo como prefixo, quando Remover etiquetas de orador está desativado.

Removido:

  • A linha de cabeçalho WEBVTT, e quaisquer blocos NOTE, STYLE ou REGION.
  • As definições de legenda na linha de tempo, como align:start position:10%; o ASS não tem um equivalente direto no resultado deste conversor.
  • Etiquetas de formatação em linha como <i>, <b> e <u>, quando Remover etiquetas de formatação está ativado.
  • Etiquetas de voz como <v Nome do Orador>, nome incluído, quando Remover etiquetas de orador está ativado.

Problemas comuns e como resolvê-los

  • O resultado ainda tem etiquetas <i> ou <b> no texto do diálogo: ativa Remover etiquetas de formatação; só está ativado por predefinição se não o tiveres alterado.
  • Nomes como Jordan: continuam colados ao texto do diálogo: ativa Remover etiquetas de orador; está desativado por predefinição nesta página, por isso os nomes das etiquetas de voz passam diretamente como prefixo de texto a menos que o ative.
  • O posicionamento ou o alinhamento da legenda parece ter desaparecido: isso é esperado, as definições de legenda align/position do WebVTT não se transpõem para o ASS automaticamente; recria esse posicionamento com substituições de margem ou alinhamento no Aegisub se precisares dele.
  • Todas as linhas aparecem com o mesmo tipo de letra, tamanho e cor no Aegisub: isso é esperado, este conversor escreve um único estilo Default; abre o ficheiro no Aegisub depois para criares estilos adicionais ou substituições por linha.
  • A legenda parece ligeiramente dessincronizada depois da conversão: o ASS só guarda precisão ao centésimo de segundo, por isso uma legenda cronometrada ao milissegundo exato pode deslocar-se até um centésimo de segundo, bem abaixo de qualquer coisa percetível; se o desvio for maior do que isso, verifica antes os códigos de tempo do VTT original.
  • Letras acentuadas ou texto não inglês aparecem como caracteres estranhos tipo é: o .vtt de origem não foi guardado como UTF-8; volta a exportá-lo ou a guardá-lo como UTF-8 e carrega-o novamente.

O que esta ferramenta intencionalmente não faz

Escreve um único estilo Default e não tenta adivinhar sincronização de karaoke, cores por personagem ou substituições de posicionamento, isso é um passo manual (ou assistido pelo Aegisub) depois de teres um ficheiro base válido. Também não traduz automaticamente as definições de legenda do WebVTT em substituições de margem ou alinhamento do ASS; essa correspondência não é direta e fica para ser aplicada deliberadamente por ti, se precisares dela.

Perguntas frequentes

Como converto um ficheiro VTT para ASS?

Arrasta o teu ficheiro .vtt para o conversor acima, ou cola o conteúdo no painel da esquerda. Depois de a etiqueta de formato confirmar VTT, pressiona Descarregar. Um ficheiro .ass completo e válido é gerado no teu navegador.

O ficheiro ASS vai abrir corretamente no Aegisub, no VLC ou no MPV?

Sim. O resultado inclui um cabeçalho [Script Info] válido, uma secção [V4+ Styles] com um estilo Default, e uma secção [Events] com linhas Dialogue corretamente formatadas, a estrutura que os três esperam.

O que acontece às etiquetas de voz do WebVTT e ao posicionamento das legendas?

Etiquetas de voz como <v Nome do Orador> são removidas pelo interruptor Remover etiquetas de orador. As definições de posicionamento de legenda (como align ou position) não se transpõem automaticamente; o ASS exprime essa informação de forma diferente, através de estilos e substituições de margem por linha.

Porque é que os códigos de tempo parecem diferentes no resultado ASS?

O ASS usa precisão ao centésimo de segundo com um formato diferente dos códigos de tempo em milissegundos do WebVTT (0:00:09.40 em vez de 00:00:09.400). O conversor trata esta conversão automaticamente.

O meu ficheiro de legendas é carregado para algum lado para fazer esta conversão?

Não. A análise do VTT e a geração do ficheiro ASS acontecem inteiramente dentro do motor JavaScript do teu navegador. Nada é enviado para um servidor.

O YouTube ou o Vimeo aceitam um ficheiro de legendas .ass?

Não. A maioria dos formulários de carregamento, incluindo o YouTube e o Vimeo, aceita SRT ou VTT, não ASS. Converte para ASS para editores e leitores que renderizam o seu estilo (Aegisub, MPV, VLC), mas mantém uma cópia em VTT ou SRT para carregamentos em plataformas.

O ASS é melhor do que o VTT, ou devo simplesmente ficar com o VTT?

Depende do que precisas. O ASS suporta posicionamento, sincronização de karaoke e substituições de tipo de letra e cor por linha que as definições de legenda do VTT não conseguem exprimir totalmente; o VTT é o formato que os navegadores e o elemento HTML5 <track> realmente exigem. Usa o ASS quando o teu fluxo de trabalho precisar especificamente de estilo num leitor como o Aegisub ou o MPV; usa o VTT para reprodução na web.