Spoken

Obtén transcripciones publicadas de podcasts como Markdown limpio con nombres reales de los oradores: busca episodios y extrae transcripciones a través de la API de Spoken.

Documentación

Spoken — API de transcripción de podcasts y servidor MCP, Markdown limpio con nombres reales de hablantes

Spoken es una API de transcripción que convierte cualquier podcast publicado en Markdown limpio con nombres reales de hablantes — no "Hablante 1." Una sola llamada a la API devuelve texto con nombres y marcas de tiempo, listo para LLMs, pipelines de RAG, resumidores y búsqueda. Este repositorio también incluye spoken-mcp, un servidor MCP que ofrece a Claude Desktop, Claude Code, Cursor y Cline las mismas transcripciones como herramientas — ver Uso como servidor MCP.

Es una API de recuperación de transcripciones, no un servicio de voz a texto: funciona con podcasts ya publicados, así que te ahorras subir audio, ejecutar diarización y mapear etiquetas anónimas de hablantes manualmente. Para programas ya publicados, esto suele ser 5–10× más barato que pasar el audio por un servicio de transcripción.

  • 🎙️ Nombres reales de hablantes, resueltos automáticamente
  • 📄 Markdown limpio con marcas de tiempo, optimizado para ventanas de contexto de LLMs y fragmentación para RAG
  • 🔎 Búsqueda por consulta de texto o pegando una URL de Spotify/YouTube
  • 💳 Créditos de pago por uso — sin suscripción, las llamadas fallidas nunca se cobran, las consultas repetidas son gratis
  • 🤖 Nativo para agentes — incluye una Habilidad de Agente, agents.md, llms.txt y una especificación OpenAPI

Obtén una clave en spoken.md — o pruébalo gratis con la clave demo pt_demo (la búsqueda funciona por completo; las transcripciones están limitadas al episodio demo).

Inicio rápido

# 1. Find an episode (by text, or paste a Spotify/YouTube URL)
curl -s 'https://spoken.md/search?q=huberman+sleep' \
  -H 'x-api-key: pt_demo'

# 2. Fetch the transcript as Markdown
curl -s 'https://spoken.md/transcripts/1000651996090' \
  -H 'x-api-key: pt_demo'

La transcripción se devuelve como Markdown con nombres de hablantes y marcas de tiempo:

**John Smith** (0:00)
Welcome to the show. Today we're talking about...

**Jane Doe** (0:15)
Thanks for having me.

Endpoints

Método y rutaQué haceCréditos
GET /search?q={query or URL}Encuentra episodios; devuelve id, title, podcast, podcastId, date0
GET /podcasts/{podcastId}/episodesLista el catálogo completo de un programa; devuelve el id, title, date de cada episodio0
GET /transcripts/{id}Devuelve la transcripción en Markdown1 en la primera consulta, 0 en repetidas
GET /balanceSaldo de créditos actual + historial de uso0
GET /followingLos programas que esta clave sigue (inferidos de las consultas, o declarados con PUT / eliminados con DELETE /following/{podcastId})0
GET /newEpisodios nuevos de esos programas que aún no se han consultado, cada uno con una URL de transcripción; ?format=atom para un feed0
POST /buyAlta de clave nueva (Stripe)—
POST /top-up?key={key}Recarga para clientes existentes (Stripe)—

La autenticación es el encabezado x-api-key. Las respuestas incluyen X-Credits-Remaining y X-Credits-Charged. Ver agents.md para la tabla completa de errores y las formas de las respuestas.

Ejemplos

Uso desde Python

El paquete spoken-md envuelve la API sin dependencias fuera de la biblioteca estándar, e instala un comando spoken-md.

pip install spoken-md
from spoken_md import Spoken

spoken = Spoken()                                  # SPOKEN_API_KEY, or the demo key
episode = spoken.search("huberman sleep")[0]
print(spoken.transcript(episode.id))               # Markdown with real speaker names

archive(podcast_id, skip=...) recorre un programa completo y es reanudable; los errores se tipifican por estado (PaymentRequired lleva la URL de recarga, NotFound significa que no hay transcripción). Ver python/README.md.

Uso como servidor MCP

Este repositorio incluye spoken-mcp, un servidor de Protocolo de Contexto de Modelos que expone Spoken a agentes compatibles con MCP (Claude Desktop, Cursor, Cline, …). Proporciona ocho herramientas:

HerramientaDescripción
search_podcastsEncuentra episodios por texto o una URL pegada de Spotify/YouTube
list_episodesLista el catálogo completo de un programa a partir de un podcast_id
get_transcriptConsulta la transcripción de un episodio como Markdown con nombres reales de hablantes
get_balanceConsulta los créditos restantes
list_followingLos programas que esta clave mantiene al día, inferidos de las consultas o declarados
follow_podcastDeclara un seguimiento de un programa (o elimina un silenciamiento)
unfollow_podcastSilencia un programa para que salga de la lista y las consultas no lo vuelvan a añadir
list_new_episodesEpisodios nuevos de programas seguidos que aún no se han consultado, con enlaces a transcripciones

Mantener una base de conocimiento al día es list_new_episodes en un horario y get_transcript en lo que lista: cada consulta eleva el mínimo de ese programa.

Añádelo a la configuración de tu cliente MCP (por ejemplo, el claude_desktop_config.json de Claude Desktop):

{
  "mcpServers": {
    "spoken": {
      "command": "npx",
      "args": ["-y", "spoken-mcp"],
      "env": { "SPOKEN_API_KEY": "pt_your_key" }
    }
  }
}

SPOKEN_API_KEY por defecto es pt_demo (la búsqueda funciona por completo; las transcripciones están limitadas al episodio demo). Obtén una clave real en spoken.md.

Ejecuta desde el código fuente en su lugar:

npm install && npm run build
SPOKEN_API_KEY=pt_your_key node dist/index.js

Uso con agentes de IA

Spoken está diseñado para ser llamado por agentes. Apunta tu agente a la Habilidad de Agente (también disponible en https://spoken.md/.well-known/skills/spoken-md/SKILL.md), o entrégale agents.md. La especificación OpenAPI facilita envolverlo como herramienta para cualquier cliente de llamada de funciones o compatible con MCP (Claude, GPT, Cursor).

Precios

Créditos de pago por uso, sin suscripción. Claves nuevas: 100 por $15, 500 por $50, 2,000 por $160. Legible por máquina en spoken.md/pricing.md.

Enlaces


Spoken está construido y mantenido en spoken.md.