CommunityCodierung & Entwicklunggithub.com

Blog NotebookLM

Durchsuchen Sie Google NotebookLM-Notebooks direkt von Claude Code nach quellengestützten Antworten von Gemini.

Was ist Blog NotebookLM?

Diese Fertigkeit ermöglicht es Claude Code, über eine nahtlose Schnittstelle Google NotebookLM-Notebooks zu durchsuchen. Jede Frage öffnet eine automatisierte Browsersitzung, ruft die Antwort ausschließlich aus den hochgeladenen Dokumenten des Benutzers ab und schließt die Sitzung. Dadurch werden Antworten der Stufe 1 (primäre Quelldokumente des Benutzers) mit null Halluzinationsrisiko gewährleistet. Die Fertigkeit unterstützt das Abfragen von Notizbüchern, das intelligente Erkennen von Inhalten vor dem Hinzufügen, die Bibliotheksverwaltung und die Einrichtung der Authentifizierung. Sie ist für den internen Gebrauch durch höherstufige Schreib- und Recherche-Fertigkeiten (blog-write, blog-researcher) konzipiert und bietet einen eleganten Fallback, wenn NotebookLM nicht verfügbar ist. Die Authentifizierung erfolgt einmalig über eine sichtbare Google-Anmeldung, und alle Daten werden sicher im Fertigkeitsverzeichnis gespeichert. Die Fertigkeit läuft nur mit lokalem Claude Code und hat Einschränkungen wie fehlende Sitzungspersistenz, ratenbegrenzte kostenlose Konten (50 Abfragen/Tag) und Overhead durch den Browser.

Funktioniert mit✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-notebooklm

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Blog NotebookLM – Quellengestützte Recherche aus Ihren Dokumenten

Durchsuchen Sie Google NotebookLM-Notebooks direkt von Claude Code nach quellengestützten Antworten von Gemini. Jede Frage öffnet eine automatisierte Browsersitzung, ruft die Antwort ausschließlich aus Ihren hochgeladenen Dokumenten ab und schließt die Sitzung. Antworten sind von Stufe 1 (eigene Primärquellen des Benutzers) – kein Halluzinationsrisiko.

Kurzreferenz

BefehlFunktion
/blog notebooklm ask <Frage>Ein Notebook nach quellengestützten Antworten durchsuchen
/blog notebooklm discover <URL>Notizbuchinhalte vor dem Katalogisieren intelligent erkennen
/blog notebooklm library listAlle Notebooks in der Bibliothek auflisten
/blog notebooklm library add <URL>Ein Notebook zur Bibliothek hinzufügen
/blog notebooklm library search <Suchanfrage>Notebooks nach Stichwort durchsuchen
/blog notebooklm library remove <ID>Ein Notebook aus der Bibliothek entfernen
/blog notebooklm setupEinmalige Google-Authentifizierung (Browser sichtbar)
/blog notebooklm statusAuthentifizierungsstatus prüfen
/blog notebooklm cleanupBrowser-Zustand bereinigen (Bibliothek bleibt erhalten)

Voraussetzungen

  • Google-Konto mit NotebookLM-Zugang
  • Python 3.11+ (venv wird automatisch von run.py verwaltet)
  • Google Chrome (wird bei der ersten Ausführung automatisch über Patchright installiert)
  • Einmalige Authentifizierungseinrichtung (interaktives Google-Login im sichtbaren Browser)

Immer den run.py-Wrapper verwenden

NIEMALS Skripte direkt aufrufen. IMMER python3 scripts/run.py [Skript] verwenden:

# RICHTIG:
python3 scripts/run.py auth_manager.py status
python3 scripts/run.py ask_question.py --question "..."

# FALSCH – schlägt ohne venv fehl:
python3 scripts/auth_manager.py status

Der run.py-Wrapper erstellt automatisch .venv, installiert Abhängigkeiten, richtet Chrome ein und führt das Zielskript aus.

Authentifizierungsprüfung (Gate-Muster)

Führen Sie vor jeder Abfrage eine Authentifizierungsprüfung durch:

