Para convertir un TXT a SRT tienes que añadir lo que un archivo de texto no tiene: un número, una hora de inicio y una de fin para cada subtítulo. Cambiar el nombre de transcripcion.txt a transcripcion.srt no cambia nada por dentro, y ni YouTube ni un reproductor podrán mostrarlo. Cómo añadir los tiempos depende de lo que tengas: una transcripción con marcas de tiempo se puede reformatear, el texto plano junto con el vídeo se puede sincronizar automáticamente, y el texto solo hay que dividirlo y temporizarlo a mano. Convertimos nuestra propia transcripción de ejemplo en cuatro idiomas y comprobamos cada subtítulo con las velocidades de lectura de las guías de Netflix.

¿Qué método encaja con tu archivo?

Tres puntos de partida y qué hacer en cada caso
Lo que tienesLo que hay que hacerHerramientas gratuitas
Texto con una marca de tiempo en cada líneaReformatearlo: números, finales, saltos de líneaEl script corto de abajo o un editor de texto
Texto plano y el vídeoDejar que un programa ajuste el texto a la vozSincronización automática de YouTube Studio, alineador forzado de Subtitle Edit
Solo texto planoDividirlo en subtítulos y temporizarlos a manoSubtitle Edit, YouTube Studio

Dos atajos antes de empezar. Si la transcripción sale de una herramienta que también hace subtítulos, exporta el SRT desde ahí: Fireflies incluye SRT entre los formatos de descarga de sus transcripciones, y Descript exporta subtítulos en SRT o VTT. Y si tu archivo no es texto plano sino WebVTT o LRC, ya tiene tiempos: consulta qué es un archivo VTT y cómo convertir LRC a SRT.

Qué le falta a una transcripción en TXT

Este es el ejemplo que escribimos para la guía: los primeros 40 segundos de un vídeo imaginario de una pequeña tienda online. Cada línea empieza con el momento en que se dice, como lo escriben muchas herramientas de transcripción:

mesa-embalaje.txt
[00:00:00] Hola, soy Lucía y esta es la mesa de embalaje de nuestra pequeña tienda.
[00:00:05] Hoy te enseño cómo embalamos una taza de cerámica para que llegue entera.
[00:00:10] Primero, envuelve el asa por separado: es la parte que más se rompe.
[00:00:15] Después, enrolla toda la taza en dos capas de papel.
[00:00:18] [chirrido de cinta adhesiva]
[00:00:20] Elige una caja que deje unos dos dedos de espacio por cada lado.
[00:00:24] Rellena ese hueco con papel arrugado hasta que nada se mueva al agitar la caja, y luego cierra las juntas con cinta en forma de H, arriba y abajo.
[00:00:35] ¡Y listo!
[00:00:37] ¿Tienes preguntas? Déjalas en los comentarios.

Un archivo SRT necesita cuatro cosas por subtítulo: un número, una línea de tiempos con el formato hh:mm:ss,mmm --> hh:mm:ss,mmm, una o dos líneas de texto y una línea en blanco. Nuestra guía del archivo SRT explica el formato. A la transcripción le faltan, por tanto, los números y todos los finales, y sus líneas son demasiado largas: una de ellas ocuparía cuatro líneas en pantalla. Además, solo tiene segundos enteros, así que el resultado será preciso a un segundo, más o menos. Para la mayoría de los vídeos basta, pero revisa la vista previa.

Método 1: la transcripción ya tiene marcas de tiempo

Entonces es un trabajo de formato. Estas son las reglas que aplicamos:

  1. Una marca de tiempo por subtítulo. Si copias la transcripción del panel de transcripción de YouTube, cada marca queda en su propia línea, encima del texto. Nuestro script también leyó esa forma y generó exactamente el mismo archivo SRT.
  2. Cada subtítulo termina cuando empieza el siguiente, pero a los 7 segundos como mucho. Los requisitos generales de Netflix prevén entre 5/6 de segundo y 7 segundos por subtítulo.
  3. El último subtítulo necesita tiempo de lectura. Divide sus caracteres entre la velocidad de lectura. Nuestra última línea tiene 46 caracteres; a 17 caracteres por segundo son unos 2,7 segundos, así que termina en 00:00:39,706.
  4. Parte las líneas largas. La guía de Netflix para español admite 42 caracteres por línea y dos líneas por subtítulo, y pide cortar por unidades sintácticas: después de un signo de puntuación o antes de «y», «en» o «de», nunca entre el artículo y el sustantivo.
  5. Lo que no cabe en dos líneas se convierte en dos subtítulos, que se reparten el tiempo según su longitud.
  6. Numera desde 1, deja una línea en blanco después de cada subtítulo y guarda el archivo en UTF-8.

