Pega una URL o un archivo local. Claude lo descarga, extrae frames por corte de escena, transcribe y responde basándose realmente en lo que visto e escuchado el video.
/watch https://youtu.be/… «¿cuál es el gancho?» [watch] descargando mediante yt-dlp… [watch] fotogramas por corte de escena (1 por toma)… [watch] análisis detallado del hook durante los primeros 10s… [watch] transcrito mediante Groq whisper-large-v3 # watch: relatório do vídeo - Frames: 47 @ scene-change - Hook 0-10s: pergunta direta + corte rápido - Transcript: via captions - report.md pronto para ingest ✓
Un script de Python descarga el video, lo convierte en fotogramas JPEG (uno por cada toma detectada), obtiene una transcripción con marcas de tiempo (primero subtítulos, Whisper como alternativa) y se lo entrega todo a Claude Read leer como imagen. Responde mirando lo que está en pantalla y escuchando lo que se dijo.
Un fotograma por cada toma detectada mediante ffmpeg select=gt(scene,…), no un intervalo fijo cada N segundos. El costo de tokens se mantiene estable en videos largos, porque la cantidad de frames está limitada por los cortes, no por la duración.
Análisis denso a 2 fps + transcripción de Whisper a nivel de palabra durante los primeros 10 segundos — donde todo video gana o pierde la atención. El informe indica qué aparecía en pantalla a medida que se pronunciaba cada palabra.
Informe de esquema fijo (TL;DR, momentos clave, hook, perfil editorial con motion y movimiento de cámara, citas, entidades, conceptos, transcripción) con marcadores que Claude completa. Guardado automático opcional en tu vault de Obsidian.
Solo ffmpeg + yt-dlp + stdlib. Únicamente el audio extraído se envía por la red (Groq/OpenAI), y solo cuando faltan subtítulos y Whisper no está desactivado.
O /watch no se detiene en la respuesta. El objetivo es convertir el video en un nodo de conocimiento estructurado en tu Second Brain — enmarcado por el por qué viste (el --intent). Lo guarda en dos capas.
Artefacto de esquema fijo en raw/watched/<slug>/ + los hero frames: TL;DR desde la perspectiva del intent, momentos clave, microscopio del hook 0-10s, perfil editorial, citas, entidades como [[wikilinks]], conceptos y la transcripción completa.
Si el vault tiene uno CLAUDE.md con una operación Ingest, se ejecuta y guarda/actualiza wiki/entities/ (personas, empresas, herramientas), wiki/concepts/ (frameworks), wiki/sources/ (la página del video) y una línea en el log.md.
El objetivo unificador: el video se convierte en un nodo de primera clase en tu grafo de conocimiento — personas, herramientas y conceptos vinculados mediante [[wikilink]] a las notas que ya tienes. Detalle honesto: el report.md el script lo genera automáticamente; la wiki solo se completa si tu vault define la Ingest op — la skill delega este paso al contrato de tu Second Brain, no incluye una ya preparada.
En el primer /watch el preflight lo revisa todo. En macOS se instala automáticamente con brew; en Linux/Windows imprime los comandos exactos. Los subtítulos cubren la mayoría de los videos públicos gratis — la clave de Whisper solo es necesaria cuando el video no tiene subtítulos.
Descarga, extracción de frames y audio. Se instalan en la primera ejecución.
# macOS (automático) brew install ffmpeg yt-dlp # Linux sudo apt install ffmpeg pipx install yt-dlp
Solo para videos sin subtítulos. Groq es la opción preferida (más barato/rápido) u OpenAI.
# ~/.config/watch/.env (chmod 600) GROQ_API_KEY=… # console.groq.com/keys OPENAI_API_KEY=… # platform.openai.com
Comandos reales. En Claude Code es un plugin; en Codex/claude.ai es una skill. Una vez instalado, el flujo es solo /watch <url-ou-arquivo> [pergunta].
Agrega el marketplace e instala el plugin watch. (Dos comandos separados.)
/plugin marketplace add inematds/claude-watch /plugin install watch@claude-watch
Instala las dependencias faltantes y crea ~/.config/watch/.env. Idempotente: es seguro volver a ejecutarlo.
python3 "$CLAUDE_PLUGIN_ROOT/scripts/setup.py"
URL (YouTube, Vimeo, TikTok, X… todo lo que admite yt-dlp) o ruta local. La pregunta se convierte en el intent del informe.
/watch https://youtu.be/dQw4w9WgXcQ # ¿qué pasa a los 30s?
--start / --end en SS, MM:SS o HH:MM:SS. La transcripción se filtra para el mismo intervalo.
/watch "$URL" --start 2:15 --end 2:45
Indica el vault y report.md se convierte en una entrada conectada. Sin eso, el paso de ingestión se omite en silencio.
export WATCH_VAULT_DIR=/caminho/do/seu/vault
El mismo video, diferentes lentes — el --intent da forma al TL;DR y a las secciones del informe.
«¿qué gancho abrió?» — Claude mira los primeros frames, lee la transcripción inicial y desglosa la estructura. Sirve para anuncios creativos, introducciones de podcasts y lanzamientos de la competencia.
Envían una grabación de pantalla rota. /watch bug.mov o que está errado? — encuentra el fotograma donde aparece el problema y describe la causa.
/watch <url> resume isso — estructura, momentos clave, lo que se dijo y se mostró. Más rápido que verlo a 2x.
Fork de claude-video de Bradley Bonanno (MIT) — el pipeline de yt-dlp + ffmpeg + Whisper es suyo y funciona sin cambios.
vidstabdetect, sin opencv. Antes: movimiento por shot (signalstats), frames por corte de escena, microscopio del hook 0-10s, report.md y guardado automático en Obsidian.--start/--end y el hook de SessionStart.