VidWords YouTube

Busca la transcripción de un video de YouTube y lee sus fotogramas: cada respuesta cita una marca de tiempo en la que se puede hacer clic.

Documentación

Servidor MCP de VidWords YouTube

Un servidor Model Context Protocol alojado que permite a un agente de IA leer videos de YouTube — y citar el segundo exacto del que obtuvo la respuesta.

MCP Registry Docs

Un modelo de lenguaje no puede ver un video. Apúntalo a este endpoint y obtendrá nueve herramientas para buscar transcripciones, leer los fotogramas de un video — diapositivas, gráficos, demostraciones, texto en pantalla — y responder preguntas con citas que se verifican antes de que las veas.

Sin código de integración. Sin scraping. Sin grupo de proxies.

POST https://vidwords.com/mcp
Authorization: Basic <your-api-token>

Solo remoto y alojado — no hay nada que instalar ni autoalojar. Este repositorio es el manifiesto público, la referencia de configuración y el rastreador de problemas para ese endpoint.


Inicio rápido

Obtén un token gratuito: crea una cuenta en vidwords.com/register, verifica tu correo electrónico y luego copia el token de tu perfil. El plan gratuito incluye créditos mensuales y 10 minutos de Watch, para que puedas configurarlo y usarlo antes de pagar nada.

Claude Code

claude mcp add --transport http vidwords https://vidwords.com/mcp \
  --header "Authorization: Basic YOUR_API_TOKEN"

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "vidwords": {
      "type": "http",
      "url": "https://vidwords.com/mcp",
      "headers": { "Authorization": "Basic YOUR_API_TOKEN" }
    }
  }
}

Cursor — .cursor/mcp.json

{
  "mcpServers": {
    "vidwords": {
      "url": "https://vidwords.com/mcp",
      "headers": { "Authorization": "Basic YOUR_API_TOKEN" }
    }
  }
}

Codex CLI — ~/.codex/config.toml

[mcp_servers.vidwords]
url = "https://vidwords.com/mcp"
env_http_headers = { "Authorization" = "VIDWORDS_MCP_AUTH" }
export VIDWORDS_MCP_AUTH="Basic YOUR_API_TOKEN"

No uses bearer_token_env_var. Es el campo que parece obvio, pero envía Authorization: Bearer <value> y este servidor se autentica con Basic.

claude.ai y ChatGPT — OAuth, nada que pegar

Añade https://vidwords.com/mcp como conector personalizado. El host se registra solo, te envía a VidWords para iniciar sesión y muestra una pantalla de consentimiento que nombra exactamente lo que está pidiendo. El registro por sí solo no concede nada — el acceso comienza solo cuando una persona con sesión iniciada hace clic en Aprobar, y las conexiones activas se pueden revocar desde tu página de API con efecto inmediato.

Clientes sin soporte de cabeceras personalizadas, y Docker

Este repositorio también incluye un pequeño proxy stdio (src/index.js) que habla MCP en stdin/stdout y reenvía las llamadas de herramientas al endpoint alojado. Úsalo cuando tu cliente no pueda enviar una cabecera HTTP personalizada, o cuando quieras el servidor en un contenedor:

{
  "mcpServers": {
    "vidwords": {
      "command": "npx",
      "args": ["-y", "github:haljishi/vidwords-mcp"],
      "env": { "VIDWORDS_API_TOKEN": "YOUR_API_TOKEN" }
    }
  }
}

Ejecútalo directamente desde este repositorio — el proxy no está publicado en npm, por lo que un simple npx @vidwords/mcp no se resolverá.

docker build -t vidwords-mcp .
docker run --rm -i -e VIDWORDS_API_TOKEN=YOUR_API_TOKEN vidwords-mcp

Los esquemas de las herramientas se declaran en línea en el proxy, por lo que initialize y tools/list responden sin credenciales y no se contacta con el upstream hasta que se llama realmente a una herramienta. Una llamada sin VIDWORDS_API_TOKEN devuelve un error legible en lugar de fallar el handshake. VIDWORDS_MCP_URL anula el endpoint si apuntas a una instancia que no es de producción.

El puente genérico mcp-remote también funciona:

{
  "mcpServers": {
    "vidwords": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://vidwords.com/mcp",
               "--header", "Authorization:Basic YOUR_API_TOKEN"]
    }
  }
}

Los archivos de configuración listos están en examples/.


Las nueve herramientas

HerramientaQué haceCoste
search_transcriptEncuentra dónde un video discute algo. Toma un video o una lista de hasta 25, por lo que una llamada puede responder una pregunta en todo un canal. Devuelve los momentos coincidentes con marcas de tiempo, contexto citado y enlaces profundos youtube.com/watch?v=…&t=…s.1 crédito por video
get_transcriptTexto completo de la transcripción para hasta 25 videos en una llamada.1 crédito por video
list_channel_videosResuelve un identificador de canal, URL o id de UC… a sus subidas recientes.Gratis · Starter y superior
list_watchlistsLas listas de seguimiento Radar de la cuenta y cuánto ha registrado cada una.Gratis
watchlist_activitySubidas más recientes que Radar ha registrado para una lista de seguimiento.Gratis
accountPlan y créditos restantes, para que el agente pueda calcular el precio de un trabajo antes de ejecutarlo.Gratis
analyze_videoInicia un análisis a nivel de fotogramas — diapositivas, gráficos, demostraciones y texto en pantalla, no solo subtítulos. Devuelve un analysisId inmediatamente.Minutos de Watch
get_analysisLee un análisis terminado: capítulos, puntos clave, evidencia con marca de tiempo.Gratis
ask_videoHaz una pregunta sobre un análisis terminado. Las citas se verifican contra la evidencia almacenada o se descartan.1 pregunta de Watch

