CLI-Tool
bradautomates/claude-video avatar
bradautomates/claude-video

bradautomates/claude-video: Mit /watch Claude Videos ansehen lassen

Geben Sie Claude die Möglichkeit, jedes Video anzusehen. /watch lädt herunter, extrahiert Frames, transkribiert und übergibt alles an Claude.

17.228 Sterne1.761 ForksPythonMIT
GitHub

Auf einen Blick

Was ist das?
Eine Rezension der Fähigkeit /watch: Sie holt Untertitel, extrahiert Frames mit ffmpeg, transkribiert Audio per Whisper als Fallback und übergibt alles an Claude, damit Antworten auf dem echten Bildinhalt basieren.
Für wen ist es gedacht?
claude-video eignet sich für Claude-Code-Nutzer, die Videoinhalte wie Aufzeichnungen, Launch-Videoe oder Podcastintros ohne eigenes Ansehen auswerten wollen. Weniger geeignet ist es für lange Videos, die volle Details brauchen, oder für Umgebungen ohne Bereitschaft, Audio an einen Whisper-Anbieter zu schicken.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 77 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Python, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

/watch: Claude soll das Video sehen, nicht den Titel raten

Claude kann laut README eine Webseite lesen, ein Skript ausführen und ein Repository durchsuchen, aber ein Video kann es von sich aus nicht ansehen. Ein eingefügter YouTube-Link führt bestenfalls zu einer Vermutung aus dem Titel oder zu einem Transkript, das nach Angabe des Autors rund 90 Prozent dessen vermissen lässt, was auf dem Bildschirm passiert. Genau hier setzt das Repository bradautomates/claude-video mit dem Befehl /watch an.

Man fügt eine URL oder einen lokalen Pfad ein, stellt eine Frage, und die Fähigkeit holt zuerst Untertitel, lädt nur das Nötige herunter, extrahiert Frames, erzeugt ein Zeitstempel-Transkript und liest jeden Frame als Bild. Die Antwort entsteht danach aus dem, was tatsächlich zu sehen und zu hören war. Ein Beispiel aus dem README lautet /watch https://youtu.be/dQw4w9WgXcQ what happens at the 30 second mark? Das Projekt ist in Python geschrieben, MIT-lizenziert, zählt über 16.000 Sterne und veröffentlichte im Juli 2026 die Version v0.2.0.

Installation über Plugin-Marktplatz und npx skills add

Für Claude Code empfiehlt das README den Weg über den Marktplatz: zuerst /plugin marketplace add bradautomates/claude-video, dann /plugin install watch@claude-video, was die Fähigkeit automatisch aktuell hält. Für Codex, Cursor, Copilot, Gemini CLI und mehr als 50 weitere Hosts, die Agent Skills unterstützen, lautet der Befehl npx skills add bradautomates/claude-video -g. Das Suffix -g installiert global für den Benutzer, ohne -g gilt die Fähigkeit nur im aktuellen Projekt.

Der Start braucht laut README keine Konfiguration. yt-dlp und ffmpeg werden beim ersten Lauf unter macOS über brew installiert, unter Linux und Windows gibt das Skript die passenden Befehle aus. Untertitel decken die meisten öffentlichen Videos kostenlos ab; ein Whisper-API-Schlüssel ist erst nötig, wenn ein Video keine Untertitelspur besitzt, etwa bei lokalen Dateien.

Die Pipeline von claude-video: Untertitel zuerst, Frames danach

Die Pipeline beginnt mit einer Eingabe: eine URL, die yt-dlp unterstützt, also YouTube, Loom, TikTok, X, Instagram und weitere hundert Quellen, oder ein lokaler Pfad mit .mp4, .mov, .mkv oder .webm. Danach prüft yt-dlp auf Untertitel; bei der Detailstufe transcript kehrt der Lauf zurück, ohne das Video überhaupt herunterzuladen. Andernfalls lädt das Skript nur, was der Lauf tatsächlich braucht.

Dann extrahiert ffmpeg Frames: die Stufe efficient nur Keyframes, nahezu sofort; balanced und token-burner bevorzugen Szenenwechsel-Frames und greifen bei Unterproduktion auf einen dauerbewussten gleichmäßigen Sampler zurück. Die JPEGs sind standardmäßig 512 Pixel breit und für die Kompatibilität mit dem Read-Werkzeug auf 1.998 Pixel Höhe begrenzt. Das Transkript stammt zuerst aus nativen Untertiteln via yt-dlp; fällt das aus, extrahiert das Skript eine Mono-MP3 mit 16 kHz und 64 kbps, etwa 480 kB pro Minute, und schickt sie an Groqs whisper-large-v3, bevorzugt wegen Preis und Tempo, oder an OpenAIs whisper-1. Am Ende druckt das Skript Frame-Pfade mit t=MM:SS-Markern, Claude liest alle Frames parallel und entfernt das Arbeitsverzeichnis, wenn keine Nachfragen folgen.