Escribimos un pequeño script que hace los pasos 1 a 6 y después comprueba el resultado: números, flecha, longitud de las líneas y caracteres por segundo. Esto es lo que sacó de nuestro ejemplo:

Tres líneas de la transcripción de ejemplo con marcas de tiempo, las mismas líneas como subtítulos SRT numerados con finales añadidos y saltos de línea, y la comprobación sin problemas
Antes y después: nuestra transcripción de ejemplo y el archivo SRT que generó nuestro script. Prueba propia, 25 de octubre de 2026.

El subtítulo más rápido quedó justo en 17 caracteres por segundo, el límite que Netflix fija para el español; en inglés son 20. Para comparar, escribimos la misma escena corta en inglés, alemán y francés y la convertimos igual:

Nuestra transcripción de ejemplo en cuatro idiomas, convertida y comprobada el 25 de octubre de 2026
IdiomaSubtítulosLínea más largaSubtítulo más rápidoLímite de NetflixDemasiado rápidos
Español1042 caracteres17 caracteres por segundo170
Inglés1041 caracteres19,5 caracteres por segundo200
Alemán1242 caracteres20,5 caracteres por segundo173
Francés1341 caracteres20,2 caracteres por segundo174

Ningún script arregla un subtítulo demasiado rápido: hay que acortar el texto. En alemán reescribimos dos frases y en francés tres, y con eso ningún subtítulo superó el límite. Nuestro texto en español pasó sin cambios, pero sin margen: con una palabra más en el subtítulo de la taza ya se habría pasado. Lo mismo ocurre cuando traduces subtítulos: los tiempos no cambian, así que un texto más largo tiene que formularse más corto.

Un script corto para usarlo tú mismo

Si tu transcripción empieza cada línea con una marca de tiempo, este script la convierte en un archivo SRT. Necesitas Node.js, que es gratuito. Guarda el código como txt2srt.mjs y ejecuta node txt2srt.mjs transcripcion.txt transcripcion.srt:

txt2srt.mjs
// txt2srt.mjs: convierte líneas como «[00:01:05] texto» en un archivo SRT y avisa de los subtítulos que hay que revisar.
// Uso: node txt2srt.mjs transcripcion.txt transcripcion.srt
import { readFileSync, writeFileSync } from 'node:fs'

const MAX_LINE = 42 // caracteres por línea, dos líneas por subtítulo
const MAX_CPS = 17 // caracteres por segundo: 17 para español, 20 para inglés
const [input, output] = process.argv.slice(2)

const cues = []
for (const line of readFileSync(input, 'utf8').replace(/^/, '').split(/\r?\n/)) {
  const m = line.match(/^\[?(?:(\d{1,2}):)?(\d{1,2}):(\d{2})\]?\s+(.+)/)
  if (m) cues.push({ start: ((+(m[1] ?? 0) * 60 + +m[2]) * 60 + +m[3]) * 1000, text: m[4].trim() })
}

const time = (ms) => new Date(ms).toISOString().slice(11, 23).replace('.', ',')
const wrap = (text) => {
  if (text.length <= MAX_LINE) return text
  let cut = -1
  for (let i = 0; i < text.length; i++)
    if (text[i] === ' ' && (cut < 0 || Math.abs(i - text.length / 2) < Math.abs(cut - text.length / 2))) cut = i
  return cut < 0 ? text : text.slice(0, cut) + '\n' + text.slice(cut + 1)
}

