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
- Audio limpio — graba con micrófono externo. El ruido de fondo reduce la precisión un 10-20%.
- Usa tier “accuracy” — tarda más pero es ideal para audio con ruido o múltiples hablantes.
- Separa por idioma — si tu video mezcla español e inglés, la transcripción puede fallar en las transiciones.
- Revisa los primeros 30 segundos — si el inicio es preciso, el resto generalmente lo es también.
Cuánto cuesta subtitular videos
Con Escribelo el costo es mínimo comparado con hacerlo manual o usar plataformas premium:
- Free — 60 min/mes (suficiente para ~6 videos de 10 min)
- Pro ($9/mes) — 300 min/mes (ideal para creadores que publican diario)
- Scale ($29/mes) — 1,800 min/mes (agencias y equipos de contenido)
- Pay-as-you-go — $0.005/min (sin compromiso mensual)
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