python3 scripts/run.py auth_manager.py status
  • Wenn authentifiziert: mit der Abfrage fortfahren
  • Wenn nicht authentifiziert: Benutzer informieren und zur Einrichtung führen: „NotebookLM erfordert Google-Login. Führen Sie /blog notebooklm setup aus, um sich zu authentifizieren.“
  • Bei internem Aufruf (von blog-write oder blog-researcher): stillschweigend ohne Fehler zurückkehren, wenn nicht authentifiziert. Den Schreibworkflow niemals blockieren.

Einrichtungsworkflow

Für /blog notebooklm setup:

# Öffnet einen sichtbaren Browser für das manuelle Google-Login (einmalig)
python3 scripts/run.py auth_manager.py setup

Sagen Sie dem Benutzer: „Ein Browserfenster wird geöffnet. Bitte loggen Sie sich in Ihr Google-Konto ein.“ Die Authentifizierung bleibt über einen hybriden Ansatz (Browserprofil + Cookie-Injektion) erhalten.

Weitere Authentifizierungsbefehle:

python3 scripts/run.py auth_manager.py status   # Authentifizierung prüfen
python3 scripts/run.py auth_manager.py reauth   # Erneut authentifizieren
python3 scripts/run.py auth_manager.py clear    # Alle Authentifizierungsdaten löschen

Abfrageworkflow

Für /blog notebooklm ask <Frage>:

Schritt 1: Authentifizierung prüfen

Authentifizierungsprüfung ausführen (siehe Gate-Muster oben). Wenn nicht authentifiziert, zur Einrichtung führen.

Schritt 2: Notizbuch ermitteln

Bestimmen, welches Notizbuch abgefragt werden soll:

  • Wenn --notebook-url angegeben: direkt verwenden
  • Wenn --notebook-id angegeben: in der Bibliothek nachschlagen
  • Wenn keines angegeben: aktives Notizbuch aus der Bibliothek verwenden
  • Wenn kein aktives Notizbuch vorhanden: Bibliothek anzeigen und Benutzer bitten, eines auszuwählen

Schritt 3: Frage stellen

# Einfache Abfrage (verwendet aktives Notizbuch)
python3 scripts/run.py ask_question.py --question "Ihre Frage hier"

# Bestimmtes Notizbuch nach ID abfragen
python3 scripts/run.py ask_question.py --question "..." --notebook-id notizbuch-id

# Direkt nach URL abfragen
python3 scripts/run.py ask_question.py --question "..." --notebook-url "https://..."

# JSON-Ausgabe (für interne/programmatische Verwendung)
python3 scripts/run.py ask_question.py --question "..." --json

# Browser für Debugging anzeigen
python3 scripts/run.py ask_question.py --question "..." --show-browser

Schritt 4: Analysieren und Nachfassen

Jede Antwort endet mit einer Aufforderung zum Nachfassen. Erforderliches Verhalten:

  1. STOPP – nicht sofort auf den Benutzer antworten
  2. ANALYSIEREN – die Antwort mit der ursprünglichen Anfrage des Benutzers vergleichen
  3. LÜCKEN IDENTIFIZIEREN – feststellen, ob weitere Informationen benötigt werden
  4. NACHRAGEN – wenn Lücken vorhanden sind, sofort eine Folgefrage stellen
  5. WIEDERHOLEN – fortfahren, bis die Informationen vollständig sind
  6. SYNTHETISIEREN – alle Antworten kombinieren, bevor dem Benutzer geantwortet wird

Workflow zur intelligenten Erkennung

Für /blog notebooklm discover <URL>:

Wenn ein Notizbuch ohne Kenntnis seines Inhalts hinzugefügt wird, fragen Sie es zuerst ab:

# Schritt 1: Inhalt erkennen
python3 scripts/run.py ask_question.py \
  --question "Was ist der Inhalt dieses Notizbuchs? Welche Themen werden behandelt? Geben Sie eine kurze, prägnante Gesamtübersicht" \
  --notebook-url "<URL>"

# Schritt 2: Mit erkannten Metadaten hinzufügen
python3 scripts/run.py notebook_manager.py add \
  --url "<URL>" \
  --name "<Basierend auf Inhalt>" \
  --description "<Basierend auf Inhalt>" \
  --topics "<Extrahierte Themen>"

NIEMALS raten oder generische Beschreibungen verwenden. Immer erkennen oder den Benutzer fragen.

Bibliotheksverwaltung