let srt = ''
cues.forEach((cue, i) => {
  // Fin = inicio del subtítulo siguiente, 7 segundos como máximo; el último dura lo que se tarda en leerlo.
  const next = cues[i + 1]?.start
  const end = next !== undefined ? Math.min(next, cue.start + 7000) : cue.start + Math.max(1000, Math.ceil((cue.text.length / MAX_CPS) * 1000))
  const lines = wrap(cue.text)
  srt += `${i + 1}\n${time(cue.start)} --> ${time(end)}\n${lines}\n\n`
  const cps = lines.replace('\n', '').length / ((end - cue.start) / 1000)
  if (lines.split('\n').some((l) => l.length > MAX_LINE)) console.log(`Subtítulo ${i + 1}: demasiado largo para dos líneas, divídelo`)
  if (cps > MAX_CPS) console.log(`Subtítulo ${i + 1}: ${cps.toFixed(1)} caracteres por segundo, acorta el texto`)
})
writeFileSync(output, srt, 'utf8')

Lee marcas como [00:01:05], 00:01:05 o 1:05 cuando el texto sigue en la misma línea. Parte las líneas largas por el espacio más cercano al centro: es rápido, pero no siempre donde lo haría una persona, así que revisa cada subtítulo de dos líneas. Con nuestro ejemplo en español avisó de un subtítulo: la frase de 146 caracteres sobre la caja, demasiado larga para dos líneas y, al durar como mucho 7 segundos, también demasiado rápida. Esa la divides a mano. El script guarda el archivo en UTF-8 por sí mismo.

Método 2: texto plano y el vídeo

Si el texto no tiene ningún tiempo, un programa puede escuchar el vídeo y colocar tus palabras en su sitio. Se llama alineación (en inglés, «forced alignment»), y tu texto se queda exactamente como lo escribiste.

YouTube Studio, para tus propios vídeos. Según la ayuda de YouTube, inicia sesión en YouTube Studio, selecciona Subtítulos en el menú de la izquierda y elige el vídeo. Haz clic en Añadir idioma, selecciona el tuyo y, en «Subtítulos», haz clic en Añadir. Después selecciona Sincronización automática, introduce el texto del vídeo o sube un archivo de transcripción, y termina con EDITAR y GUARDAR Y CERRAR. Ajustar los tiempos lleva unos minutos; cuando están listos, los subtítulos se publican automáticamente en el vídeo.

YouTube pone tres condiciones: la transcripción debe estar en el idioma que se habla en el vídeo, ese idioma tiene que ser compatible con su reconocimiento de voz, y no la recomienda para vídeos de más de una hora o con mala calidad de audio. Sus consejos para el archivo: texto sin formato (.txt), una línea en blanco donde deba empezar un subtítulo nuevo, los sonidos entre corchetes y «>>» antes de un cambio de interlocutor. Nuestro ejemplo, preparado así:

mesa-embalaje-sin-tiempos.txt
>> LUCÍA: Hola, soy Lucía y esta es la mesa de embalaje de nuestra pequeña tienda.

Hoy te enseño cómo embalamos una taza de cerámica para que llegue entera.

[chirrido de cinta adhesiva]

Cuando los tiempos estén ajustados, puedes descargar los subtítulos desde YouTube Studio como archivo SRT. No hemos probado la sincronización automática con un vídeo para esta guía; los pasos son de la ayuda de YouTube en español, consultada el 25 de octubre de 2026.

Subtitle Edit, sin subir nada. Este editor de subtítulos gratuito tiene descargas para Windows, macOS y Linux. Elige Archivo, Importar, Texto plano... y, en Dividir texto en, marca Líneas en blanco o Una línea es un subtítulo. Según la documentación, Alinear códigos de tiempo con alineador forzado... ajusta entonces tu texto al audio del vídeo sin volver a transcribirlo. La primera vez descarga un modelo: los de un solo idioma ocupan unos 200 a 300 MB, y también hay modelos multilingües. Si el alineador no admite tu idioma, Alinear códigos de tiempo mediante "Voz a texto"... transcribe primero el vídeo y luego encaja tu texto. Al final guarda en formato SubRip. Esto sale de la documentación de la versión 5.3.0; no hemos ejecutado el alineador.

Descript. Su función Import transcript (o Replace transcript si el archivo ya está transcrito) ajusta tu propio texto a la grabación, pero según su página de ayuda solo en inglés. Para una transcripción en español no sirve.

Método 3: solo el texto, temporizado a mano

