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 folhastranscript.md: a transcrição com timestamp, ou uma nota informando que não há áudiosheets/sheet_NNN.jpg: folhas de contatoframes/f_NNNN.jpg: quadros individuais, já carimbados com um timestampmanifest.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
- Leia
index.md. - Leia
transcript.mdpor completo. - Leia cada imagem de folha de contato.
- 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.
- Execute o script
scripts/configuredesta skill pelo seu caminho absoluto. No Windows, executepython scripts/configure.pycom o Python da skill. - 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. - Deixe o servidor em execução. A página escreve
config.local.jsonna 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".