Converter CSV para ASS
Ou cole o texto da legenda
O que esta conversão altera
1 coisa é descartada ou precisa de uma decisão
- Precisão
a precisão dos tempos — o relógio da saída é mais grosseiro, então cada marca de tempo é arredondada para o 10 ms mais próximo
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 converte CSV em ASS. Arraste um arquivo — ou cole o texto — e receba a versão ASS de volta. A conversão roda inteiramente no seu navegador, então nada é enviado e nenhuma conta é necessária.
Estes dois formatos não guardam as mesmas coisas, e a diferença não é cosmética: a precisão não tem para onde ir no ASS. A lista acima vem do que cada um dos formatos consegue expressar, não do seu arquivo, então a resposta é a mesma antes de você carregar qualquer coisa.
Um arquivo está bom, e uma temporada inteira também: a fila processa na ordem e os resultados descem juntos num único ZIP.
Exemplos
Um arquivo CSV típico, convertido para ASS
Entrada
start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."
Saída
[Script Info]
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,0,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:03.50,Default,,0,0,0,,The quick brown fox.
Dialogue: 0,0:00:04.00,0:00:06.25,Default,,0,0,0,,Jumps over, the lazy dog.
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0,0,0,,Two lines here.\NAnd a second one.
Perdido nesta saída: precisão. Todo o resto corresponde linha a linha.
A mesma conversão sobre uma entrada problemática
Entrada
id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.
Saída
[Script Info]
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,0,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, friend.
Dialogue: 0,0:00:05.00,0:00:07.00,Default,,0,0,0,,Second line.
Dialogue: 0,0:00:10.00,0:00:10.01,Default,,0,0,0,,End before start.
Dialogue: 0,0:00:12.00,0:00:14.00,Default,,0,0,0,,Unquoted comma in text, right here.
É o tipo de dano que os arquivos reais têm: fim de linha misturado, espaço sobrando, campos vazios. Compare com o exemplo organizado acima para ver o que o analisador perdoa.
Perguntas frequentes
Por que os tempos mudam de CSV para ASS?
O ASS guarda o tempo como 0:00:04.13 e o CSV como 00:00:04.126 — centésimo contra milésimo — então cada timecode é arredondado para os 10 ms mais próximos: 00:00:04,126 sai como 4,13 segundos. Nada é esticado nem reordenado, e nenhuma fala se move mais de 5 ms, mas ao alinhar estas legendas com outro arquivo esse é o ponto em que a conversão deixa de ser exata.
Como fica a saída quando CSV vira ASS?
Fica no formato ASS: sem números de bloco, cada legenda é uma linha Dialogue na seção Events, com um campo de camada onde o SRT guarda o número. Cada fala CSV vira uma fala ASS, na mesma ordem, com o mesmo texto.
Como sai no ASS uma fala CSV de duas linhas?
Sai como duas linhas unidas por um \N, a marca de quebra de linha do ASS. O vínculo se mantém: as duas linhas do CSV continuam pertencendo a uma única legenda no ASS, e o player as exibe juntas.
A ordem das falas CSV se mantém no ASS?
Se mantém, com as falas ordenadas pelo início no caminho, do mais cedo para o mais tarde, que é como os players leem. Se o seu CSV listava as falas fora de ordem, o ASS as devolve em ordem; a mudança é de estrutura, não de conteúdo, e é proposital.
Consigo converter o ASS de volta para CSV?
Consigo, e essa direção tem lista própria: converter ASS para CSV descarta estilo, posicionamento, karaokê e conteúdo específico do formato. A lista difere da de cima porque os dois formatos guardam coisas diferentes.
O ASS de saída mantém a codificação do arquivo CSV?
Não: o ASS gerado é UTF-8, com fim de linha Unix e sem BOM, qualquer que tenha sido a codificação do CSV. Um arquivo que chega em UTF-16 ou numa codificação de byte único do Windows é decodificado na leitura, e o painel de resultado avisa quando isso acontece.