Sin el vídeo, ningún programa puede saber cuándo se dice cada frase. Cada tiempo que pongas es una estimación hasta que lo compruebes con el vídeo. Primero divide, después temporiza:

  • Divide en subtítulos de dos líneas como máximo, de 42 caracteres cada una, mejor al final de una frase o tras una coma.
  • Da a cada uno tiempo suficiente: caracteres entre velocidad de lectura. Nuestro subtítulo «Después, enrolla toda la taza / en dos capas de papel.» tiene 51 caracteres y necesita al menos 3 segundos en español; en inglés, con la misma longitud, bastarían 2,6.
  • Mantén cada subtítulo entre 5/6 de segundo y 7 segundos en pantalla.

En Subtitle Edit, Importar texto plano hace los dos primeros pasos por ti: sin vídeo, coloca los subtítulos uno detrás de otro desde cero, con una duración según la longitud del texto. Luego mueves cada uno a su sitio mientras se reproduce el vídeo. Si prefieres anotar los tiempos mientras lo ves, nuestra guía de la transcripción con marcas de tiempo explica cómo.

Qué hacen los conversores de TXT a SRT online

La mayoría de las webs que convierten TXT a SRT no escuchan tu vídeo: calculan los tiempos a partir del texto. Esto decían sus propias páginas el 25 de octubre de 2026:

  • SubtitleKit coloca los subtítulos uno tras otro desde el principio, con un número fijo de segundos por línea, dice que esos tiempos son provisionales y trata las marcas de tiempo que ya trae el texto como texto normal.
  • Submagic calcula con 170 palabras por minuto por defecto, mantiene cada subtítulo entre 1,2 y 6 segundos y corta las líneas a 42 caracteres.
  • ScreenApp calcula con unas 4 palabras por segundo y lee los archivos como UTF-8.
  • MConverter convierte en su nube o, con algunos formatos, en tu dispositivo, y dice borrar los archivos de la nube cuatro horas después de la conversión.

Ojo con las promesas: una página asegura que su conversor conserva los tiempos de tus subtítulos, pero el «TXT» que lee es un formato de subtítulos que ya tiene tiempos; otro conversor de subtítulos ni siquiera acepta archivos TXT. Los tiempos estimados son, como mucho, un punto de partida, y para una entrevista confidencial es mejor un método sin subir el archivo.

Codificación: que no se rompan los acentos ni la ñ

YouTube exige archivos SRT en UTF-8 sin formato y recomienda UTF-8 para cualquier transcripción que no esté en inglés. Su ayuda lo explica así:

  • Bloc de notas en Windows: Archivo, Guardar como y, en Codificación, la opción UTF-8.
  • TextEdit en Mac: Formato, Convertir texto sin formato, después Archivo, Guardar y Unicode (UTF-8).

En español, una codificación equivocada se nota enseguida: «pequeña» se convierte en «pequeña» o muestra un carácter de sustitución, según el error. La guía del archivo SRT enlazada más arriba muestra cómo repararlo.

Comprueba el archivo antes de subirlo

Para probar nuestra comprobación, metimos seis errores típicos en nuestro archivo SRT en español: dos líneas unidas en una, una flecha escrita con semirraya, un punto antes de los milisegundos, un número repetido, dos subtítulos que se solapan y el archivo entero guardado en Windows-1252. Los encontró todos:

comprobacion.txt
10 subtítulos, línea más larga 72 caracteres, el más rápido 17 caracteres por segundo
- 9 línea(s) no son UTF-8 válido, la primera es la 3 (guarda el archivo como UTF-8)
- línea 6: la flecha lleva una semirraya (–) en vez de dos guiones: escribe -->
- línea 11: punto antes de los milisegundos, SRT necesita una coma
- línea 20: se esperaba el subtítulo 5 y aparece «4»
- subtítulo 6: empieza antes de que termine el 5
- subtítulo 1: línea de 72 caracteres (máximo 42)
6 problema(s)

Sin un script de comprobación, repasa esta lista:

  • Subtítulos numerados desde 1, con una línea en blanco después de cada uno.
  • Cada flecha hecha con dos guiones y un signo «mayor que». Los procesadores de texto suelen convertir dos guiones en una raya o una semirraya.
  • Una coma antes de los milisegundos.
  • Ningún subtítulo que empiece antes de que termine el anterior.
  • Dos líneas de 42 caracteres como máximo y 17 caracteres por segundo para subtítulos en español.
  • El archivo guardado en UTF-8, y una vista previa en la plataforma donde lo publiques.

Si más adelante necesitas solo el texto, convertir SRT a TXT vuelve a quitar los números y los tiempos.