Communitygithub.com

JinxinHu/open_claude_skills - Extrair Slides de Vídeos de Semin…

Extrai slides de palestras gravadas (YouTube, Vimeo, Panopto, Zoom ou arquivo local) como PNGs individuais, com timestamp, e monta um PDF. Use quando o usuário quiser os slides, figuras ou a apresentação de um vídeo, mesmo sem mencionar 'extrair' ou 'quadros'.

O que é open_claude_skills - Extrair Slides de Vídeos de Semin…?

Esta skill extrai slides de gravações de seminários, palestras ou conferências, suportando fontes como YouTube, Vimeo, Panopto, Zoom e arquivos de vídeo locais. O processo utiliza yt-dlp para baixar apenas o stream de vídeo (sem áudio, no máximo 1080p) e ffmpeg para amostrar a 1 quadro por segundo, mantendo o primeiro quadro e todos cujo score de mudança de cena ultrapasse um limiar configurável. Isso garante que cada quadro retido corresponda a um novo slide ou etapa de construção. O resultado é uma pasta contendo arquivos PNG sequenciais (slide_001.png, slide_002.png, ...), um arquivo timestamps.txt com os tempos de vídeo em segundos, e templates LaTeX (slides.tex, frame_list.tex) para gerar um PDF com um slide por página e seu timestamp h:mm:ss abaixo. A skill oferece scripts para Linux/macOS (bash) e Windows (PowerShell), com opções para ajustar o limiar de detecção de mudança de cena, recortar a área dos slides, usar cookies do navegador para vídeos protegidos por login, e muito mais. É ideal para desenvolvedores, pesquisadores e estudantes que precisam extrair conteúdo visual de palestras sem depender de ferramentas gráficas complexas.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JinxinHu/open_claude_skills/tree/HEAD/video-seminar-crawling

Perguntar na sua IA favorita

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

Documentação

Slides de um vídeo de seminário

scripts/ contém uma ferramenta em duas formas que fazem a mesma coisa:

ScriptUso em
scripts/extract_slides.shLinux, macOS, Git Bash ou WSL no Windows
scripts/extract_slides.ps1Windows PowerShell, sem necessidade de bash
scripts/slides.texTemplate Beamer que os scripts copiam para junto dos quadros

Como funciona: yt-dlp baixa apenas o stream de vídeo (sem áudio, no máximo 1080p). ffmpeg amostra a 1 quadro/s e mantém o primeiro quadro mais todo quadro cuja pontuação de mudança de cena ultrapasse um limiar, de modo que cada quadro mantido é um novo slide ou uma nova etapa de construção. O log showinfo fornece o tempo de vídeo de cada quadro. A pasta de saída então contém:

  • slide_001.png, slide_002.png, ...: um por mudança de slide
  • timestamps.txt: o tempo de vídeo de cada um, em segundos
  • frame_list.tex e slides.tex: pdflatex slides.tex gera uma página por slide com seu horário h:mm:ss abaixo

Passos

  1. Verifique as ferramentas. Execute ffmpeg -version e yt-dlp --version. Se faltar alguma, instale (abaixo) ou informe o usuário como. yt-dlp não é necessário para um arquivo local.

  2. Escolha o script para a plataforma. No Windows, use o do PowerShell a menos que o usuário esteja claramente no Git Bash ou WSL.

  3. Execute-o na URL ou arquivo que o usuário forneceu, em uma pasta nomeada conforme a palestra (por exemplo -o palestrante_topico_quadros), não dentro da pasta da skill.

    bash scripts/extract_slides.sh -u "https://www.youtube.com/watch?v=ID" -o talk_frames
    bash scripts/extract_slides.sh -i "recording.mp4" -o talk_frames
    
    powershell -ExecutionPolicy Bypass -File scripts\extract_slides.ps1 -Url "https://www.youtube.com/watch?v=ID" -OutDir talk_frames
    powershell -ExecutionPolicy Bypass -File scripts\extract_slides.ps1 -InputFile "C:\caminho\para\recording.mp4" -OutDir talk_frames
    

    -ExecutionPolicy Bypass ignora o bloqueio padrão do Windows em scripts, apenas para essa execução.

  4. Examine os quadros antes de relatar. Abra alguns PNGs (primeiro, meio, último) e verifique:

    • Webcam ou visão do palestrante ao lado dos slides: o movimento do palestrante gera falsas mudanças de slide. Encontre a área dos slides em um quadro e execute novamente com um recorte, -c L:A:X:Y / -Crop L:A:X:Y (sintaxe de recorte do ffmpeg: largura, altura, depois canto superior esquerdo).
    • Poucos quadros (etapas ou pequenas mudanças perdidas): execute novamente com um limiar mais baixo, -t 0.05 / -Threshold 0.05.
    • Muitos quadros (vídeo, animações, ruído da câmera): aumente para 0.2-0.3, ou recorte.
    • Duplicatas: exclua os PNGs extras e suas linhas em frame_list.tex.
  5. Gere o PDF se o usuário quiser: cd para a pasta de saída e execute pdflatex slides.tex (ou latexmk -pdf slides.tex).

  6. Relate a contagem de quadros, a pasta de saída, o PDF e qualquer coisa pendente para o usuário, como duplicatas que você manteve intencionalmente.

Opções

bashPowerShellSignificadoPadrão
-u URL-Url URLVídeo para baixar (qualquer site suportado pelo yt-dlp)
-i ARQUIVO-InputFile ARQUIVOVídeo local em vez de download
-o DIR-OutDir DIRPasta de saídavideo_frames
-t X-Threshold XLimiar de mudança de cena, 0-10.10
-c L:A:X:Y-Crop L:A:X:YRecortar para a área dos slides primeironenhum
-b NOME-Browser NOMEUsar cookies de login deste navegador (chrome, firefox, edge, ...)nenhum

Instalando as ferramentas

  • Windows: winget install --id yt-dlp.yt-dlp e winget install --id Gyan.FFmpeg, depois feche e reabra o PowerShell para que ele as encontre.
  • macOS: brew install yt-dlp ffmpeg
  • Linux: sudo apt install ffmpeg (ou o equivalente da distribuição) e pip install -U yt-dlp
  • LaTeX (apenas para o PDF): TeX Live ou MiKTeX. O latexmk do MiKTeX precisa de Perl; pdflatex simples não precisa.

Solução de problemas

  • Gravação atrás de login (Panopto, Zoom cloud, portal universitário): passe -b chrome / -Browser chrome (ou o navegador com o qual o usuário está logado). Se o yt-dlp ainda não conseguir obtê-la, peça ao usuário para baixar o vídeo e use -i.
  • $'\r': comando não encontrado ou pipefail: invalid option name no Git Bash: o arquivo .sh tem terminações de linha do Windows. Execute sed -i 's/\r$//' scripts/extract_slides.sh uma vez.
  • Erros do yt-dlp no YouTube ("Faça login para confirmar", erros de formato): atualize-o primeiro, yt-dlp -U ou pip install -U yt-dlp, que corrige a maioria deles.
  • Sem rede para o host do vídeo (sessão em sandbox ou na nuvem): informe isso e forneça ao usuário o comando para executar em sua própria máquina.

Baixe apenas gravações que o usuário tem permissão para acessar e mantenha os quadros para suas próprias anotações e estudo, a menos que a licença da palestra diga o contrário.

Habilidades Relacionadas