Actualizado 5 junio 2026 · 11 min de lectura
Cómo transcribir un podcast a texto y generar show notes
Tu podcast tiene contenido valioso que Google no puede encontrar. Los motores de búsqueda no indexan audio — solo texto. Cada episodio sin transcripción es tráfico orgánico que estás dejando en la mesa.
Las transcripciones de podcast también sirven como materia prima para show notes, newsletters, posts de blog y clips para redes sociales. Un episodio de 45 minutos puede generar 6,000+ palabras de contenido reutilizable.
En esta guía te muestro cómo transcribir tus episodios de podcast en español, generar show notes con capítulos y timestamps, y publicar todo de forma que mejore tu SEO.
Por qué todo podcaster necesita transcripciones
- SEO — cada episodio transcrito añade 4,000-8,000 palabras indexables a tu sitio web
- Accesibilidad — personas con discapacidad auditiva pueden consumir tu contenido
- Descubrimiento — los oyentes buscan “cómo hacer X” en Google, no en Spotify
- Reutilización — convierte fragmentos en tweets, carruseles, newsletter, blog posts
- Show notes — capítulos con timestamps mejoran la experiencia del oyente
Transcribir un episodio con la API
cURL — Un comando
# Transcripción completa con timestamps
curl -X POST https://escribelo.4l3.org/transcribe \
-F "[email protected]" \
-F "output_format=json" \
-F "tier=standard" \
-o episodio-42.json
Python — Script completo con show notes
import requests
import json
def transcribir_episodio(audio_path: str) -> dict:
"""Transcribe un episodio de podcast."""
with open(audio_path, "rb") as f:
resp = requests.post(
"https://escribelo.4l3.org/transcribe",
files={"file": f},
data={"output_format": "json", "tier": "standard"}
)
resp.raise_for_status()
return resp.json()
def generar_show_notes(transcripcion: dict) -> str:
"""Genera show notes con capítulos y timestamps."""
segmentos = transcripcion.get("segments", [])
duracion = transcripcion.get("duration_seconds", 0)
# Agrupa segmentos en bloques de ~5 minutos
capitulos = []
bloque_actual = []
tiempo_bloque = 0
for seg in segmentos:
bloque_actual.append(seg["text"].strip())
if seg["end"] - tiempo_bloque > 300: # 5 min
inicio_min = int(tiempo_bloque // 60)
inicio_seg = int(tiempo_bloque % 60)
resumen = " ".join(bloque_actual)[:150] + "..."
capitulos.append(f" [{inicio_min:02d}:{inicio_seg:02d}] {resumen}")
bloque_actual = []
tiempo_bloque = seg["end"]
notas = [
"## Show Notes",
"",
f"Duración: {int(duracion // 60)} minutos",
"",
"### Capítulos",
""
]
notas.extend(capitulos)
notas.append("")
notas.append("### Transcripción completa")
notas.append("")
notas.append(" ".join(s["text"].strip() for s in segmentos))
return "\n".join(notas)
# Uso
resultado = transcribir_episodio("episodio-42.mp3")
show_notes = generar_show_notes(resultado)
with open("episodio-42-show-notes.md", "w") as f:
f.write(show_notes)
print(f"Show notes generadas: {len(show_notes)} caracteres")
Automatizar desde tu RSS feed
Si publicas episodios regularmente, puedes automatizar todo el proceso:
import feedparser
import requests
from pathlib import Path
RSS_URL = "https://tu-podcast.com/feed.xml"
DONE_FILE = "episodios_transcritos.txt"
def episodios_nuevos():
"""Detecta episodios no transcritos."""
feed = feedparser.parse(RSS_URL)
done = set()
if Path(DONE_FILE).exists():
done = set(Path(DONE_FILE).read_text().splitlines())
nuevos = []
for entry in feed.entries:
for link in entry.get("links", []):
if link.get("type", "").startswith("audio/"):
if entry.id not in done:
nuevos.append({
"id": entry.id,
"title": entry.title,
"url": link.href
})
return nuevos
def descargar_y_transcribir(episodio: dict):
"""Descarga el audio y lo transcribe."""
# Descargar
audio = requests.get(episodio["url"])
tmp = f"/tmp/{episodio['id'].replace('/', '_')}.mp3"
Path(tmp).write_bytes(audio.content)
# Transcribir
with open(tmp, "rb") as f:
resp = requests.post(
"https://escribelo.4l3.org/transcribe",
files={"file": f},
data={"output_format": "json", "tier": "standard"}
)
# Guardar
Path(f"transcripciones/{episodio['id'].replace('/', '_')}.json").write_text(
resp.text
)
# Marcar como hecho
with open(DONE_FILE, "a") as f:
f.write(episodio["id"] + "\n")
print(f"Transcrito: {episodio['title']}")
# Ejecutar
for ep in episodios_nuevos():
descargar_y_transcribir(ep)
Programa este script con cron para que corra cada hora y transcriba episodios nuevos automáticamente.
Publicar la transcripción para SEO
La forma más efectiva de publicar la transcripción es como texto completo en la página del episodio, con Schema.org para podcast:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "PodcastEpisode",
"name": "Episodio 42: Cómo automatizar tu negocio",
"datePublished": "2026-06-05",
"duration": "PT45M",
"transcript": "Texto completo de la transcripción...",
"associatedMedia": {
"@type": "MediaObject",
"contentUrl": "https://tu-podcast.com/ep42.mp3"
}
}
</script>
Generar clips para redes sociales
Con la transcripción en formato SRT, puedes crear clips subtitulados para TikTok y Reels:
# 1. Transcribir a SRT
curl -X POST https://escribelo.4l3.org/transcribe \
-F "[email protected]" \
-F "output_format=srt" \
-o episodio-42.srt
# 2. Cortar un fragmento (minuto 12 a 13)
ffmpeg -i episodio-42.mp3 -ss 00:12:00 -to 00:13:00 clip.mp3
# 3. Crear video con imagen estática + subtítulos
ffmpeg -loop 1 -i portada.jpg -i clip.mp3 \
-vf "subtitles=episodio-42.srt:force_style='FontSize=24,Outline=2'" \
-c:v libx264 -tune stillimage -c:a aac \
-shortest clip_subtitulado.mp4
Cuánto cuesta para podcasters
- Podcast semanal (45 min/ep) — Plan Free cubre 1 episodio. Pro ($9/mes) cubre hasta 6.
- Podcast diario (20 min/ep) — Scale ($29/mes) cubre hasta 90 episodios.
- Pay-as-you-go — $0.005/min = $0.22 por episodio de 45 min.
Comparado con transcripción manual ($1-2/min), ahorras un 99.5% del costo.
Transcribe tu primer episodio gratis
60 minutos de transcripción gratuita al mes. Perfecto para probar con tu podcast.
Empezar gratis →Preguntas frecuentes
¿Funciona con episodios de entrevistas (dos voces)?
Sí. La API transcribe todo el audio linealmente. Para separación explícita por hablante, usa tier “accuracy”.
¿Puedo publicar la transcripción en Spotify?
Spotify no acepta transcripciones externas, pero puedes publicarla en tu sitio web y enlazarla desde las notas del episodio en Spotify.
¿La transcripción afecta mi ranking en Apple Podcasts?
Apple Podcasts no indexa texto externo, pero Google sí indexa tu sitio web. La transcripción mejora tu posición en búsquedas de Google, que es donde la mayoría de oyentes nuevos descubren podcasts.
Otros tutoriales: Transcribir audio con API · Subtitular videos · Transcribir reuniones Zoom · Transcribir podcast