Communitygithub.com

JinxinHu/open_claude_skills – Folien aus Seminarvideos extrahie…

Extrahiert die Folien aus aufgezeichneten Vorträgen (YouTube, Vimeo, Panopto, Zoom-Aufnahme oder lokale Videodatei) als einzelne PNGs pro Folienwechsel, mit Zeitstempel versehen und zu einem PDF zusammengebaut.

Was ist open_claude_skills – Folien aus Seminarvideos extrahie…?

Diese Fähigkeit dient dazu, Folien (Slides) aus aufgezeichneten Seminaren, Vorlesungen oder Konferenzvorträgen automatisch zu extrahieren und als übersichtliches PDF mit Zeitstempeln bereitzustellen. Sie unterstützt eine Vielzahl von Quellen: YouTube, Vimeo, Panopto, Zoom-Aufnahmen sowie lokale Videodateien. Der Workflow nutzt yt-dlp zum Herunterladen des Videostreams (nur Video, max. 1080p) und ffmpeg zur Szenenerkennung: Es wird ein Bild pro Sekunde analysiert, und nur Frames mit einem ausreichenden Szenenwechsel-Score werden behalten – so entsteht ein kompaktes Set aller Folien und Build-Schritte. Die Plattformunterstützung umfasst Linux, macOS, Windows (Git Bash, WSL) sowie reines Windows PowerShell; die Wahl des passenden Skripts erfolgt automatisch je nach Umgebung. Der Nutzer erhält im Ausgabeordner nummerierte PNG-Bilder, eine Timestamp-Liste und LaTeX-Dateien, aus denen mit pdflatex ein PDF mit je einer Folie pro Seite und darunter stehendem Zeitstempel erstellt wird. Optimierungsmöglichkeiten wie Zuschneiden auf den Folienbereich, Empfindlichkeit der Änderungserkennung und Browser-Cookie-Nutzung für geschützte Aufnahmen sind integriert.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Folien aus einem Seminarvideo

scripts/ enthält zwei Varianten eines Werkzeugs, die dieselbe Funktion erfüllen:

SkriptVerwendung auf
scripts/extract_slides.shLinux, macOS, Git Bash oder WSL unter Windows
scripts/extract_slides.ps1Windows PowerShell (kein Bash nötig)
scripts/slides.texBeamer-Vorlage, die die Skripte neben die Einzelbilder kopieren

So funktioniert es: yt-dlp lädt nur den Videostream herunter (kein Audio, maximal 1080p). ffmpeg tastet mit 1 Bild/s ab und behält das erste Bild sowie jedes Bild, dessen Szenenwechsel-Score einen Schwellwert überschreitet – jedes behaltene Bild ist also eine neue Folie oder ein neuer Build-Schritt. Das showinfo-Log liefert zu jedem Bild die Videoposition in Sekunden. Der Ausgabeordner enthält dann:

  • slide_001.png, slide_002.png, ...: je eine Datei pro Folienwechsel
  • timestamps.txt: die Videopositionen in Sekunden
  • frame_list.tex und slides.tex: pdflatex slides.tex erzeugt eine Seite pro Folie mit dem zugehörigen Zeitstempel im Format h:mm:ss darunter

Schritte

  1. Werkzeuge prüfen. Führen Sie ffmpeg -version und yt-dlp --version aus. Falls eines fehlt, installieren Sie es (siehe unten) oder weisen Sie den Benutzer an. Bei einer lokalen Datei wird yt-dlp nicht benötigt.

  2. Das passende Skript für die Plattform wählen. Unter Windows das PowerShell-Skript nehmen, es sei denn, der Benutzer arbeitet offensichtlich in Git Bash oder WSL.

  3. Skript ausführen mit der vom Benutzer angegebenen URL oder Datei, in einen Ordner, der nach dem Vortrag benannt ist (z. B. -o Vortrag_Folien), nicht innerhalb des Skill-Ordners.

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

    -ExecutionPolicy Bypass umgeht die standardmäßige Blockierung von PowerShell-Skripten unter Windows – nur für diese Ausführung.

  4. Bilder prüfen, bevor Sie berichten. Öffnen Sie einige PNGs (erstes, mittleres, letztes) und kontrollieren Sie:

    • Webcam oder Sprecheransicht neben den Folien: Die Bewegungen des Sprechers lösen falsche Folienwechsel aus. Finden Sie den Folienbereich in einem Bild und starten Sie neu mit einem Zuschnitt: -c B:H:X:Y / -Crop B:H:X:Y (ffmpeg-Crop-Syntax: Breite, Höhe, dann obere linke Ecke).
    • Zu wenige Bilder (Builds oder kleine Änderungen fehlen): Führen Sie erneut mit niedrigerem Schwellwert aus: -t 0.05 / -Threshold 0.05.
    • Zu viele Bilder (Video, Animationen, Kamera-Rauschen): Erhöhen Sie auf 0.2–0.3 oder schneiden Sie zu.
    • Duplikate: Löschen Sie die überzähligen PNGs und die dazugehörigen Zeilen in frame_list.tex.
  5. PDF erstellen falls gewünscht: Wechseln Sie in den Ausgabeordner und führen Sie pdflatex slides.tex (oder latexmk -pdf slides.tex) aus.

  6. Berichten Sie über die Anzahl der Bilder, den Ausgabeordner, das PDF und alles, was für den Benutzer noch zu erledigen ist, z. B. Duplikate, die Sie bewusst behalten haben.

Optionen

BashPowerShellBedeutungStandard
-u URL-Url URLVideo zum Herunterladen (jede von yt-dlp unterstützte Seite)
-i DATEI-InputFile DATEILokale Videodatei anstelle eines Downloads
-o VERZ-OutDir VERZAusgabeordnervideo_frames
-t X-Threshold XSzenenwechsel-Schwellwert, 0–10.10
-c B:H:X:Y-Crop B:H:X:YZuerst auf den Folienbereich zuschneidenkeiner
-b NAME-Browser NAMELogin-Cookies dieses Browsers verwenden (chrome, firefox, edge, ...)keiner

Werkzeuge installieren

  • Windows: winget install --id yt-dlp.yt-dlp und winget install --id Gyan.FFmpeg, dann PowerShell schließen und neu öffnen, damit sie gefunden werden.
  • macOS: brew install yt-dlp ffmpeg
  • Linux: sudo apt install ffmpeg (oder das Äquivalent der Distribution) und pip install -U yt-dlp
  • LaTeX (nur für das PDF): TeX Live oder MiKTeX. MiKTeX' latexmk benötigt Perl; reines pdflatex nicht.

Fehlerbehebung

  • Aufnahme hinter einer Anmeldung (Panopto, Zoom Cloud, Universitätsportal): Übergeben Sie -b chrome / -Browser chrome (oder den Browser, mit dem der Benutzer angemeldet ist). Falls yt-dlp es dennoch nicht abrufen kann, bitten Sie den Benutzer, das Video herunterzuladen und mit -i zu verwenden.
  • $'\r': command not found oder pipefail: invalid option name in Git Bash: Die .sh-Datei hat Windows-Zeilenumbrüche. Führen Sie einmal sed -i 's/\r$//' scripts/extract_slides.sh aus.
  • yt-dlp-Fehler auf YouTube („Sign in to confirm

Verwandte Skills