Frame-Budget mit --start und --end gegen den Tokenhunger

Die Tokenkosten werden von Frames dominiert, jedes Bild kostet Bild-Token, und bei einem spärlichen Scan eines 30-Minuten-Video ist das Budget schnell verbrannt. Deshalb steuert das Skript die Bildrate automatisch: bis 30 Sekunden rund 30 Frames, zwischen 30 Sekunden und einer Minute etwa 40, bis drei Minuten rund 60, bis zehn Minuten etwa 80. Über zehn Minuten greift eine Obergrenze von 100 Frames mit einer Sparse-Scan-Warnung.

Nennt der Nutzer einen Moment, etwa um die 2:30 oder die letzten 30 Sekunden, übernehmen die Flags --start und --end den Fokus. Fokussierte Läufe erhalten dichtere Pro-Sekunden-Budgets, begrenzt auf 2 fps, und sind laut README weit nützlicher als ein spärlicher Gesamtdurchlauf. Wer das gesamte Video ohne Deckelung will, wählt --detail token-burner und zahlt entsprechend mehr Bild-Token; für gezielte Fragen bleibt der Fokuslauf der billigere Weg.

Deduplizierung mit 16x16-Thumbnails und Schwellwert 2.0

Jede Frame-Auswahl kann beinahe identische Bilder liefern: Eine Bildschirmaufzeichnung, die 90 Sekunden auf einer Folie verharrt, erzeugt ein Dutzend gleicher Frames, die einzeln abgerechnet werden. Die Deduplizierung läuft deshalb standardmäßig in jedem Framemodus und lässt sich mit --no-dedup abschalten. Ein einziger ffmpeg-Aufruf skaliert jedes JPEG auf ein 16x16-Graustufen-Thumbnail, danach arbeitet reiner Python-Standard, ohne Bildbibliotheken.

Pro Frame berechnet das Skript die mittlere absolute Helligkeitsdifferenz auf einer Skala von 0 bis 255, und zwar gegen den zuletzt behaltenen Frame, nicht gegen den vorherigen. Das fängt langsame Überblendungen, die einen Frame-zu-Frame-Vergleich nie auslösen würden. Liegt die Differenz bei oder unter dem Schwellwert 2.0, gilt der Frame als Beinahe-Duplikat und fällt weg, andernfalls wird er behalten und zur neuen Referenz. Die Obergrenze des Frame-Budgets greift erst nach der Deduplizierung, das Budget landet also auf unterschiedlichen Frames. Die Zeile Frames meldet das Ergebnis, zum Beispiel 6 selected from 14 candidates mit 8 verworfenen Duplikaten; bei bewegungsreicher Aufnahme bleibt alles erhalten.

Grenzen von claude-video: Sparse Scan, Whisper-Schlüssel und die Alternative

Die Genauigkeit hängt bei langen Videos vom Detailmodus ab: Die begrenzten Modi werden nach rund zehn Minuten dünner und drucken eine Warnung, während token-burner die Obergrenze aufhebt und jeden Szenenwechsel-Frame behält, auf Kosten deutlich mehr Bild-Token. Der Whisper-Fallback verlangt einen Groq- oder OpenAI-API-Schlüssel und lässt sich mit --no-whisper abschalten; ohne Schlüssel bleiben Videos ohne Untertitelspur ohne Transkript. Die GitHub-Metadaten weisen zudem 135 offene Issues aus, ein Zeichen aktiver Nutzung, aber auch offener Baustellen.

Als konkrete Alternative dient ein schlichter Direktlauf von yt-dlp, der nur die Untertitelspur zieht. Das ist billiger, rein textbasiert und reicht, wenn es allein auf das Gesagte ankommt. Der Unterschied liegt sichtbar: Ohne claude-video fehlen alle Frames, also Folieninhalte, Benutzeroberflächen und Bildschirmaufzeichnungen. Wer beides mischen will, wählt pro Frage den Modus: transcript für reine Sprachinhalte, efficient oder balanced, wenn der Bildschirm zählt.

Redaktionelles Fazit

claude-video eignet sich für Claude-Code-Nutzer, die Videoinhalte wie Aufzeichnungen, Launch-Videoe oder Podcastintros ohne eigenes Ansehen auswerten wollen. Weniger geeignet ist es für lange Videos, die volle Details brauchen, oder für Umgebungen ohne Bereitschaft, Audio an einen Whisper-Anbieter zu schicken. Zuerst sollte man mit --detail transcript an einem kurzen Video prüfen, ob Untertitel vorliegen, denn ohne Spur kostet der Whisper-Fallback einen API-Schlüssel und zusätzliche Zeit.

Offizielle Quellen

  1. Official README
  2. Project repository
  3. Release notes
Community-Notizen

Community-Notizen