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
| Herramienta | Qué hace |
|---|---|
search_videos | Busca con filtros (ventana de publicación, duración, ordenar por vistas/fecha) |
get_video | Metadatos completos + interacción (señal de resonancia likesPer1kViews) |
get_transcript | Transcripción en texto plano mediante una cadena de respaldo resiliente de 3 estrategias |
get_transcripts | Transcripciones por lotes (hasta 10 videos), tolerante a errores por video |
get_channel_videos | Posicionamiento del canal + publicaciones recientes con conteo de vistas |
get_search_suggestions | Autocompletado 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-dlplocal si lo tienes. Cada respuesta te dice quésourcela 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 (
npxsiempre 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.