Convertir CSV a ASS
O pega el texto de los subtítulos
Qué cambia esta conversión
1 cosa se descarta o requiere una decisión
- Precisión
la precisión de los tiempos: el reloj del resultado es más grueso, así que cada marca de tiempo se redondea al 10 ms más cercano
Esta lista proviene de la matriz de capacidades de estos dos formatos, no del archivo concreto que has cargado. Un archivo específico puede perder más si usa características que el formato permite pero que la matriz no modela.
Esta página convierte CSV en ASS. Arrastra un archivo —o pega el texto— y recibes la versión ASS. La conversión se ejecuta por completo en el navegador, así que no se sube nada y no hace falta cuenta.
Los dos formatos no guardan lo mismo, y la diferencia no es cosmética: la precisión no tiene dónde ir en ASS. La lista de arriba sale de lo que cada formato puede expresar, no de tu archivo, así que es la misma respuesta antes de cargar nada.
Un archivo está bien, y una temporada entera también: la cola los procesa en orden y los resultados se descargan juntos en un único ZIP.
Ejemplos
Un archivo CSV típico, convertido a 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."
Resultado
[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.
Se pierde la precisión. El resto coincide línea por línea.
La misma conversión con una entrada difícil
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.
Resultado
[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.
Estos son los daños que traen los archivos reales: finales de línea mezclados, espacios sueltos, campos vacíos. Compáralo con el ejemplo limpio de arriba para ver qué perdona el analizador.
Preguntas frecuentes
¿Por qué se mueven las marcas de tiempo de CSV a ASS?
CSV guarda el tiempo como `00:00:04.126` y ASS lo guarda como `0:00:04.13` —milésimas frente a centésimas—, así que cada código se redondea a los 10 ms más cercanos: 00:00:04,126 sale como 4,13 segundos. Nada se estira ni se reordena y ningún bloque se mueve más de 5 ms, pero si vas a alinear estos subtítulos con otro archivo, ese es el punto donde la conversión deja de ser exacta.
¿Qué aspecto tiene la salida cuando CSV se convierte en ASS?
Como ASS: sin números de bloque; cada subtítulo es una línea `Dialogue:` dentro de la sección `[Events]`, con un campo de capa donde SRT guarda el número. Cada bloque CSV se convierte en un bloque ASS, en el mismo orden y con el mismo texto.
¿Cómo sale en ASS un bloque CSV de dos líneas?
Como dos líneas con `\N` entre ellas, que es como ASS escribe un salto de línea duro. La pareja se mantiene: las dos líneas CSV siguen perteneciendo a un mismo subtítulo en la salida ASS, y el reproductor las muestra juntas.
¿Mantienen las filas CSV su orden en la salida ASS?
Sí, y de paso se ordenan por hora de inicio: primero los más tempranos, que es lo que esperan todos los formatos de este sitio y cómo los leen los reproductores. Si tu archivo CSV traía los bloques desordenados, la salida ASS los devuelve a su orden; eso cambia la estructura del archivo, no su contenido, y es deliberado.
¿Puedo convertir el ASS de vuelta a CSV?
Sí, y esa dirección tiene su propia lista: convertir ASS en CSV pierde el estilo, la posición, el karaoke y el contenido propio del formato. La lista es distinta de la de arriba porque los dos formatos guardan cosas distintas.
¿Conserva la salida ASS la codificación del archivo CSV?
No: la salida es UTF-8, con finales de línea Unix y sin marca de orden de bytes, sea cual sea la que usara el archivo CSV. Un archivo que llega en UTF-16 o en una codificación Windows de un solo byte se decodifica a la entrada (el panel de resultados lo indica cuando ocurre); lo que sale es siempre el mismo ASS en UTF-8.