Volver al blog

Cómo Traducir un Archivo SRT sin Romper los Tiempos

Traducir un archivo SRT sin romper los tiempos: por qué el traductor genérico destroza las marcas de tiempo, cuatro métodos que no lo hacen y cómo detectarlo.

20 de septiembre de 2026
Sablate Team

Para traducir un archivo SRT y conservar los tiempos, usa una herramienta que analice el formato de subtítulos en lugar de una que trate el archivo como prosa. Una herramienta que entiende el formato lee el número de bloque, la línea de marca de tiempo y el texto como tres cosas separadas, traduce solo la tercera, y escribe las otras dos de vuelta exactamente como estaban.

Todo archivo de subtítulos traducido y roto se remonta al mismo error: el archivo completo pasó por un traductor genérico que no tenía ninguna razón para saber qué líneas eran estructurales.

¿Por qué traducir un SRT rompe los tiempos?

Un bloque de SRT tiene cuatro partes, y solo una de ellas es lenguaje:

2
00:00:04,120 --> 00:00:06,480
The timings live on the line above.
A translator must never touch it.

El número identifica el subtítulo. La línea de marca de tiempo, con sus milisegundos separados por comas y su flecha -->, es el tiempo. El texto es el subtítulo. La línea en blanco es el separador que indica a un analizador que el bloque ha terminado.

Un traductor genérico ve un único documento que contiene las cuatro. No tiene ninguna razón para tratar 00:00:04,120 --> 00:00:06,480 como sintaxis, así que fallan tres cosas, normalmente juntas:

  1. Los subtítulos se fusionan. La línea en blanco entre bloques es solo espacio en blanco para un traductor de prosa, y si no sobrevive al proceso, dos subtítulos se convierten en un solo párrafo. Todo lo que viene después queda desalineado con el audio.
  2. Los bloques se renumeran o reordenan. Reajustar los párrafos desordena los números de índice, y algunos analizadores rechazan el archivo directamente, mientras que otros lo renumeran en silencio y desplazan los subtítulos.
  3. Las marcas de tiempo se reformatean. Un espacio añadido alrededor de la flecha, una coma convertida en punto, un campo de milisegundos rellenado de otra forma: cualquiera de estos cambios basta para que la línea deje de poder analizarse.

Hay un cuarto fallo que no tiene nada que ver con el traductor. La codificación. Un archivo con caracteres acentuados o una escritura no latina, guardado en Latin-1 o Windows-1254 en lugar de UTF-8, se muestra como basura en la mitad de los reproductores que lo abren. Guarda todos los archivos de subtítulos en UTF-8 y este problema desaparece para siempre.

La señal de alarma es que un archivo dañado a menudo parece estar bien cuando le echas un vistazo. El texto está en el idioma correcto, las marcas de tiempo siguen ahí, y nada llama la atención. Falla cuando un reproductor intenta analizarlo, o peor: lo analiza y lo reproduce con dos segundos de desfase.

Las cuatro formas de traducir un SRT

De la más rápida a la más controlada:

  1. Subtitle Edit — gratis, de código abierto, traducción integrada, funciona en local.
  2. Un traductor online que entiende el formato — subes el archivo, te devuelve otro.
  3. Un LLM con un prompt estricto — el mejor control terminológico, necesita verificación.
  4. Una aplicación de escritorio que trata la traducción como una capa — varios idiomas a partir de una sola línea de tiempo.

Las cuatro mantienen las marcas de tiempo intactas si se usan correctamente. Se diferencian en el coste, la privacidad y en cuántos idiomas estás generando.

Método 1: Subtitle Edit

La respuesta gratuita, y la que debería probar primero la mayoría de la gente.

Subtitle Edit es de código abierto, funciona en Windows, macOS y Linux, y tiene una función de Auto-Translate que sustituye el texto en memoria y deja la estructura de bloques intacta por diseño. Ofrece varios motores: DeepL y Google si tienes claves, LibreTranslate si lo alojas tú mismo, y modelos locales a través de Ollama, llama.cpp o cualquier endpoint compatible con OpenAI.

  1. Abre el .srt en Subtitle Edit.
  2. Elige Auto-Translate y selecciona un motor y un idioma de destino.
  3. Revisa el resultado en la vista de lista, donde el original y la traducción aparecen uno junto al otro.
  4. Guárdalo como un archivo nuevo, en UTF-8.

La vía del modelo local es la que merece la pena conocer: no necesita clave de API y nada sale del equipo, lo que la convierte en el único método gratuito de esta página que también es privado. La contrapartida es que un modelo local pequeño traduce notablemente peor que DeepL en los pares europeos, y tendrás que editar más.

Método 2: un traductor online que entiende el formato

Sube el archivo, elige un idioma, descarga el resultado. DeepL acepta un .srt como tipo de documento y devuelve un .srt traducido con la estructura intacta; cuántos documentos puedes procesar depende de tu plan. Varios sitios dedicados a la traducción de subtítulos hacen lo mismo.

Esta es la vía más rápida para un archivo en un idioma, y la calidad en los principales pares europeos es la mejor de las cuatro sin ninguna configuración.

Dos cosas que conviene saber antes de usarlo. El archivo se sube, así que es el método equivocado para cualquier cosa confidencial: un montaje sin publicar, el material de un cliente, una reunión interna grabada. Y un traductor de documentos no te da ningún control sobre la terminología: los nombres de producto, los nombres de personajes y la jerga se traducen junto con todo lo demás, que es justo lo que no quieres que pase con los nombres.

Método 3: un LLM con un prompt estricto

Es el que da el mejor control terminológico de los cuatro, porque puedes decirle al modelo qué no traducir. También es el método con más probabilidades de corromper el archivo en silencio, así que el paso de verificación no es opcional.