# Alle Notebooks auflisten
python3 scripts/run.py notebook_manager.py list

# Notizbuch hinzufügen (alle Parameter erforderlich – erkennen oder Benutzer fragen!)
python3 scripts/run.py notebook_manager.py add \
  --url "https://notebooklm.google.com/notebook/..." \
  --name "Beschreibender Name" \
  --description "Was dieses Notizbuch enthält" \
  --topics "thema1,thema2,thema3"

# Nach Stichwort suchen
python3 scripts/run.py notebook_manager.py search --query "Stichwort"

# Aktives Notizbuch festlegen
python3 scripts/run.py notebook_manager.py activate --id notizbuch-id

# Notizbuch entfernen
python3 scripts/run.py notebook_manager.py remove --id notizbuch-id

# Bibliotheksstatistiken
python3 scripts/run.py notebook_manager.py stats

Interne API (für blog-write / blog-researcher)

Wenn sie als Task-Subagent von blog-write oder blog-researcher aufgerufen wird:

Eingabe (durch die aufrufende Fertigkeit bereitgestellt):

  • question: Zur Blog-Thematik relevante Recherchefrage
  • notebook_id oder notebook_url: Welches Notizbuch abgefragt werden soll
  • context: „internal“ (signalisiert den eleganten Fallback-Modus)

Prozess:

  1. Authentifizierungsstatus prüfen – wenn nicht authentifiziert, stillschweigend leeres Ergebnis zurückgeben
  2. Das Notizbuch mit der Recherchefrage abfragen
  3. Strukturierte Antwort parsen und zurückgeben

Ausgabe (an die aufrufende Fertigkeit zurückgegeben):

### NotebookLM-Recherche
- **Quelle:** [Notizbuchname]
- **Frage:** [Was gefragt wurde]
- **Antwort:** [Quellengestützte Antwort aus den Dokumenten des Benutzers]
- **Quellqualität:** Stufe 1 (vom Benutzer hochgeladene Primärdokumente)

Eleganter Fallback: Wenn die Authentifizierung fehlt oder die Abfrage fehlschlägt, sofort ohne Fehler zurückkehren. Der aufrufende Workflow wird mit WebSearch-basierter Recherche fortgesetzt. blog-write oder blog-rewrite niemals blockieren, weil NotebookLM nicht verfügbar ist.

Datenspeicherung

Alle Daten werden innerhalb des Fertigkeitsverzeichnisses gespeichert:

  • scripts/data/library.json – Notizbuch-Metadaten und Bibliothek
  • scripts/data/auth_info.json – Authentifizierungsstatus
  • scripts/data/browser_state/ – Chrome-Profil mit Cookies

Sicherheit: Alle Datenverzeichnisse sind in .gitignore eingetragen. Authentifizierungs- oder Browserzustand niemals committen.

Fehlerbehandlung

FehlerBehebung
Nicht authentifiziert/blog notebooklm setup ausführen
ModuleNotFoundErrorImmer den run.py-Wrapper verwenden
Browserabsturzcleanup_manager.py --confirm --preserve-library, dann erneut authentifizieren
Ratenlimit (50/Tag)Bis Mitternacht PST warten oder Google-Konto wechseln
Notizbuch nicht gefundenMit notebook_manager.py list prüfen
Abfrage-Timeout (120s)Mit einfacherer Frage oder --show-browser zum Debuggen wiederholen
MCP nicht verfügbar (intern)Stillschweigend zurückkehren – Schreibworkflow verwendet WebSearch

Einschränkungen

  • Keine Sitzungspersistenz (jede Frage = neue Browsersitzung)
  • Ratenlimits für kostenlose Google-Konten (50 Abfragen/Tag)
  • Manueller Upload erforderlich (Benutzer muss Dokumente zur NotebookLM-Weboberfläche hinzufügen)
  • Browser-Overhead (einige Sekunden pro Frage für Start und Abbau)
  • Nur lokaler Claude Code (nicht in der Weboberfläche verfügbar)

Referenzdokumentation

Nicht alle auf einmal laden – nur bei Bedarf laden:

  • references/commands.md – Vollständige CLI-Befehle, Parameter und Workflow-Muster
  • references/troubleshooting.md – Fehlerlösungen, Wiederherstellungsverfahren, Debugging

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Verwandte Skills