Skill /watch · Claude Code · Codex · claude.ai

Dê ao Claude olhos para assistir vídeo

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 
O que é

O Claude não tem entrada de vídeo. Esta skill dá uma a ele.

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.

🎞️ Frames por corte de cena

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.

🔬 Microscópio do hook 0-10s

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.

📝 report.md + Obsidian

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.

Como funciona

Da URL à resposta, em um pipeline

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.

URL ou arquivo yt-dlp baixa ffmpeg: frames por cena pacing + motion + câmera captions / Whisper Claude lê cada frame resposta + report.md Obsidian (opcional)
Objetivo final

O vídeo vira uma nota conectada no seu Obsidian

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.

📄 report.md (sempre)

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.

🧠 Ingestão no wiki (com consentimento)

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.

Pré-requisitos

Quase zero config pra começar

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.

ffmpeg + yt-dlp

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

Chave Whisper (opcional)

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
Guia de uso · passo a passo

Instalar e assistir

Comandos reais. No Claude Code é plugin; no Codex/claude.ai é skill. Depois de instalado, o fluxo é só /watch <url-ou-arquivo> [pergunta].

1

Instalar no Claude Code

Adicione o marketplace e instale o plugin watch. (Dois comandos separados.)

/plugin marketplace add inematds/claude-watch
/plugin install watch@claude-watch
2

Preflight no primeiro run

Instala deps ausentes e cria ~/.config/watch/.env. Idempotente — seguro re-rodar.

python3 "$CLAUDE_PLUGIN_ROOT/scripts/setup.py"
3

Assistir um vídeo

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?
4

Focar numa seção (mais denso, menos token)

--start / --end em SS, MM:SS ou HH:MM:SS. O transcript é filtrado pra mesma janela.

/watch "$URL" --start 2:15 --end 2:45
5

Auto-save no Obsidian (opcional)

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
Exemplos

Pra que as pessoas usam

O mesmo vídeo, lentes diferentes — o --intent molda o TL;DR e as seções do relatório.

🪝 Analisar conteúdo alheio

"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.

🐞 Diagnosticar bug por vídeo

Mandam um screen recording quebrado. /watch bug.mov o que está errado? — ele acha o frame onde o problema aparece e descreve a causa.

⏩ Resumir vídeo longo

/watch <url> resume isso — estrutura, momentos-chave, o que foi dito e mostrado. Mais rápido que assistir em 2x.

Roadmap

Versões e origem

Fork de claude-video de Bradley Bonanno (MIT) — o pipeline yt-dlp + ffmpeg + Whisper é dele e roda sem mudança.

v0.4.1
AtualClassificação de movimento de câmera por shot (pan / tilt / zoom / estático / handheld) via ffmpeg 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.
Base
claude-video (Bradley Bonanno)Download yt-dlp + captions, frames ffmpeg com fps auto-escalado, backends Groq/OpenAI Whisper, modo focado --start/--end e o hook de SessionStart.
Próximo
Mais métricas e plataformasRazão talking-head (detecção opcional de rosto), cobertura de mais fontes e refinos da operação de ingest no Second Brain.