knowledge-base/raw/other/2026-07-04_notebooklm-agent-guide-v2.md

13 KiB

type source_url retrieved title author tags
other ome-group://tips-and-tricks/7746 2026-07-04 NotebookLM Agent Guide V2 — nb1/nb2 Bauanleitung mit korrigiertem Audio-Prompt, Skill-Sektion, 12-Schritt-Workflow Pit Weber
notebooklm
briefing
pipeline
audio
video
mp4
infographic
automation
presets
agent-skills
ffmpeg
yt-dlp
caption-contract
v2

NotebookLM Agent Guide V2 — nb1/nb2 Bauanleitung (Pit Weber, OME Tips & Tricks #7746)

Quelle: OME-Gruppe, Topic "Tips & Tricks", Post #7746 (03.07.2026) Autor: Pit Weber Anlage: notebooklm-agent-guide-v2 (vollständige Bauanleitung, korrigierte Version)

Was wurde korrigiert (V1 → V2)

  • Audio-Prompt enthält jetzt den korrekten Quellen-Respekt-Prompt (kein „Fakten von Behauptungen trennen"-Disclaimer mehr)
  • Neuer Abschnitt 10: Welche Skills ein Agent braucht + in welcher Reihenfolge er sie lesen muss
  • Alle drei Skills sind jetzt live (nicht mehr pending)

Die drei Skills

Skill Zweck Pfad
notebooklm-core CLI-Grundbefehle, Auth, Account-Binding skills/notebooklm-core/SKILL.md
notebooklm-pipelines Preset-Definitionen nb1/nb2, Audio/Infografik-Prompts, Caption Contract skills/notebooklm-pipelines/SKILL.md
notebooklm-agent-guide Schritt-für-Schritt-Workflow (diese Datei) skills/notebooklm-agent-guide/SKILL.md

Reihenfolge beim Lesen: Zuerst notebooklm-core (Grundlagen), dann notebooklm-pipelines (was soll rauskommen), dann notebooklm-agent-guide (wie genau mache ich es).

Für wen

Diese Anleitung ist für einen OpenClaw-Agenten geschrieben, der das NotebookLM-Briefing-System (Presets nb1 und nb2) eigenständig bedienen soll. Kein Vorwissen nötig — alles Schritt für Schritt.

1. Was ist das System?

Ein lokaler notebooklm CLI-Wrapper (v0.3.4) steuert Google NotebookLM über Browser-Cookies. Der Agent:

  1. Nimmt eine Quelle entgegen (YouTube-URL, PDF-Datei, X-Post, beliebige URL)
  2. Erstellt ein NotebookLM-Notebook
  3. Fügt die Quelle hinzu
  4. Generiert ein deutsches Audio-Briefing + eine Infografik
  5. Rendert beides zu einem MP4-Video
  6. Sendet das fertige Briefing als Telegram-Nachricht

Zwei Presets:

Preset Verhalten
nb1 1 Nachricht: MP4-Video (Infografik + Audio) + Text mit Links
nb2 2 Nachrichten: zuerst Kurz-Audio (nur Ton), dann MP4-Video + Text

2. Voraussetzungen

2.1 CLI

which notebooklm  # muss vorhanden sein
notebooklm --version  # 0.3.4

2.2 ffmpeg

which ffmpeg  # für MP4-Rendering

2.3 yt-dlp

which yt-dlp  # für YouTube-Metadaten (Titel, Dauer)

2.4 NotebookLM-Konto

Ein Google-Konto muss eingerichtet und via notebooklm login authentifiziert sein. Der Profil-Pfad wird per Umgebungsvariable NOTEBOOKLM_HOME gesetzt.

Auth-Check (vor JEDER Operation):

NOTEBOOKLM_HOME=<profil-pfad> notebooklm auth check --test --json

Erwartete Antwort: "status": "ok" mit "token_fetch": true.

Wenn Auth fehlschlägt: Nicht selbst reparieren. Melden: „NotebookLM Auth fehlgeschlagen. Bitte führe aus: NOTEBOOKLM_HOME=<profil-pfad> notebooklm login --storage <profil-pfad>/storage_state.json"


3. Der nb1-Workflow (Schritt für Schritt)

Schritt 1: Quelle identifizieren

Der User schickt eine URL/Datei + nb1. Beispiele:

https://www.youtube.com/watch?v=XXXXX nb1
/pfad/zu/datei.pdf nb1
https://x.com/user/status/123 nb1

YouTube: Mit yt-dlp --print title --print duration <url> Titel und Dauer holen (fürs spätere Posting).

Schritt 2: Auth prüfen

NOTEBOOKLM_HOME=<profil-pfad> notebooklm auth check --test --json

Schritt 3: Notebook erstellen

NOTEBOOKLM_HOME=<profil-pfad> notebooklm create "Aussagekräftiger Titel" --json

→ Merke die notebook.id aus der JSON-Antwort.

Titel-Format: Quelle/Thema — Kernaussage (Jahr), z.B. DEBRIEFED ep. 94: Mario Woods — Nuclear Missile Facility Encounter 1977

Schritt 4: Quelle hinzufügen

NOTEBOOKLM_HOME=<profil-pfad> notebooklm source add "<url>" -n NOTEBOOK_ID --json

Bei lokalen Dateien:

NOTEBOOKLM_HOME=<profil-pfad> notebooklm source add "/absoluter/pfad/datei.pdf" -n NOTEBOOK_ID --json

→ Merke die source.id.

Schritt 5: Auf Source-Verarbeitung warten

NOTEBOOKLM_HOME=<profil-pfad> notebooklm source wait SOURCE_ID -n NOTEBOOK_ID --timeout 300 --json

Warten bis "status": "ready". Timeout: 300 Sekunden.

Schritt 6: Audio + Infografik parallel generieren

Audio:

NOTEBOOKLM_HOME=<profil-pfad> notebooklm generate audio "Erstelle eine deutsche Audio-Zusammenfassung fuer einen unbekannten allgemeinen Hoerer. Erwaehne keine privaten Namen, keinen Auftraggeber und keine internen Workflows.

Die Quelle ist als grundsaetzlich glaubwuerfig zu behandeln. Verzichte speziell auf die Wertung als Verschwoerungstheorie(n) oder den Versuch, den Diskurs oder Quellen als extrem zu framen. Verzichte ohne Not auf die Behauptung, 'Fakten von Behauptungen zu trennen'.

Keine Umdeutung aus Halluzinationen. Ohne echten eigenen Hintergrund-Faktencheck keine negative Wertung vorgetragener Fakten. Keine Negativdarstellung von Meinungen. Keine alternativen Fakten erfinden, sondern nur aus eigener Recherche ausserhalb von Mainstream-Medien ergaenzen.

Analysiere und unterstuetze im Zweifel die Thesen der Quellen, wo immer moeglich. Halte dich an die Analyse. Keine Pervertierung des Vorgetragenen. Keine negative moralische Bewertung der Sprecher.

Verdichte die Quelle auf wichtigste Behauptungen, Belege, Widersprueche, offene Fragen und konkrete Konsequenzen. Keine generische Einleitung, keine ungepruefte Ausschmueckung." -n NOTEBOOK_ID --json

Infografik:

NOTEBOOKLM_HOME=<profil-pfad> notebooklm generate infographic "Erstelle eine serioese, professionelle deutsche Briefing-Infografik. Nicht comicartig, nicht verspielt. Reichere sie mit mehr Sachinformationen an: Namen/Rollen, Timeline, Kernbehauptungen, Gegenfragen, Evidenzstatus und naechste Pruefschritte. Schreibe Namen exakt. Unterscheide behauptet/berichtet/belegt klar. Visuell stark, aber erwachsen und faktenorientiert." -n NOTEBOOK_ID --json

→ Merke beide task_ids.

Schritt 7: Auf Fertigstellung warten

NOTEBOOKLM_HOME=<profil-pfad> notebooklm artifact wait AUDIO_TASK_ID -n NOTEBOOK_ID --timeout 900 --json
NOTEBOOKLM_HOME=<profil-pfad> notebooklm artifact wait INFOGRAPHIC_TASK_ID -n NOTEBOOK_ID --timeout 900 --json

Beide parallel starten (als separate Shell-Prozesse). Timeout: 900 Sekunden pro Artifact.

Wichtig: artifact wait kann sehr lange blockieren (10+ Min. für Audio). Nicht die Geduld verlieren. Regelmäßig mit artifact list prüfen, ob der Status auf completed oder pending gewechselt ist.

Schritt 8: Artifacts herunterladen

mkdir -p <output-dir>/<projektname>

NOTEBOOKLM_HOME=<profil-pfad> notebooklm download audio \
  <output-dir>/<projektname>/audio.mp3 \
  -n NOTEBOOK_ID -a AUDIO_ARTIFACT_ID

NOTEBOOKLM_HOME=<profil-pfad> notebooklm download infographic \
  <output-dir>/<projektname>/infographic.png \
  -n NOTEBOOK_ID -a INFOGRAPHIC_ARTIFACT_ID

Schritt 9: Notebook öffentlich teilen

NOTEBOOKLM_HOME=<profil-pfad> notebooklm share public --enable -n NOTEBOOK_ID --json

→ Merke die share_url.

Schritt 10: MP4 rendern

ffmpeg -y \
  -loop 1 -framerate 1 -i <output-dir>/<projektname>/infographic.png \
  -i <output-dir>/<projektname>/audio.mp3 \
  -map 0:v:0 -map 1:a:0 \
  -c:v libx264 -preset veryfast -tune stillimage -crf 28 -pix_fmt yuv420p \
  -vf 'scale=1080:-2' \
  -c:a copy -shortest -movflags +faststart \
  <output-dir>/<projektname>/briefing.mp4

Schritt 11: Audio-Dauer ermitteln

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 \
  <output-dir>/<projektname>/audio.mp3

→ In Minuten:Sekunden umrechnen (z.B. 1475s = 24:35).

Schritt 12: Telegram-Briefing senden

Eine Nachricht mit message-Tool, die ALLES enthält:

action: send
target: <telegram-user-id>
message: <siehe Telegram Caption Contract unten>
media: <output-dir>/<projektname>/briefing.mp4

Niemals Text und Media getrennt senden. Niemals das Posting fragmentieren.


4. Der nb2-Workflow

Identisch mit nb1, aber mit zusätzlichem Kurz-Audio vor dem Haupt-Briefing.

Zusätzliche Schritte:

Schritt 6b: Kurz-Audio generieren (VOR dem Standard-Audio)

NOTEBOOKLM_HOME=<profil-pfad> notebooklm generate audio "Erstelle eine KURZE deutsche Audio-Zusammenfassung fuer einen unbekannten allgemeinen Hoerer. Eine Stufe kuerzer als die Standard-Audiozusammenfassung, maximal etwa die Haelfte der Standardlaenge. Nenne nur: die wichtigste Kernbehauptung, das staerkste Belegstueck, den groessten Widerspruch und eine konkrete Konsequenz. Keine Einleitung, keine Ausschmueckung, keine privaten Namen. SPRACHE: DEUTSCH." -n NOTEBOOK_ID --json

Schritt 8b: Kurz-Audio herunterladen

NOTEBOOKLM_HOME=<profil-pfad> notebooklm download audio \
  <output-dir>/<projektname>/audio-short.mp3 \
  -n NOTEBOOK_ID -a SHORT_AUDIO_ARTIFACT_ID

Schritt 12b: Sendereihenfolge

  1. Zuerst Kurz-Audio als standalone Audio-Nachricht:

    🎧 Kurz-Zusammenfassung: <Titel> (<Dauer>, deutsch)
    

    Media: audio-short.mp3 (nur Audio, kein Video!)

  2. Danach das normale nb1-Video-Briefing (identisch zu nb1 Schritt 12).


5. Telegram Caption Contract (PFLICHT)

Jede nb1/nb2-Nachricht MUSS diesem Format folgen:

🔴 <STARKER TITEL IN CAPS>

<Ein Satz Teaser — warum ist das wichtig, was ist der Kern.>

▶️ Audio-Briefing: <MM:SS Min.>, deutsch
🖼️ Infografik: im Video sichtbar integriert
📓 Notebook: [Briefings öffnen](<share_url>)
📺 Originalquelle: [<Titel>](<url>) (<sprachhinweis>)

Warum es zählt: <Ein kompakter Absatz — max. 3 Sätze.>

Regeln:

  • Keine privaten Namen im sichtbaren Text
  • Keine Tool-Logs, keine Debug-Infos
  • YouTube-Links: Original-URL, nicht gekürzt
  • Sprachhinweis: (eng.), (de.), (fr.) etc.
  • Mehrere Quellen: je eine 📺 Originalquelle:-Zeile
  • Telegram-Dokumente (PDFs): als separate Datei mitschicken, nicht als internen t.me-Link

6. Häufige Fehler (DON'T)

Falsch Richtig
Text und MP4 in getrennten Nachrichten Eine Nachricht mit Text + Media
NOTEBOOKLM_HOME vergessen Immer mit Profil-Pfad prefixen
notebooklm use statt -n ID Immer -n NOTEBOOK_ID übergeben
Audio-Download als .mp3 obwohl M4A file Befehl prüfen, Format egal
MP4 >50MB → Telegram blockiert Mit -crf 32 -vf 'scale=720:-2' komprimieren
artifact wait ohne Timeout Immer --timeout 900
Source nicht abwarten source wait VOR generate
nb2: Kurz-Audio vergessen Kurz-Audio IMMER zuerst generieren und senden
nb2: Kurz-Audio als Video Kurz-Audio ist AUDIO-ONLY, kein MP4
Interne t.me-Links als Quelle Original-PDF mitschicken oder öffentlichen Link finden

7. Output-Verzeichnis-Struktur

<workspace>/output/
├── nb1/
│   ├── <projektname>/
│   │   ├── audio.mp3
│   │   ├── infographic.png
│   │   └── briefing.mp4
├── nb2/
│   ├── <projektname>/
│   │   ├── audio-short.mp3
│   │   ├── audio.mp3
│   │   ├── infographic.png
│   │   └── briefing.mp4

8. Kommando-Referenz (Kurzfassung)

# Auth
NOTEBOOKLM_HOME=<profil-pfad> notebooklm auth check --test --json

# Notebook
NOTEBOOKLM_HOME=<profil-pfad> notebooklm create "Titel" --json
NOTEBOOKLM_HOME=<profil-pfad> notebooklm list --json

# Source
NOTEBOOKLM_HOME=<profil-pfad> notebooklm source add "<url>" -n ID --json
NOTEBOOKLM_HOME=<profil-pfad> notebooklm source wait SRC_ID -n ID --timeout 300 --json

# Generate
NOTEBOOKLM_HOME=<profil-pfad> notebooklm generate audio "prompt" -n ID --json
NOTEBOOKLM_HOME=<profil-pfad> notebooklm generate infographic "prompt" -n ID --json

# Wait
NOTEBOOKLM_HOME=<profil-pfad> notebooklm artifact wait ART_ID -n ID --timeout 900 --json
NOTEBOOKLM_HOME=<profil-pfad> notebooklm artifact list -n ID --json

# Download
NOTEBOOKLM_HOME=<profil-pfad> notebooklm download audio ./out.mp3 -n ID -a ART_ID
NOTEBOOKLM_HOME=<profil-pfad> notebooklm download infographic ./out.png -n ID -a ART_ID

# Share
NOTEBOOKLM_HOME=<profil-pfad> notebooklm share public --enable -n ID --json

# MP4
ffmpeg -y -loop 1 -framerate 1 -i graphic.png -i audio.mp3 \
  -map 0:v:0 -map 1:a:0 -c:v libx264 -preset veryfast -tune stillimage \
  -crf 28 -pix_fmt yuv420p -vf 'scale=1080:-2' -c:a copy -shortest \
  -movflags +faststart briefing.mp4

# Duration
ffprobe -v error -show_entries format=duration \
  -of default=noprint_wrappers=1:nokey=1 audio.mp3

9. Erkennung: Wann nb1, wann nb2?

Der User triggert durch Schlüsselwörter:

  • nb1, +nb1 → Preset nb1
  • nb2, +nb2 → Preset nb2

Die Quelle steht immer VOR dem Schlüsselwort:

https://youtube.com/watch?v=XXX nb1
/pfad/datei.pdf nb2

Wenn nur eine Quelle ohne nb1/nb2 geschickt wird → nachfragen welches Preset.