Detaillierte Video-Zusammenfassung
Videolink des Benutzers: $ARGUMENTS
Schritt 0 — Eingabetyp bestimmen
-
Kein Link, Frage zu vergangenen Videos → Gehe zum Abschnitt "Archivabfrage" unten; rufe kein neues Transkript ab.
-
Einzelner Videolink → Gehe direkt zu Schritt 1.
-
Mehrere Videolinks → Führe jeden der Reihe nach durch die Schritte 1-3. Jedes Video erhält seine eigene vollständige Zusammenfassung (gleiches Format), getrennt durch
---, und jede wird in einer eigenen Datei gespeichert. Du kannst am Ende eine 1-2-sätzige Anmerkung darüber machen, was die Videos gemeinsam haben/unterscheidet (kein Bericht). -
Playlist-Link (URL enthält
/playlist?list=und keinv=) → Rufe zuerst die Liste ab:bash ~/.claude/skills/video-summary/fetch_transcript.sh --list "<PLAYLIST_URL>"Jede Zeile gibt
url | title | durationaus.- 5 Videos oder weniger: Verarbeite alle der Reihe nach (wie bei mehreren Links).
- Mehr als 5: Zeige dem Benutzer zuerst die Videoanzahl und die Titelliste; frage, ob sie alle, die ersten N oder eine Auswahl möchten. Beginne nicht mit der Verarbeitung ohne Bestätigung.
-
Gemischte Video + Playlist-URL (
watch?v=...&list=...) → Fasse nur dieses einzelne Video zusammen; erwähne am Ende der Zusammenfassung in einem Satz, dass der Link zu einer Playlist gehört und du den Rest auf Wunsch zusammenfassen kannst.
Schritt 1 — Transkript abrufen
Führe folgenden Befehl aus:
bash ~/.claude/skills/video-summary/fetch_transcript.sh "<VIDEO_URL>"
Das Skript gibt aus:
=== VIDEO INFO ===— Titel, Kanal, Dauer, Datum=== CHAPTERS ===— Zeitgestempelte Liste, falls der Uploader Kapitel definiert hat (ansonsten fehlt dieser Abschnitt)=== TRANSCRIPT ===— Sauberes, zeitgestempeltes Transkript
Hinweise:
- Bereits abgerufene Videos werden sofort aus dem Archiv
~/VideoSummaries/transcripts/<video-id>.txtgelesen (du siehst eine(Transcript read from archive: ...)-Zeile) — kein Internet erforderlich. - Wenn das Transkript sehr lang ist (Skriptausgabe wird abgeschnitten), leite die Ausgabe in eine Notizdatei um und lies sie in Teilen — überspringe nichts.
- Bei Videos ohne Untertitel: Wenn Whisper installiert ist, lädt das Skript das Audio herunter und transkribiert es lokal — das kann Minuten dauern, also führe den Befehl mit einem langen Timeout (600000 ms) aus. Eine "(No subtitles — ... whisper ...)"-Zeile auf stderr zeigt diesen Pfad an.
- Wenn es "ERROR: no subtitles" + "WHISPER_SUGGESTION" zurückgibt: Sage dem Benutzer, dass das Video keine Untertitel hat und dass die Installation von Whisper (gebe die Installationsbefehle aus der Fehlermeldung weiter) es ihm ermöglichen würde, es ebenfalls zusammenzufassen. Erfinde niemals eine Analyse ohne Transkript.
- Wenn es "ERROR: could not fetch video info" + "COOKIE_SUGGESTION" zurückgibt:
Versuche NICHT eigenständig mit Cookies erneut — sage dem Benutzer, dass YouTube
die Anfrage blockiert, und frage, ob sie es mit Browser-Cookies erneut versuchen
möchten. Wenn sie zustimmen, führe denselben Befehl mit der Umgebungsvariable
COOKIES=1erneut aus (erwähne, dass eine macOS-Schlüsselbund-Berechtigungsabfrage erscheinen kann).
Schritt 2 — Detaillierte Zusammenfassung schreiben
Das Ziel ist eine DETAILLIERTE ZUSAMMENFASSUNG: Jemand, der das Video nicht gesehen hat, sollte jedes Hauptthema, Argument und jede Schlüsselzahl erfahren — aber dies ist KEINE Nacherzählung des Transkripts. Überspringe kein Hauptthema; gib nicht jeden Satz oder jedes Nebenelement innerhalb eines Themas wieder.
Ziellänge: ~300-450 Wörter insgesamt für ein 15-minütiges Video; skaliere proportional für längere Videos, überschreite aber niemals eine Seite (~700 Wörter).
Sprache: Schreibe die Zusammenfassung immer in der Sprache, in der der Benutzer kommuniziert (unabhängig von der Sprache des Videos). Bei Unklarheit verwende die Sprache des Videos.
Struktur:
# <Video-Titel>
**Kanal:** ... · **Dauer:** ... · **Datum:** ...
## Übersicht
Das Thema und die Kernbotschaft des Videos (2-3 Sätze).
## Hauptthemen
Ein Aufzählungspunkt pro Hauptthema im Video (ein typisches Video hat 4-8):
- **[MM:SS] Themenditel** — die Essenz dieses Themas in 2-4 Sätzen:
die Hauptidee, jede kritische Zahl/jedes Beispiel, die gezogene Schlussfolgerung.
Abschnittsüberschriften: Wenn die Skriptausgabe `=== CHAPTERS ===` hat, erstelle die
Aufzählungspunkte aus diesen Kapiteln und Zeitstempeln (übersetze die Titel in die
Ausgabesprache; überspringe inhaltsleere Kapitel wie Intros/Werbung; fasse sehr kurze,
aufeinanderfolgende Kapitel in einem einzigen Aufzählungspunkt zusammen). Wenn es keine
CHAPTERS gibt, identifiziere die Themenübergänge selbst aus dem Transkript.
## Fazit
Das abschließende Fazit des Sprechers und die empfohlene Handlung für den Zuschauer
(2-4 Sätze). Wenn du einen eigenen Kommentar/Vorbehalt hast, füge ihn ganz am Ende
in einem einzigen Satz hinzu, klar abgetrennt.
Regeln:
- Füge niemals Intros, Abonnenten-Aufforderungen, Sponsoren-Lesungen oder Ankündigungen ein.
- Nimm Zeitstempel aus den
[MM:SS]-Markierungen im Transkript; erfinde sie niemals. - Anklickbare Zeitstempel: Bei YouTube-Videos wandle jeden
[MM:SS]-Stempel in einen Link zu dieser Sekunde des Videos um:[06:09](https://youtu.be/<VIDEO_ID>?t=369)(t = Gesamtsekunden). Wende dies sowohl in der Chat-Ausgabe als auch in der gespeicherten Datei an. Bei Nicht-YouTube-Quellen belasse den Stempel als Klartext; erfinde keine Links. - Füge keine Informationen hinzu, die nicht im Transkript stehen.
- Wenn es 1-2 wirklich markante Zitate gibt, füge sie in den entsprechenden Aufzählungspunkt ein; eröffne keinen separaten Abschnitt.
- Wenn der Benutzer bittet, "tiefer zu gehen" oder nach einem bestimmten Teil fragt, ist das Transkript im Kontext — erweitere diesen Teil so sehr, wie sie möchten.
- Visueller Hinweis: Wenn das Transkript 3 oder mehr visuelle Verweise enthält ("dieses Diagramm", "jene Tabelle", "auf dem Bildschirm", "wie Sie hier sehen können", usw.), hänge eine einzelne Zeile an das Ende der Zusammenfassung an: "📊 Dieses Video sieht visuell stark aus — ich kann auch seine Diagramme/Screenshots analysieren, wenn du möchtest." Wenn der Benutzer zustimmt, wechsle in den Modus "Visuelle Analyse". Wenn es keine visuellen Verweise gibt, füge den Hinweis nicht hinzu.
Schritt 3 — Zusammenfassung im Archiv speichern
Die Chat-Nachricht ist die primäre Ausgabe: Gib die vollständige Zusammenfassung IMMER zuerst im Gespräch aus. Die Archivdatei ist nur eine zusätzliche Kopie — überspringe niemals die Chat-Ausgabe und schreibe nur die Datei, und ersetze niemals die Zusammenfassung durch einen Verweis auf die Datei.
Nachdem du die Zusammenfassung im Chat ausgegeben hast, speichere denselben Inhalt mit dem Schreibwerkzeug in:
~/VideoSummaries/<YYYY-MM-DD>-<video-title-kebab-case>.md
(Datum = heute. Kürze den Titel auf Kleinbuchstaben, ASCII, mit Bindestrichen getrennt; max. 60 Zeichen.)
Füge diesen Metadatenblock ganz oben in der Datei hinzu:
> **Video:** <URL>
> **Zusammengefasst:** YYYY-MM-DD
Teile dem Benutzer in deiner letzten Nachricht den Dateipfad in einer einzigen Zeile mit.
Visuelle Analyse — wenn der Benutzer zustimmt oder direkt danach fragt
Wenn der Benutzer der visuellen Analyse zustimmt (oder direkt danach fragt, z.B. "einschließlich der Diagramme"), tue dies ZUSÄTZLICH zur Transkript-Zusammenfassung:
-
Momente auswählen: Sammle die Sekunden der visuellen Referenzmomente aus dem Transkript (wo der Sprecher "sieh dir das an", "dieses Diagramm" sagt). Wenn es keine klaren Momente gibt, verwende
auto(Szenenwechsel-Erkennung). -
Frames extrahieren (kann eine Weile dauern — verwende ein 600000 ms Timeout):
bash ~/.claude/skills/video-summary/extract_frames.sh "<URL>" "<Notizdatei>/frames" "369,430,585"Das letzte Argument ist die Sekundenliste; lasse es für
autoweg. Das Skript gibt die Frame-Dateipfade aus (frame_006-09.jpg= 06:09). Es werden maximal 12 Frames extrahiert. -
Betrachte die Frames mit Read und interpretiere sie.
-
Schreibe einen Abschnitt "## Visuelle Analyse": Für jeden bedeutenden Frame einen anklickbaren Zeitstempel + was das Bild zeigt + wie es mit der Aussage des Sprechers in diesem Moment zusammenhängt. Überspringe Frames ohne Informationen (nur ein Gesicht, ein Intro-Bildschirm).
-
Hänge den Abschnitt auch an die gespeicherte Zusammenfassungsdatei an (mit Edit).
-
Wenn das Skript sagt "ffmpeg ist nicht installiert", gib den Hinweis
brew install ffmpegweiter; wenn es sagt, dass keine Szenenwechsel gefunden wurden, teile dem Benutzer mit, dass das Video visuell statisch ist (nichts zu analysieren). -
Wenn das Skript sagt "konnte nicht herunterladen" + "COOKIE_SUGGESTION": Führe KEINEN erneuten Versuch mit Cookies eigenständig durch — sage dem Benutzer, dass YouTube den Download blockiert, und frage, ob sie es mit Browser-Cookies erneut versuchen möchten. Wenn sie zustimmen, führe denselben Befehl mit der Umgebungsvariable
COOKIES=1erneut aus (erwähne, dass eine macOS-Schlüsselbund-Berechtigungsabfrage erscheinen kann).
Archivabfrage — kein Link, Frage zu vergangenen Videos
Wenn der Benutzer nach zuvor zusammengefassten Videos ohne URL fragt ("Was hat das Video, das ich letzte Woche zusammengefasst habe, zu X gesagt?", "Was ist in meinem Archiv zu Y?", "Was waren die gemeinsamen Themen der Videos vom letzten Monat?"):
- Breite Suche: Durchsuche die
~/VideoSummaries/*.md-Zusammenfassungen mitgrepnach Schlüsselwörtern. Verwende neben der Sprache des Benutzers auch wahrscheinliche englische Entsprechungen (Zusammenfassungen folgen der Sprache des Benutzers, aber Zitate/Begriffe können in der Originalsprache des Videos sein). - Vertiefen: Lies die passenden Zusammenfassungen. Wenn die Zusammenfassung nicht
ausreicht (genauer Wortlaut, Kontext oder ein Detail, das nicht in der
Zusammenfassung enthalten ist), gehe zum rohen Transkript desselben Videos: Nimm die
Video-ID aus der URL im Metadatenblock der Zusammenfassung und lese/durchsuche
~/VideoSummaries/transcripts/<video-id>.txt. - Zitierte Antworten: Gib jede Tatsache mit ihrer Quelle an — Videotitel, Zusammenfassungsdatum, Zeitstempel. Mache auch hier Zeitstempel anklickbar (die Video-URL steht im Metadatenblock der Zusammenfassung). Fülle niemals Lücken aus dem Gedächtnis oder durch Raten; wenn es nicht im Archiv ist, sage das explizit.
- Datumsfilter: Dateinamen folgen dem Schema
YYYY-MM-DD-title.md— filtere Bereiche wie "letzten Monat" nach Dateinamen. - Dieser Modus ist vollständig lokal: Kein YouTube, kein Internet.