Escribelo

Actualizado 5 junio 2026 · 12 min de lectura

Cómo subtitular videos automáticamente en español

Los subtítulos aumentan el engagement de tus videos entre un 40% y 80%. En plataformas como TikTok, Instagram Reels y YouTube Shorts, la mayoría de usuarios ven los videos sin sonido. Si tu video no tiene subtítulos, estás perdiendo audiencia.

El problema: subtitular manualmente un video de 10 minutos toma entre 30 y 60 minutos. Las herramientas automáticas en inglés funcionan bien, pero en español cometen errores constantes con acentos, modismos y nombres propios de México y Latinoamérica.

En esta guía te muestro cómo generar subtítulos SRT y VTT automáticos para tus videos en español usando la API de Escribelo, y cómo incrustarlos con FFmpeg.

Paso 1: Extraer el audio del video

Si tienes un archivo MP4, primero extrae el audio. La API acepta video directamente (MP4, WebM), pero enviar solo el audio es más rápido:

# Extraer audio de video con FFmpeg
ffmpeg -i mi_video.mp4 -vn -acodec libmp3lame -q:a 4 audio.mp3

Si tu video ya está en formato MP3 o WAV, salta este paso.

Paso 2: Generar subtítulos SRT con la API

Con cURL

curl -X POST https://escribelo.4l3.org/transcribe \
  -F "[email protected]" \
  -F "output_format=srt" \
  -F "tier=standard" \
  -o subtitulos.srt

Con Python

import requests

with open("audio.mp3", "rb") as f:
    resp = requests.post(
        "https://escribelo.4l3.org/transcribe",
        files={"file": ("audio.mp3", f, "audio/mpeg")},
        data={"output_format": "srt", "tier": "standard"}
    )

with open("subtitulos.srt", "w", encoding="utf-8") as out:
    out.write(resp.text)

print(f"Subtítulos generados: {len(resp.text)} caracteres")

Con JavaScript (Node.js)

const fs = require('fs');
const FormData = require('form-data');
const axios = require('axios');

const form = new FormData();
form.append('file', fs.createReadStream('audio.mp3'));
form.append('output_format', 'srt');
form.append('tier', 'standard');

const resp = await axios.post(
  'https://escribelo.4l3.org/transcribe',
  form,
  { headers: form.getHeaders() }
);

fs.writeFileSync('subtitulos.srt', resp.data);
console.log('Subtítulos guardados');

La API devuelve un archivo SRT con timestamps sincronizados por segmento:

1
00:00:00,000 --> 00:00:03,450
Bienvenidos al episodio de hoy.

2
00:00:03,450 --> 00:00:07,120
Vamos a hablar sobre cómo automatizar
tu flujo de contenido.

3
00:00:07,120 --> 00:00:11,890
Lo primero que necesitas es una
herramienta de transcripción confiable.

Paso 3: Incrustar subtítulos en el video

Tienes dos opciones: subtítulos “quemados” (hardcoded) o como archivo externo.

Opción A: Quemar subtítulos en el video (recomendado para TikTok/Reels)

# Subtítulos blancos con borde negro, centrados abajo
ffmpeg -i mi_video.mp4 -vf "subtitles=subtitulos.srt:force_style='FontSize=22,PrimaryColour=&Hffffff,OutlineColour=&H000000,Outline=2,Alignment=2'" -c:a copy video_subtitulado.mp4

Opción B: Subir SRT como archivo separado (YouTube)

YouTube acepta archivos SRT directamente. Ve a YouTube Studio → Subtítulos → Añadir → Subir archivo → selecciona tu subtitulos.srt.

Formato VTT para la web

Si necesitas subtítulos para un reproductor web (HTML5 <video>), usa formato VTT:

curl -X POST https://escribelo.4l3.org/transcribe \
  -F "[email protected]" \
  -F "output_format=vtt" \
  -o subtitulos.vtt

Luego en tu HTML:

<video controls>
  <source src="mi_video.mp4" type="video/mp4">
  <track kind="subtitles" src="subtitulos.vtt"
         srclang="es" label="Español" default>
</video>

Automatizar subtítulos para múltiples videos

Si produces contenido regularmente, puedes automatizar con un script bash:

#!/bin/bash
# Subtitular todos los MP4 de una carpeta
for video in videos/*.mp4; do
  nombre=$(basename "$video" .mp4)

  # 1. Extraer audio
  ffmpeg -i "$video" -vn -acodec libmp3lame -q:a 4 "/tmp/${nombre}.mp3" -y

  # 2. Transcribir a SRT
  curl -s -X POST https://escribelo.4l3.org/transcribe \
    -F "file=@/tmp/${nombre}.mp3" \
    -F "output_format=srt" \
    -o "subs/${nombre}.srt"

  # 3. Quemar subtítulos
  ffmpeg -i "$video" \
    -vf "subtitles=subs/${nombre}.srt:force_style='FontSize=20,Outline=2'" \
    -c:a copy "output/${nombre}_sub.mp4" -y

  echo "✓ $nombre subtitulado"
done

Consejos para mejorar la precisión

Cuánto cuesta subtitular videos

Con Escribelo el costo es mínimo comparado con hacerlo manual o usar plataformas premium:

Un video de 10 minutos cuesta $0.05 en pay-as-you-go. Subtitularlo manualmente te costaría 30-60 minutos de tu tiempo.

Subtitula tu primer video gratis

60 minutos de transcripción gratuita cada mes. Sin tarjeta.

Empezar gratis →

Preguntas frecuentes

¿Puedo subtitular videos verticales (9:16) para TikTok?

Sí. El formato del video no afecta la transcripción. Solo ajusta el tamaño de fuente en FFmpeg (FontSize=18 funciona bien en vertical).

¿Los subtítulos incluyen puntuación?

Sí. La transcripción incluye puntos, comas, signos de interrogación y exclamación automáticamente.

¿Qué diferencia hay entre SRT y VTT?

Ambos son formatos de subtítulos con timestamps. SRT es más universal (YouTube, Premiere, VLC). VTT es el estándar web para <video> HTML5. Escribelo genera ambos.


Otros tutoriales: Transcribir audio a texto con API · Transcribir video · Transcribir YouTube