TubeScout

Convierte YouTube en un motor de investigación: búsqueda sin clave, inteligencia de video, transcripciones resistentes y señales de demanda, además de 6 habilidades de investigación incluidas para Claude Code, Codex y OpenCode.

Documentación

TubeScout 🔭

Convierte YouTube en un motor de investigación para tu agente de IA. Un servidor MCP (sin clave API) más un paquete de habilidades que permiten a Claude Code, Codex y OpenCode buscar en YouTube como si fuera una base de datos, leer transcripciones a escala y extraer evidencia de videos — afirmaciones, números, señales de demanda — en lugar de impresiones.

Las herramientas de generación de ideas escanean Reddit y foros. YouTube es donde los fundadores muestran pruebas — paneles de ingresos, guías prácticas, números reales en cámara — y nada lo explota. TubeScout lo hace.

Inicio rápido (60 segundos)

Claude Code

claude mcp add --scope user tubescout -- npx -y tubescout

Codex

codex mcp add tubescout -- npx -y tubescout

OpenCode — añade a ~/.config/opencode/opencode.json bajo "mcp":

"tubescout": { "type": "local", "command": ["npx", "-y", "tubescout"], "enabled": true }

Eso es todo — sin clave API, sin configuración. Luego pregúntale a tu agente cosas como:

"Encuentra los 5 videos más vistos sobre n8n del último mes y resume con qué están luchando las personas."

La opción todo-en-uno más fácil (Claude Code): instala como plugin — servidor MCP + las 6 habilidades en dos comandos:

/plugin marketplace add not0lucky/tubescout
/plugin install tubescout@tubescout

O instala el paquete de habilidades manualmente (funciona para Claude Code, Codex y OpenCode):

git clone https://github.com/not0lucky/tubescout && cd tubescout
./scripts/install-skills.sh   # installs into ~/.claude/skills, ~/.codex/skills, ~/.config/opencode/skills

Herramientas

HerramientaQué hace
search_videosBusca con filtros (ventana de publicación, duración, ordenar por vistas/fecha)
get_videoMetadatos completos + interacción (señal de resonancia likesPer1kViews)
get_transcriptTranscripción en texto plano mediante una cadena de respaldo resiliente de 3 estrategias
get_transcriptsTranscripciones por lotes (hasta 10 videos), tolerante a errores por video
get_channel_videosPosicionamiento del canal + publicaciones recientes con conteo de vistas
get_search_suggestionsAutocompletado de YouTube = demanda de búsqueda real para investigación de palabras clave

Habilidades (los métodos de investigación)

HabilidadÚsala para
/yt-breakdown <urls>Análisis escéptico de videos: extrae cada afirmación y número, pon a prueba incentivos, sesgo de supervivencia, verificabilidad
/yt-idea-mine <niche>Explora un nicho en busca de ideas de producto respaldadas por señales de demanda + problemas que constructores reales describen en cámara
/yt-validate <idea>Veredicto de ir/no ir: demanda, saturación, lo que los números de los competidores realmente muestran
/yt-channel-intel <channel>Lee la estrategia de un canal: cadencia, valores atípicos, qué funciona vs. qué publican
/yt-playbook <tutorial url>Convierte un tutorial en pasos ejecutables — comandos exactos, configuraciones y los detalles mencionados de paso — adaptados a tu stack
/yt-gap <niche>Encuentra brechas de demanda vs. oferta: temas muy buscados servidos por videos débiles, antiguos o inadecuados — para planes de contenido o ángulos de producto

Todas las habilidades son conscientes del contexto: leen la conversación para saber qué estás construyendo, tu stack y los videos ya analizados, y adaptan los veredictos a tu ventaja real en lugar de dar consejos genéricos.

Mira una ejecución real de /yt-breakdown sobre tres videos de "cómo gano $X/mes" — incluyendo lo que sobrevivió al análisis escéptico y lo que no.

Cómo funciona (honestamente)

No hay magia aquí, y ese es el punto:

  • youtubei.js habla con la API interna InnerTube de YouTube — la misma que usa el sitio. Sin clave, sin cuota.
  • Las transcripciones son los subtítulos propios de YouTube, obtenidos mediante una cadena de respaldo: la pista timedtext del cliente ANDROID → el endpoint de transcripción de InnerTube (que se sabe que responde 400 de forma intermitente — se reintenta con retroceso) → yt-dlp local si lo tienes. Cada respuesta te dice qué source la sirvió.
  • Todo el análisis ocurre en tu agente. El servidor entrega datos; las habilidades entregan método.

Limitaciones

  • Ejecútalo localmente. YouTube limita agresivamente la tasa de IPs de centros de datos — este es un servidor stdio local por diseño, no un servicio alojado.
  • YouTube cambia sus internals sin aviso; cuando se rompa, actualiza (npx siempre obtiene la última versión) y reporta un issue con el ID del video que falla.
  • Los videos con subtítulos deshabilitados no se pueden transcribir (raro; el error lo dice explícitamente).
  • El scraping de subtítulos vive en un área gris de los Términos de Servicio de YouTube — está bien para herramientas de investigación local, no construyas un producto pago alojado sobre esto.

Desarrollo

npm install && npm run build
npm test          # unit tests (offline)
npm run test:live # live smoke tests against real videos — run before publishing
npm run inspect   # MCP Inspector against the built server

MIT — ver LICENSE.


Construido por Anir — automatizo cosas. Más en agramprojects.com.