Converter ASS para TXT
Ou cole o texto da legenda
O que esta conversão altera
6 coisas são descartadas ou precisam de uma decisão
- Tempos
toda a linha do tempo (o formato de saída não registra tempo algum)
- Estilo
todo o estilo (negrito, itálico, cor, contorno, sombra)
- Posição
a posição na tela (cada bloco volta à posição padrão)
- Karaokê
a sincronização karaokê (destaque por sílaba)
- Quebras de linha
as quebras de linha (blocos de várias linhas serão unidos em uma só linha)
- Conteúdo específico do formato
conteúdo que o formato de origem guarda fora de seus blocos (blocos que não são cue, texto de cabeçalho, configurações por bloco, eventos comentados) — o formato de destino não tem lugar para ele
Esta lista vem da matriz de capacidades destes dois formatos, não do arquivo específico que você carregou. Um arquivo específico pode perder mais se usar recursos que o formato permite mas a matriz não modela.
Esta página reduz um script ASS às palavras. O .txt não tem relógio, não tem estilo e não tem blocos — só linhas de texto, na ordem em que aparecem.
A perda é a maior da família: saem os tempos, a tabela de estilo, a posição, o karaokê e até o agrupamento em blocos. Um evento com duas linhas vira duas linhas soltas, e quem ler o resultado conta duas legendas onde o script tinha uma.
O que fica é útil como transcrição: as falas na ordem do vídeo, sem carimbo e sem marcação. Um arquivo ou uma temporada inteira, sempre no navegador.
Exemplos
Um arquivo ASS comum, convertido para TXT
Entrada
[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left
Saída
Hello there.
Italic and bold text.
Positioned
karaoke
Line one
Line two
Top left
Descartado nesta saída: tempo, estilo, posição, karaokê e o agrupamento em blocos. O texto confere linha por linha.
A mesma conversão com uma entrada problemática
Entrada
[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecodeSaída
Hello, world
{\fad(300,300)}Unmodelled override
Both, wrong order
One decimal centisecond
Soft
break
É o tipo de dano que scripts reais trazem: BOM, fins de linha misturados e um carimbo com um decimal só. Compare com o exemplo organizado acima para ver o que o analisador perdoa.
Perguntas frequentes
O que sobra de um script ASS em texto puro?
As palavras dos eventos Dialogue:, na ordem em que aparecem. Carimbos, numeração, estilo, posição, karaokê e cabeçalho do script não têm representação no .txt.
Por que as quebras de linha internas somem?
Não somem: as duas linhas são escritas uma sob a outra. O que se perde é a fronteira do bloco — o .txt não tem como dizer que as duas linhas formavam uma legenda só, e uma releitura contaria duas.
As tags de estilo do ASS viram texto?
Não. O destino não guarda estilo de espécie alguma, então as tags são removidas e cada linha sai como texto simples. Se você quer as marcações preservadas como sinal, use um destino que modele estilo.
O karaokê deixa algum rastro?
Deixa apenas as palavras. Os códigos de sílaba são removidos, não convertidos em texto, e o .txt não tem onde registrar o instante de cada acendimento.
Dá para usar o resultado como transcrição?
Dá, para leitura: as falas estão na ordem certa. Ele não tem nome de falante nem tempo, então um bloco com dois falantes sai como texto corrido, sem indicação de quem fala.
O que acontece com o título e o [Script Info]?
Nada é levado: o .txt guarda apenas o texto dos eventos. O título, PlayResX e as demais chaves do [Script Info], além das linhas Comment:, não aparecem no resultado.