Resumo Detalhado de Vídeo
Link do vídeo fornecido pelo usuário: $ARGUMENTS
Etapa 0 — Determinar o tipo de entrada
-
Sem link, pergunta sobre vídeos passados → vá para a seção "Consulta ao Arquivo" no final; não baixe uma nova transcrição.
-
Link de vídeo único → vá diretamente para a Etapa 1.
-
Múltiplos links de vídeo → execute cada um pelas Etapas 1-3 em ordem. Cada vídeo recebe seu próprio resumo completo (mesmo formato), separado por
---, e cada um é salvo em seu próprio arquivo. Você pode adicionar uma nota de 1-2 frases no final sobre o que os vídeos compartilham/diferem (não um relatório). -
Link de playlist (URL contendo
/playlist?list=e semv=) → busque a lista primeiro:bash ~/.claude/skills/video-summary/fetch_transcript.sh --list "<URL_DA_PLAYLIST>"Cada linha fornece
url | título | duração.- 5 vídeos ou menos: processe todos em ordem (como links múltiplos).
- Mais de 5: primeiro mostre ao usuário a contagem de vídeos e a lista de títulos; pergunte se ele quer todos, os primeiros N ou uma seleção. Não comece o processamento sem confirmação.
-
URL mista de vídeo + playlist (
watch?v=...&list=...) → resuma apenas aquele vídeo único; ao final do resumo, mencione em uma frase que o link pertence a uma playlist e que você pode resumir o resto se ele quiser.
Etapa 1 — Buscar a transcrição
Execute:
bash ~/.claude/skills/video-summary/fetch_transcript.sh "<URL_DO_VIDEO>"
O script imprime:
=== INFORMAÇÕES DO VÍDEO ===— título, canal, duração, data=== CAPÍTULOS ===— lista com timestamps se o uploader definiu capítulos (seção ausente caso contrário)=== TRANSCRIÇÃO ===— transcrição limpa com timestamps
Observações:
- Vídeos buscados anteriormente são lidos instantaneamente do arquivo
~/VideoSummaries/transcripts/<video-id>.txt(você verá uma linha(Transcrição lida do arquivo: ...)) — sem necessidade de internet. - Se a transcrição for muito longa (a saída do script for truncada), redirecione a saída para um arquivo rascunho e leia em partes — não pule nada.
- Para vídeos sem legendas, se o whisper estiver instalado, o script baixa o áudio e transcreve localmente — isso pode levar minutos, então execute o comando com um timeout longo (600000 ms). Uma linha "(Sem legendas — ... whisper ...)" no stderr indica esse caminho.
- Se retornar "ERRO: sem legendas" + "SUGESTÃO_WHISPER": informe ao usuário que o vídeo não tem legendas e que instalar o whisper (repasse os comandos de instalação da mensagem de erro) permitiria que ele também resumisse. Nunca invente uma análise sem uma transcrição.
- Se retornar "ERRO: não foi possível obter informações do vídeo" + "SUGESTÃO_COOKIE": NÃO tente novamente com cookies por conta própria — informe ao usuário que o YouTube está bloqueando a requisição e pergunte se ele deseja tentar novamente com os cookies do navegador. Se ele aprovar, execute novamente o mesmo comando com a variável de ambiente
COOKIES=1(mencione que uma solicitação de permissão do macOS Keychain pode aparecer).
Etapa 2 — Escrever o resumo detalhado
O objetivo é um RESUMO DETALHADO: alguém que não assistiu ao vídeo deve aprender todos os tópicos principais, argumentos e números-chave — mas isso NÃO é uma recontagem da transcrição. Não pule nenhum tópico principal; não relate cada frase ou exemplo secundário dentro de um tópico.
Extensão alvo: ~300-450 palavras no total para um vídeo de 15 minutos; aumente proporcionalmente para vídeos mais longos, mas nunca exceda uma página (~700 palavras).
Idioma: escreva sempre o resumo no idioma em que o usuário está se comunicando (independentemente do idioma do vídeo). Se não estiver claro, use o idioma do vídeo.
Estrutura:
# <Título do Vídeo>
**Canal:** ... · **Duração:** ... · **Data:** ...
## Visão Geral
O tópico e a mensagem central do vídeo (2-3 frases).
## Principais Tópicos
Um bullet por tópico principal no vídeo (um vídeo típico tem 4-8):
- **[MM:SS] Título do tópico** — a essência desse tópico em 2-4 frases:
a ideia principal, qualquer número/exemplo crítico, a conclusão alcançada.
Títulos de seção: se a saída do script tiver `=== CAPÍTULOS ===`, construa os bullets a partir desses capítulos e timestamps (traduza os títulos para o idioma de saída; pule capítulos sem conteúdo, como intros/patrocinadores; mescle capítulos consecutivos muito curtos em um único bullet). Se não houver CAPÍTULOS, identifique as transições de tópico a partir da transcrição.
## Conclusão
A conclusão final do palestrante e a ação recomendada para o espectador (2-4 frases). Se você tiver seu próprio comentário/ressalva, adicione-o no final em uma única frase, claramente separado.
Regras:
- Nunca inclua intros, pedidos de inscrição, leituras de patrocinadores ou anúncios.
- Pegue os timestamps dos marcadores
[MM:SS]na transcrição; nunca os invente. - Timestamps clicáveis: para vídeos do YouTube, transforme cada marcação
[MM:SS]em um link para aquele segundo do vídeo:[06:09](https://youtu.be/<ID_DO_VIDEO>?t=369)(t = segundos totais). Aplique isso tanto na saída do chat quanto no arquivo salvo. Para fontes que não sejam do YouTube, deixe o timestamp como texto simples; não crie links falsos. - Não adicione informações que não estejam na transcrição.
- Se houver 1-2 citações verdadeiramente marcantes, inclua-as dentro do bullet relevante; não abra uma seção separada.
- Se o usuário pedir para "aprofundar" ou sobre uma parte específica, a transcrição está no contexto — expanda essa parte o quanto ele quiser.
- Sugestão visual: se a transcrição tiver 3 ou mais referências visuais ("este gráfico", "aquela tabela", "na tela", "como você pode ver aqui", etc.), acrescente uma única linha ao final do resumo: "📊 Este vídeo parece ter muitos elementos visuais — posso analisar os gráficos/capturas de tela também, se quiser." Se o usuário aprovar, mude para o Modo de Análise Visual. Se não houver referências visuais, não adicione a nota.
Etapa 3 — Salvar o resumo no arquivo
A mensagem no chat é a entrega principal: SEMPRE imprima o resumo completo na conversa primeiro. O arquivo de arquivo é apenas uma cópia extra — nunca pule a saída do chat e apenas escreva o arquivo, e nunca substitua o resumo por um ponteiro para o arquivo.
Após imprimir o resumo no chat, salve o mesmo conteúdo com a ferramenta Write em:
~/VideoSummaries/<AAAA-MM-DD>-<titulo-do-video-em-kebab-case>.md
(Data = hoje. Abrevie o título para minúsculas, ASCII, separado por hífen; máximo de 60 caracteres.)
Adicione este bloco de metadados no topo do arquivo:
> **Vídeo:** <URL>
> **Resumido em:** AAAA-MM-DD
Em sua mensagem final, informe ao usuário o caminho do arquivo em uma única linha.
Modo de Análise Visual — quando o usuário aprova ou pede antecipadamente
Quando o usuário aprovar a análise visual (ou pedir antecipadamente com algo como "incluindo os gráficos"), faça ISSO ALÉM DO resumo da transcrição:
-
Escolha os momentos: colete os segundos dos momentos de referência visual da transcrição (onde o palestrante diz "olhe para isso", "este gráfico"). Se não houver momentos claros, use
auto(detecção de mudança de cena). -
Extraia os frames (pode levar um tempo — use um timeout de 600000 ms):
bash ~/.claude/skills/video-summary/extract_frames.sh "<URL>" "<rascunho>/frames" "369,430,585"O último argumento é a lista de segundos; omita-o para
auto. O script imprime os caminhos dos arquivos de frame (frame_006-09.jpg= 06:09). No máximo 12 frames são extraídos. -
Veja os frames com Read e interprete-os.
-
Escreva uma seção "## Análise Visual": para cada frame significativo, um timestamp clicável + o que a imagem mostra + como se conecta à afirmação do palestrante naquele momento. Pule frames sem informação (apenas um rosto, uma tela de introdução).
-
Acrescente a seção ao arquivo de resumo salvo também (com Edit).
-
Se o script disser "ffmpeg não está instalado", repasse a sugestão
brew install ffmpeg; se disser que nenhuma mudança de cena foi encontrada, informe ao usuário que o vídeo é visualmente estático (nada a analisar). -
Se o script disser "não foi possível baixar" + "SUGESTÃO_COOKIE": NÃO tente novamente com cookies por conta própria — informe ao usuário que o YouTube está bloqueando o download e pergunte se ele deseja tentar novamente com os cookies do navegador. Se ele aprovar, execute novamente o mesmo comando com a variável de ambiente
COOKIES=1(mencione que uma solicitação de permissão do macOS Keychain pode aparecer).
Consulta ao Arquivo — sem link, pergunta sobre vídeos passados
Quando o usuário perguntar sobre vídeos resumidos anteriormente sem uma URL ("o que o vídeo que resumi semana passada disse sobre X", "o que há no meu arquivo sobre Y", "quais foram os temas comuns dos vídeos do mês passado"):
- Varredura ampla: Pesquise com grep nos resumos
~/VideoSummaries/*.mdpor palavras-chave. Junto com o idioma do usuário, também tente equivalentes em inglês prováveis (os resumos seguem o idioma do usuário, mas citações/termos podem estar no idioma original do vídeo). - Aprofundamento: Leia os resumos correspondentes. Se o resumo não for suficiente (redação exata, contexto ou um detalhe que não entrou no resumo), vá para a transcrição bruta do mesmo vídeo: pegue o ID do vídeo da URL no bloco de metadados do resumo e leia/pesquise em
~/VideoSummaries/transcripts/<video-id>.txt. - Respostas citadas: Dê cada fato com sua fonte — título do vídeo, data do resumo, timestamp. Torne os timestamps clicáveis também aqui (a URL do vídeo está no bloco de metadados do resumo). Nunca preencha lacunas com base em memória ou suposições; se não estiver no arquivo, diga isso explicitamente.
- Filtros de data: Os nomes de arquivo seguem
AAAA-MM-DD-titulo.md— filtre intervalos como "mês passado" pelo nome do arquivo. - Este modo é totalmente local: sem YouTube, sem internet.