Un prompt que funciona:

Translate the subtitle text below from English into German.

Rules:
- Output exactly the same number of subtitle blocks as the input.
- Copy every block number and every timecode line unchanged, character for character.
- Translate only the subtitle text lines.
- Keep the blank line between blocks.
- Do not merge, split, reorder or renumber blocks.
- Do not translate these terms: [list product and character names here]
- Keep each translated line roughly the length of the original.

Trabaja en tramos de 50 a 100 bloques en lugar de pegar una película de dos horas de una sola vez. Es con las entradas largas cuando los modelos empiezan a fusionar subtítulos y a perder bloques, y lo hacen sin mencionarlo.

Después, verifica. Este comando de una sola línea cuenta las líneas de marca de tiempo en los dos archivos:

grep -c " --> " original.srt translated.srt

Los dos números deben ser idénticos. Si la traducción tiene menos, es que se han fusionado bloques, y todos los subtítulos posteriores a la fusión ahora están mal. Ejecuta esta comprobación en cada traducción con LLM, todas las veces.

Método 4: traducir como una capa, no como un archivo

Los tres métodos anteriores comparten una misma forma: tienes un archivo, produces otro archivo, y si quieres ocho idiomas lo haces ocho veces y gestionas ocho archivos.

En su lugar, una aplicación de escritorio puede mantener una sola línea de tiempo. En Sablate, una traducción es una capa añadida a una transcripción ya existente, no un trabajo nuevo: los límites de los subtítulos se crean una vez y todos los idiomas los heredan, así que la cuestión del tiempo no vuelve a plantearse. Cada capa lleva su propio estilo y su propia fuente de escritura, lo cual importa en el momento en que un idioma necesita una escritura que la fuente de los subtítulos no contiene.

Hay dos vías de traducción disponibles. Argos funciona sin conexión en tu propio equipo y nunca envía nada a ningún sitio; DeepL, OpenAI y Claude están disponibles si aportas tu propia clave de API. Un detalle honesto sobre la vía sin conexión: Argos publica paquetes que emparejan con el inglés en uno de los dos extremos, así que un par como turco-alemán no tiene paquete directo y se compone pasando por el inglés como paso intermedio. Funciona, y una línea de turco a alemán suena algo más plana que una de turco a inglés.

El plan Gratis incluye una capa de traducción sin conexión por trabajo en vídeos de hasta diez minutos; las capas ilimitadas, los motores en la nube y la exportación con un clic de todos los idiomas son parte de Pro. Descárgalo para Windows o Mac y traduce un archivo antes de decidir nada.

¿Qué método deberías usar?

MétodoCosteFunciona sin conexiónControl terminológicoMejor para
Subtitle EditGratisSí, con un modelo localParcialUn archivo, cualquier par de idiomas
Traductor de documentos onlinePlan gratis y después de pagoNoNoResultado bueno y rápido en pares europeos
LLM con un prompt estrictoDepende del modeloSí, con un modelo localJerga, nombres, un glosario propio
SablatePlan Gratis, Pro $29 pago únicoVarios idiomas a partir de una sola transcripción

«Tengo un archivo y no tengo presupuesto». Subtitle Edit. Es gratis, es la herramienta de subtítulos más completa de esta lista para trabajo de formato, y no te va a romper los tiempos.

«Necesito la mejor traducción al alemán y el archivo no es sensible». Un traductor de documentos. La salida de DeepL del inglés al alemán es la que menos edición necesita de todo lo que hay aquí.

«El vídeo es confidencial». Subtitle Edit con un modelo local, o la vía sin conexión de Sablate. Cualquier cosa que suba el archivo queda descartada, sin importar lo buena que sea.

«Voy a publicar el mismo vídeo en seis idiomas». Capas, no archivos. Los métodos por archivo se multiplican por seis; un flujo de trabajo por capas no lo hace, y el flujo de trabajo multilingüe explica por qué la transcripción se merece una revisión cuidadosa antes de que empiece nada de esto.

Cómo evitar que los tiempos se rompan otra vez

Tres hábitos, en orden de cuánto tiempo ahorran.

Verifica el número de bloques en cada traducción. La línea de grep de más arriba tarda dos segundos y detecta el único fallo que es invisible a simple vista. Un archivo traducido con menos bloques que su original está roto, siempre.

Comprueba la velocidad de lectura después de traducir, no después de transcribir. Los tiempos sobrevivieron; el texto no se quedó con la misma longitud. Del inglés al español o al francés, lo habitual es que crezca entre un 20 y un 25 por ciento, y en alemán puede llegar hasta un 35 por ciento, todo ello dentro del mismo número de segundos. Una línea cómoda de 14 CPS se convierte en una línea de 17,5 CPS sin que se mueva ni una sola marca de tiempo — los límites de velocidad de lectura explican qué hacer al respecto, y la respuesta siempre es cambiar las palabras o la duración, nunca la sincronía.

Mantén la transcripción de origen como la maestra. Corrige ahí los nombres, la jerga y la puntuación antes de traducir nada. Un apellido corregido en el origen queda corregido en todos los idiomas; el mismo apellido corregido después es una corrección por idioma, y esas correcciones acaban divergiendo.

Si al final vas a incrustar algo de esto en un vídeo, hazlo lo último. La velocidad de lectura en una copia incrustada es permanente, y el formato al que exportes decide si el espectador puede cambiar de idioma o no.

Traduce el archivo, no el vídeo. Conserva la línea de tiempo que ya te costó conseguir, dedica el esfuerzo a las palabras que van sobre ella, y comprueba el número de bloques antes de publicar.