Communitygithub.com

weeeha/video-notes

Transforma uma gravação de tela narrada, uma demonstração de produto ou qualquer vídeo que o usuário indicar em uma lista de tarefas numerada com carimbos de tempo e imagens, tudo nesta máquina.

O que é video-notes?

O Video Notes é uma habilidade para agentes de IA que processa localmente gravações de tela e demonstrações de produto fornecidas pelo usuário, convertendo-as em uma lista de tarefas executável numerada com carimbos de tempo e screenshots. Ele utiliza os modelos Whisper (executados localmente via CPU ou GPU) para transcrição de fala e ffmpeg para extração de quadros, garantindo que nenhum áudio ou vídeo seja enviado para APIs de nuvem. A saída é um arquivo markdown (`.notes.md`) contendo uma lista de pendências organizada por região da tela, com cada item incluindo timestamp, comando imperativo, citação textual do narrador e referência ao quadro correspondente. Recursos adicionais incluem suporte para detecção de repetições, separação de itens não claros ou adiados, geração opcional de folhas de contato (contact sheets) para visualização rápida, e uma seção de mapeamento de código quando o repositório relevante está aberto.

Funciona com~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/weeeha/video-notes/tree/HEAD/skills/video-notes

Perguntar na sua IA favorita

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

Documentação

Video Notes

O usuário grava feedback como uma gravação de tela enquanto narra: uma única passada, alguns minutos, frequentemente repetindo um ponto quando o cursor trava. O entregável é uma lista de tarefas que outra sessão pode executar sem assistir ao vídeo. Whisper e ffmpeg rodam localmente; nenhum vídeo ou áudio é enviado para uma API de fala ou visão em nuvem.

Passos

  1. Execute o helper (ele fica ao lado deste arquivo).
    python3 "<pasta desta habilidade>/video-notes.py" "<vídeo>"
    
    Ele reutiliza <vídeo>.srt quando existe ao lado do arquivo, caso contrário executa whisper --model base.en na CPU (cerca de 2,5 min por 5 min de vídeo em um laptop Apple Silicon). A saída vai para <stem>.notes/: transcript.md (uma linha por segmento mesclado com um nome de quadro) e imagens de 1600px. Quando <stem>.notes/ já é mais recente que o vídeo, é reutilizado como está; --force reconstrói, --model turbo quando a transcrição base está confusa, --every 10 para uma demonstração sem narração, --sheet para folhas de contato 2x2, --max-row 5 para mais quadros quando a fala e a tela mudam rapidamente (as linhas são limitadas a 8 s, um quadro por linha), --max-frames 40 padrão.
  2. Leia transcript.md, depois os quadros. Com --sheet, folheie sheet_NN.jpg primeiro (quatro quadros por leitura; os tiles vão da esquerda para a direita, de cima para baixo, na ordem dos quadros, então a folha 01 contém os quadros 1 a 4 e seu tile superior esquerdo é o mais antigo), depois leia o quadro individual para cada linha cujas palavras apontam para a tela ("esta área", "aqui", "esses dois ícones") ou cujo texto precisa ser lido. Uma folha localiza; apenas um quadro individual é evidência para um rótulo ou um tamanho.
  3. Escreva <stem>.notes.md ao lado do vídeo, pelo caminho absoluto, independentemente do diretório de trabalho da sessão. Formato:
    # <nome do vídeo> · <data da gravação> · <duração> · <app ou URL visível nos quadros>
    
    ## Lista de tarefas
    ### <região da tela, nomeada como aparece na tela: Barra esquerda, Cabeçalho, Painel de configurações>
    1. [mm:ss] <correção imperativa em uma frase>. Dito: "<citação literal curta>". Quadro: frame_mmss.jpg
    2. ...
    
    ## Adiado
    <itens marcados como "depois", "eventualmente", "agora não", mesma forma de linha>
    
    ## Não claro
    <uma linha por item que precisa da resposta do usuário>
    
    A numeração percorre toda a lista, para que o usuário possa responder "3 e 7". As regiões seguem a ordem em que foram visitadas. Uma nota repetida é um item, com "dito 3 vezes" anexado quando a repetição é o ponto.
  4. Responda com o caminho do arquivo, os cabeçalhos das regiões com contagens de itens e os três primeiros itens. Não pergunte nada a menos que Não claro tenha entradas.
  5. Quando o repositório que renderiza a tela estiver aberto, adicione ## Onde no código: número do item para o caminho do arquivo, encontrado pesquisando os nomes dos componentes e rótulos visíveis nos quadros. Pule a seção quando não houver repositório; nunca adivinhe um caminho.

Regras

  • Texto ilegível em uma imagem é recapturado, nunca inferido: --width 2400, ou um crop ffmpeg da região.
  • A pasta .notes/ e o arquivo .notes.md permanecem ao lado do vídeo. Dentro de um repositório, essa pasta deve ser ignorada (.git/info/exclude), para que uma gravação grande nunca entre no git.
  • Concorrente ou demonstração de produto: mesmos passos, e a lista lê "o que eles fazem" em vez de "corrigir".
  • A transcrição é executada com os modelos Whisper locais em ~/.cache/whisper. Sem API de fala em nuvem, sem API de visão; o modelo da sessão lê as imagens.

Verificação de conclusão

  • transcript.md produzido e cada quadro lido antes de um item ser escrito
  • <stem>.notes.md escrito: numeração global, regiões em ordem de visita, timestamp e quadro em cada item
  • Repetições colapsadas, Adiado e Não claro separados da lista de tarefas
  • Nenhum vídeo ou áudio enviado para fora da máquina

Habilidades Relacionadas