Communitygithub.com

JinxinHu/open_claude_skills

Extrait les diapositives d'un séminaire enregistré, d'une conférence ou d'une vidéo (YouTube, Vimeo, Panopto, Zoom ou fichier local) sous forme de PNG horodatés, regroupés en un PDF. Utilisez cette compétence dès que l'utilisateur souhaite récupérer les diapositives, les figures ou le jeu de diapositives d'une vidéo de présentation.

Qu'est-ce que open_claude_skills ?

Cette compétence permet d'extraire automatiquement les diapositives d'une vidéo de séminaire, cours ou conférence, qu'elle provienne de YouTube, Vimeo, Panopto, Zoom ou d'un fichier local. Le processus utilise `yt-dlp` pour télécharger le flux vidéo (sans audio, max 1080p) et `ffmpeg` pour détecter les changements de scène en analysant 1 image par seconde avec un seuil configurable. Chaque diapositive (ou étape de construction) est sauvegardée en PNG avec son horodatage, et un PDF peut être généré via LaTeX avec le temps affiché sous chaque page. Les scripts sont disponibles pour Linux/macOS (bash) et Windows (PowerShell). L'utilisateur peut ajuster le seuil de détection, recadrer la zone des diapositives pour éviter les faux positifs (webcam, animations), et utiliser les cookies du navigateur pour les vidéos derrière authentification. La compétence est idéale pour les développeurs, chercheurs ou étudiants qui souhaitent récupérer rapidement les supports visuels d'une présentation sans avoir à les chercher manuellement.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Diapositives d'une vidéo de séminaire

scripts/ contient un outil sous deux formes qui font la même chose :

ScriptUtilisation sur
scripts/extract_slides.shLinux, macOS, Git Bash ou WSL sur Windows
scripts/extract_slides.ps1Windows PowerShell, pas besoin de bash
scripts/slides.texModèle Beamer copié par les scripts à côté des images

Fonctionnement : yt-dlp télécharge le flux vidéo uniquement (pas d'audio, au maximum 1080p). ffmpeg échantillonne à 1 image/s et conserve la première image ainsi que chaque image dont le score de changement de scène dépasse un seuil, de sorte que chaque image conservée est une nouvelle diapositive ou une nouvelle étape de construction. Le journal showinfo donne le temps vidéo de chaque image. Le dossier de sortie contient alors :

  • slide_001.png, slide_002.png, ... : une par changement de diapositive
  • timestamps.txt : le temps vidéo de chacune, en secondes
  • frame_list.tex et slides.tex : pdflatex slides.tex donne une page par diapositive avec son temps h:mm:ss en dessous

Étapes

  1. Vérifier les outils. Exécutez ffmpeg -version et yt-dlp --version. Si l'un manque, installez-le (ci-dessous) ou dites à l'utilisateur comment faire. yt-dlp n'est pas nécessaire pour un fichier local.

  2. Choisir le script pour la plateforme. Sous Windows, utilisez celui PowerShell sauf si l'utilisateur est clairement dans Git Bash ou WSL.

  3. L'exécuter sur l'URL ou le fichier donné par l'utilisateur, dans un dossier nommé d'après la présentation (par exemple -o speaker_topic_frames), pas dans le dossier de la compétence.

    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:\path\to\recording.mp4" -OutDir talk_frames
    

    -ExecutionPolicy Bypass contourne le blocage par défaut de Windows sur les scripts, pour cette exécution uniquement.

  4. Examiner les images avant de faire un rapport. Ouvrez quelques PNG (première, milieu, dernière) et vérifiez :

    • Webcam ou vue de l'orateur à côté des diapositives : les mouvements de l'orateur déclenchent de faux changements de diapositive. Trouvez la zone des diapositives dans une image et relancez avec un recadrage, -c L:H:X:Y / -Crop L:H:X:Y (syntaxe de recadrage ffmpeg : largeur, hauteur, puis coin supérieur gauche).
    • Trop peu d'images (étapes de construction ou petits changements manqués) : relancez avec un seuil plus bas, -t 0.05 / -Threshold 0.05.
    • Trop d'images (vidéo, animations, bruit de la caméra) : augmentez-le à 0.2-0.3, ou recadrez.
    • Doublons : supprimez les PNG supplémentaires et leurs lignes dans frame_list.tex.
  5. Générer le PDF si l'utilisateur le souhaite : cd dans le dossier de sortie et exécutez pdflatex slides.tex (ou latexmk -pdf slides.tex).

  6. Faire un rapport du nombre d'images, du dossier de sortie, du PDF, et de tout ce qui reste à faire pour l'utilisateur, comme les doublons que vous avez gardés intentionnellement.

Options

bashPowerShellSignificationValeur par défaut
-u URL-Url URLVidéo à télécharger (tout site supporté par yt-dlp)
-i FICHIER-InputFile FICHIERVidéo locale au lieu d'un téléchargement
-o DOSSIER-OutDir DOSSIERDossier de sortievideo_frames
-t X-Threshold XSeuil de changement de scène, 0-10.10
-c L:H:X:Y-Crop L:H:X:YRecadrer d'abord à la zone des diapositivesaucun
-b NOM-Browser NOMUtiliser les cookies de connexion de ce navigateur (chrome, firefox, edge, ...)aucun

Installation des outils

  • Windows : winget install --id yt-dlp.yt-dlp et winget install --id Gyan.FFmpeg, puis fermez et rouvrez PowerShell pour qu'il les trouve.
  • macOS : brew install yt-dlp ffmpeg
  • Linux : sudo apt install ffmpeg (ou l'équivalent de la distribution) et pip install -U yt-dlp
  • LaTeX (uniquement pour le PDF) : TeX Live ou MiKTeX. latexmk de MiKTeX nécessite Perl ; pdflatex simple non.

Dépannage

  • Enregistrement derrière une connexion (Panopto, Zoom cloud, portail universitaire) : passez -b chrome / -Browser chrome (ou le navigateur avec lequel l'utilisateur est connecté). Si yt-dlp ne peut toujours pas l'obtenir, demandez à l'utilisateur de télécharger la vidéo et utilisez -i.
  • $'\r': command not found ou pipefail: invalid option name dans Git Bash : le fichier .sh a des fins de ligne Windows. Exécutez sed -i 's/\r$//' scripts/extract_slides.sh une fois.
  • Erreurs yt-dlp sur YouTube ("Sign in to confirm", erreurs de format) : mettez-le d'abord à jour, yt-dlp -U ou pip install -U yt-dlp, ce qui résout la plupart.
  • Pas de réseau vers l'hôte vidéo (session sandboxée ou cloud) : dites-le, et donnez à l'utilisateur la commande à exécuter sur sa propre machine.

Ne récupérez que les enregistrements que l'utilisateur est autorisé à consulter, et conservez les images pour ses propres notes et études, sauf si la licence de la présentation dit le contraire.

Skills associés