Cole uma URL ou um arquivo local. O Claude baixa, extrai frames por corte de cena, transcreve e responde tendo de fato visto e ouvido o vídeo.
/watch https://youtu.be/… "qual o gancho?" [watch] baixando via yt-dlp… [watch] frames por corte de cena (1 por shot)… [watch] microscópio do hook nos primeiros 10s… [watch] transcrito via 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 ✓
Um script Python baixa o vídeo, vira frames JPEG (um por shot detectado), pega um transcript com timestamp (captions primeiro, Whisper como fallback) e entrega tudo pro Claude Read ler como imagem. Ele responde olhando o que está na tela e ouvindo o que foi dito.
Um frame por shot detectado via ffmpeg select=gt(scene,…), não um tick fixo a cada N segundos. O custo de token fica plano em vídeo longo, porque o número de frames é limitado pelos cortes, não pela duração.
Passada densa a 2 fps + transcript Whisper word-level nos primeiros 10 segundos — onde todo vídeo ganha ou perde a atenção. O relatório diz o que estava na tela conforme cada palavra caía.
Relatório de esquema fixo (TL;DR, momentos-chave, hook, perfil editorial com motion e movimento de câmera, citações, entidades, conceitos, transcript) com marcadores que o Claude preenche. Auto-save opcional no seu vault Obsidian.
Pura ffmpeg + yt-dlp + stdlib. Só o áudio extraído sai pra rede (Groq/OpenAI), e apenas quando faltam legendas e o Whisper não está desligado.
O /watch não para na resposta. O alvo é transformar o vídeo num nó de conhecimento estruturado no seu Second Brain — enquadrado pelo porquê você assistiu (o --intent). Ele grava em duas camadas.
Artefato de esquema fixo em raw/watched/<slug>/ + as hero frames: TL;DR pela lente do intent, momentos-chave, microscópio do hook 0-10s, perfil editorial, citações, entidades como [[wikilinks]], conceitos e o transcript completo.
Se o vault tem um CLAUDE.md com uma Ingest op, ela roda e grava/atualiza wiki/entities/ (pessoas, empresas, ferramentas), wiki/concepts/ (frameworks), wiki/sources/ (a página do vídeo) e uma linha no log.md.
O objetivo unificador: o vídeo vira um nó de primeira classe no seu grafo de conhecimento — pessoas, ferramentas e conceitos ligados via [[wikilink]] às notas que você já tem. Detalhe honesto: o report.md o script gera sozinho; o wiki só é populado se o seu vault definir a Ingest op — a skill delega esse passo ao contrato do seu Second Brain, não traz uma pronta.
No primeiro /watch o preflight checa tudo. No macOS instala sozinho via brew; no Linux/Windows imprime os comandos exatos. Captions cobrem a maioria dos vídeos públicos de graça — a chave Whisper só é necessária quando o vídeo não tem legenda.
Download, extração de frames e do áudio. Instalados no 1º run.
# macOS (automático) brew install ffmpeg yt-dlp # Linux sudo apt install ffmpeg pipx install yt-dlp
Só para vídeos sem legenda. Groq preferido (mais barato/rápido) ou OpenAI.
# ~/.config/watch/.env (chmod 600) GROQ_API_KEY=… # console.groq.com/keys OPENAI_API_KEY=… # platform.openai.com
Comandos reais. No Claude Code é plugin; no Codex/claude.ai é skill. Depois de instalado, o fluxo é só /watch <url-ou-arquivo> [pergunta].
Adicione o marketplace e instale o plugin watch. (Dois comandos separados.)
/plugin marketplace add inematds/claude-watch /plugin install watch@claude-watch
Instala deps ausentes e cria ~/.config/watch/.env. Idempotente — seguro re-rodar.
python3 "$CLAUDE_PLUGIN_ROOT/scripts/setup.py"
URL (YouTube, Vimeo, TikTok, X… tudo que o yt-dlp suporta) ou caminho local. A pergunta vira o intent do relatório.
/watch https://youtu.be/dQw4w9WgXcQ # o que acontece aos 30s?
--start / --end em SS, MM:SS ou HH:MM:SS. O transcript é filtrado pra mesma janela.
/watch "$URL" --start 2:15 --end 2:45
Aponte pro vault e o report.md vira uma entrada conectada. Sem isso, a etapa de ingest é pulada em silêncio.
export WATCH_VAULT_DIR=/caminho/do/seu/vault
O mesmo vídeo, lentes diferentes — o --intent molda o TL;DR e as seções do relatório.
"que gancho ele abriu?" — o Claude olha os primeiros frames, lê o transcript de abertura e quebra a estrutura. Vale pra ad creative, intro de podcast, lançamento de concorrente.
Mandam um screen recording quebrado. /watch bug.mov o que está errado? — ele acha o frame onde o problema aparece e descreve a causa.
/watch <url> resume isso — estrutura, momentos-chave, o que foi dito e mostrado. Mais rápido que assistir em 2x.
Fork de claude-video de Bradley Bonanno (MIT) — o pipeline yt-dlp + ffmpeg + Whisper é dele e roda sem mudança.
vidstabdetect, sem opencv. Antes: motion por shot (signalstats), frames por corte de cena, microscópio do hook 0-10s, report.md e auto-save no Obsidian.--start/--end e o hook de SessionStart.