Communitygithub.com

analisar-vídeo

Transforma um vídeo local ou gravação de reunião em folhas de contato com timestamp e uma transcrição usando ffmpeg e whisper.cpp local, ou a transcrição que o Zoom ou Teams salvou junto. Use quando o usuário pedir para revisar, assistir, transcrever, resumir ou analisar um vídeo ou gravação (.mp4, .mov, .webm, .mkv, .m4v, .m4a), incluindo reuniões do Zoom e gravações de tela, ou quando ele digitar /configure para alterar as configurações da skill. A gravação permanece na máquina.

O que é analisar-vídeo?

Esta skill processa arquivos de vídeo localmente, garantindo que nenhum dado seja enviado para serviços de transcrição em nuvem. Ela utiliza ffmpeg e whisper.cpp para extrair transcrições com timestamp e gerar folhas de contato a partir de vídeos locais, incluindo gravações de reuniões do Zoom e Teams. O fluxo de trabalho é projetado para agentes de IA (como Claude Code, Cursor ou Codex) que precisam revisar, transcrever ou resumir conteúdo de vídeo sem expor o arquivo original. A skill suporta macOS, Linux e Windows, e detecta automaticamente transcrições .vtt salvas junto com a gravação, preservando nomes de falantes. Caso o usuário solicite configurações diferentes, é possível ajustar parâmetros como intervalo entre quadros, modelo de transcrição, idioma, limite de quadros e muito mais por meio de flags na linha de comando ou pela interface de configuração web. O resultado é estruturado em um diretório `_video/` contendo um índice, a transcrição, folhas de contato e quadros individuais com timestamp.

Funciona com~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/richardjahnke-eng/ai-video-skill/tree/main

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Analisar vídeo

Processe o arquivo nesta máquina. Não faça upload do vídeo ou de seu áudio e não envie nenhum deles para um serviço de transcrição em nuvem.

Execução

Execute o comando a partir da raiz do projeto aberto. A saída vai para _video/ ali, mantendo-a dentro do sandbox do agente e fora de pastas compartilhadas. Execute o script de entrada desta skill pelo seu caminho absoluto.

macOS e Linux:

/caminho/absoluto/para/analyze-video/scripts/analyze_video "/caminho/absoluto/para/video.mp4"

Windows:

powershell -NoProfile -ExecutionPolicy Bypass -File \caminho\absoluto\para\analyze-video\scripts\analyze_video.ps1 "C:\caminho\para\video.mp4"

Pegue o caminho do vídeo de uma listagem de diretório e passe-o exatamente como listado. Nomes de gravação podem conter caracteres que parecem um espaço simples, mas não são.

As gravações locais do Zoom estão em ~/Documents/Zoom/<data hora nome da reunião>/, geralmente como zoom_0.mp4, com um arquivo somente áudio audio_only.m4a. Use o .mp4 a menos que o usuário peça pelo arquivo de áudio. Um arquivo somente áudio recebe uma transcrição e nenhuma folha.

O comando imprime o caminho de index.md. A pasta contém:

  • index.md: duração, intervalo entre quadros e a lista de folhas
  • transcript.md: a transcrição com timestamp, ou uma nota informando que não há áudio
  • sheets/sheet_NNN.jpg: folhas de contato
  • frames/f_NNNN.jpg: quadros individuais, já carimbados com um timestamp
  • manifest.json: impressão digital da origem e as configurações usadas

Se um arquivo .vtt de transcrição estiver ao lado da gravação (os downloads de gravação em nuvem do Zoom acompanham com …_Recording.transcript.vtt, os do Teams com <nome>.vtt), ele é usado em vez do Whisper e mantém os nomes dos falantes. Passe --whisper para transcrever localmente de qualquer forma, ou --transcript /caminho/para/arquivo.vtt para apontar para um com outro nome.

Uma segunda execução com o mesmo arquivo e as mesmas configurações imprime já processado e não refaz o trabalho. Um intervalo, modelo, idioma, configuração de cena, prompt, limite de quadros, escolha de pular quadros ou arquivo de transcrição diferentes faz com que seja processado novamente.

Se o comando falhar, pare e retransmita sua saída. Não amostre quadros você mesmo como substituto. Se a saída disser que a configuração é necessária, ou que o download do modelo Whisper está bloqueado, forneça ao usuário o comando de configuração que ele imprime. O usuário o executa uma vez em um Terminal. Execute-o você mesmo apenas se o usuário pedir e aprovar a execução fora do sandbox.

Leia o resultado

  1. Leia index.md.
  2. Leia transcript.md por completo.
  3. Leia cada imagem de folha de contato.
  4. Abra um arquivo em frames/ somente quando uma célula estiver ilegível.

Se index.md disser que os quadros foram pulados, leia transcript.md e pare. Não há folhas.

Configurar

Quando o usuário digitar /configure, ou pedir para configurar ou alterar as configurações desta skill, abra a página de configurações. Faça isso antes de editar qualquer arquivo de configuração você mesmo.

  1. Execute o script scripts/configure desta skill pelo seu caminho absoluto. No Windows, execute python scripts/configure.py com o Python da skill.
  2. Ele imprime uma linha, configure: http://127.0.0.1:<porta>/. Abra essa URL no navegador do Cursor para que o usuário possa ver a página.
  3. Deixe o servidor em execução. A página escreve config.local.json na pasta da skill. O próximo vídeo usará essas configurações.

Quando o usuário quiser configurações diferentes

As flags sobrescrevem config.json para aquela execução. Por padrão, um quadro é capturado a cada 30 segundos e a cada mudança de cena (um novo slide ou janela), e uma gravação longa tem limite de 96 quadros (8 folhas). Para mais detalhes em uma gravação curta:

/caminho/absoluto/para/analyze-video/scripts/analyze_video "/caminho/absoluto/para/video.mp4" --interval 5 --max-frames 0

No Windows, passe as mesmas flags para scripts/analyze_video.ps1.

Passe --prompt "termos já conhecidos para este vídeo" apenas quando esses nomes já estiverem na tarefa. Não invente um prompt. --max-frames 0 remove o limite. Passe --skip-frames apenas quando o usuário pedir uma transcrição ou resumo e não pedir para assistir ou revisar a imagem.

Outras flags: --language en, --model medium, --no-scene, --scene-threshold 0.2, --min-scene-gap 1, --sheet-cols, --sheet-rows, --frame-width, --keep-audio, --output-root beside (ao lado do vídeo), --config /caminho/para/config.json.

Os valores padrão e a lista completa de chaves estão em config.json e README.md nesta pasta da skill. Um modelo somente inglês (medium.en e os outros nomes *.en) não pode usar "language": "auto".

Habilidades Relacionadas