Prefiere search_transcript sobre get_transcript

Ambos cuestan un crédito por video, por lo que no hay razón de facturación para elegir. La razón es el contexto. Pregunta "¿qué dijo esta entrevista de dos horas sobre precios?" y get_transcript devuelve aproximadamente 20,000 palabras, de las cuales quizás 300 son sobre precios — esas 300 ahora compiten por atención con 19,700 que no lo son, y la respuesta empeora, se vuelve más lenta y más cara de generar.

search_transcript devuelve solo los tramos coincidentes, cada uno con un enlace profundo. Recurre a get_transcript cuando realmente quieras el texto completo: una exportación, un diff, un corpus.

Pide un intervalo, no un video completo

Ambas herramientas de transcripción aceptan códigos de tiempo opcionales from y to — segundos (615), m:ss (10:20) o h:mm:ss (1:02:13):

{ "videos": ["dQw4w9WgXcQ"], "from": "10:20", "to": "11:00" }

Estos son los mismos formatos que las herramientas imprimen, por lo que una marca de tiempo de una respuesta se puede pegar directamente en la siguiente pregunta. Un código de tiempo que no se puede analizar se rechaza antes de obtener nada, por lo que un error tipográfico no cuesta crédito — nunca se amplía silenciosamente a todo el video.

Una llamada en todo un canal

search_transcript acepta una lista, que es como respondes "¿qué ha dicho este canal sobre X" sin un viaje de ida y vuelta por video. Obtén los ids de list_channel_videos primero:

{ "video": ["VIDEO_ID_1", "VIDEO_ID_2", "VIDEO_ID_3"], "query": "pricing" }

Cada video se factura al habitual 1 crédito, y un video no disponible se informa en su propia fila en lugar de fallar la llamada — los demás se obtuvieron y se cobraron, por lo que aún los recibes.

Lee la imagen, no solo los subtítulos

analyze_video mira diapositivas, gráficos, ejemplos de código y texto en pantalla que nunca se dice en voz alta. ask_video luego responde contra ese análisis almacenado, y cada cita se verifica antes de que la veas: una afirmación visual tiene que coincidir con un fotograma que realmente se grabó, una afirmación hablada tiene que aterrizar en un segmento de transcripción real. Cualquier cosa que falle se descarta, y cuando nada sobrevive, la respuesta dice que la evidencia es insuficiente en lugar de producir una suposición segura.

Eso es ocasionalmente molesto — una negativa es una demostración peor que una respuesta fluida — y es la única versión de esta función que es segura de poner frente a un agente, porque un agente repite lo que se le dice sin el escepticismo que aplica un lector humano.


Autenticación, coste y límites

  • Basic, no Bearer. El token se envía tal cual; no codificas en base64 un par user:pass.
  • Verifica tu correo electrónico primero. Hasta que hagas clic en el enlace de verificación, cada llamada devuelve 403 con {"error":"email_unverified"} — el fallo más común en la primera llamada en una cuenta nueva.
  • Los créditos son un solo grupo compartido con la API REST y el sitio web. Un crédito es una transcripción. El análisis de fotogramas consume minutos de Watch en su lugar, y una ejecución rechazada antes de comenzar no cuesta nada.
  • Límite de velocidad: 30 solicitudes / 10 s — deliberadamente más flexible que el 5 de la API REST, porque el servidor no tiene estado y un cliente vuelve a ejecutar initialize antes de cada llamada. analyze_video tiene su propio límite de 10 inicios por minuto, compartido con la ruta REST.
  • Los tokens de RapidAPI se rechazan aquí. Esa identidad se mide por llamada y no tiene cuenta detrás, y ninguna de las dos cosas sobrevive a una sesión de llamada de herramientas. Usa un token de API de VidWords.
  • Sin estado por diseño. Sin flujos SSE reanudables, sin sesión que eliminar; cada herramienta responde en una sola vez. GET y DELETE devuelven un error JSON-RPC en lugar de un HTML 404.
  • Los subtítulos tienen que existir. Para un video sin pista de subtítulos, una cuenta con sesión iniciada puede transcribir desde el audio en su lugar — con precio por duración, cotizado antes de que gastes.

Números completos: precios.


Habilidad del agente

skills/youtube-transcripts/SKILL.md es una habilidad de agente lista para usar para este servidor — selección de herramientas, intervalos de código de tiempo, búsqueda en todo el canal, la tabla de costes y los códigos de error que vale la pena atender, en el formato que Claude y los agentes compatibles cargan directamente.

Copia la carpeta en el directorio de habilidades de tu agente:

git clone --depth 1 https://github.com/haljishi/vidwords-mcp
cp -r vidwords-mcp/skills/youtube-transcripts ~/.claude/skills/

Asume que el servidor MCP está configurado (ver Inicio rápido). El punto es que un asistente que ha leído la habilidad sabe recurrir a search_transcript con un intervalo de código de tiempo en lugar de traer una transcripción completa de dos horas a su contexto.

Documentación

Soporte

Abre un problema aquí para cualquier cosa sobre la superficie MCP — una herramienta que se comporta mal, un cliente cuya configuración no hemos documentado, un esquema que podría ser más claro. Las preguntas sobre cuentas y facturación van a soporte.

Licencia

El contenido de este repositorio (documentación y ejemplos de configuración) tiene licencia MIT. El servicio alojado en sí es propietario y se rige por los términos de VidWords.


Producto independiente; no afiliado a YouTube o Google.