Communitygithub.com

HaoboYang0327/Zotero-to-Notebooklm

Codex-Skill zum Importieren lokaler Zotero-Anhänge in NotebookLM mit automatischem Login, Titelfilter, unterstützter Formatvalidierung und 50-Quellen-Aufteilung.

Was ist Zotero-to-Notebooklm?

Dieser Codex-Skill ermöglicht den direkten Import einer Zotero-Sammlung mit ihren lokalen Anhängen in Google NotebookLM. Er eignet sich besonders für Forscher, die ihre Literaturverwaltung in NotebookLM für KI-gestützte Analysen nutzen möchten. Der Skill automatisiert den gesamten Workflow: Er prüft den Login-Status von `nlm`, führt bei Bedarf eine automatische Anmeldung durch, greift lesend auf die lokale Zotero-SQLite-Datenbank zu, löst Sammlungen und Unterkollektionen auf, filtert nach Dateinamen oder Titeln (optional) und validiert die hochzuladenden Formate anhand der offiziell unterstützten Liste von NotebookLM (z.B. PDF, DOCX, TXT, Bilder und Audio). Das Skript teilt die Quellen in maximal 50 Dateien pro Notebook auf und vermeidet durch Namensvergleiche doppelte Uploads. Es ist wiedereinstiegssicher und scheitert frühzeitig bei nicht unterstützten Formaten wie MLX. Der Skill wird als gebündeltes Python-Skript bereitgestellt und über `uv run` ausgeführt.

Funktioniert mit~Claude Code✓Codex CLI~Cursor
npx skills add HaoboYang0327/Zotero-to-Notebooklm

In Ihrer bevorzugten KI fragen

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

Dokumentation

NotebookLM Zotero Import

Importiert lokale Anhänge einer Zotero-Sammlung in NotebookLM mit deterministischer Benennung, wiederholungssicherem Verhalten und standardmäßiger PDF-Filterung.

Verwende das gebündelte Skript anstatt den Workflow manuell neu zu implementieren.

Voraussetzungen

Überprüfe diese Bedingungen vor dem Import:

  • nlm ist installiert und im PATH
  • Zotero-Daten existieren lokal, normalerweise unter ~/Zotero/zotero.sqlite und ~/Zotero/storage

Die Authentifizierung muss im normalen Gebrauch nicht manuell vorab geprüft werden. Das Skript führt immer zuerst nlm login --check aus und startet nlm login automatisch, wenn die Sitzung fehlt oder abgelaufen ist.

Workflow

  1. Führe den Importer mit uv run aus.
uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --notebook-base "LOB_TTT"
  1. Lass das Skript den gesamten Workflow durchführen:
  • Überprüfen des nlm-Login-Status und Ausführen von nlm login bei Bedarf
  • Öffnen der Zotero-SQLite-Datenbank im schreibgeschützten, unveränderlichen Modus
  • Auflösen der Sammlung nach exaktem Namen
  • Durchlaufen von Unterkollektionen
  • Optionales Einschränken der Zotero-Elemente durch normalisierten Titelsubstring mit --title-match
  • Auflösen jedes Anhangs zur echten Datei im Zotero-Speicher
  • Behalten nur der von NotebookLM unterstützten lokalen Upload-Erweiterungen; standardmäßig pdf
  • Aufteilen der Uploads in Notebook-Shards mit maximal 50 Dateien
  • Wiederverwenden eines vorhandenen gleichnamigen Notebooks, wenn es eindeutig ist
  • Überspringen von Dateien, die bereits im Ziel-Notebook vorhanden sind, basierend auf normalisierten Titeln und Dateinamen
  • Hochladen fehlender Dateien mit nlm source add --file ... --wait

Das Skript scheitert frühzeitig bei Erweiterungen, die nicht in der offiziellen Liste der lokalen Upload-Formate von NotebookLM enthalten sind. Stand 21. April 2026 umfasst diese Liste:

  • Dokumente: pdf, docx, txt, md, csv, pptx, epub
  • Bilder: avif, bmp, gif, heic, heif, ico, jp2, jpe, jpeg, jpg, png, tif, tiff, webp
  • Audio und Medien: 3g2, 3gp, aac, aif, aifc, aiff, amr, au, avi, cda, m4a, mid, mp3, mp4, mpeg, ogg, opus, ra, ram, snd, wav, wma

Erweiterungen außerhalb dieser Menge, wie mlx, werden lokal vor dem Upload abgelehnt.

  1. Lies die abschließende Zusammenfassung für:
  • bearbeitete Notebooks
  • hochgeladene Dateien
  • als bereits vorhanden übersprungene Dateien
  • Fehler, falls vorhanden

Namensregeln

  • Verwende den Basisnamen unverändert, wenn die Sammlung in ein Notebook passt.
  • Verwende Suffixe _01, _02, ..., wenn die Sammlung mehrere Notebooks benötigt.
  • Verwende ein vorhandenes Notebook nur dann wieder, wenn genau ein Notebook den Ziel-Titel hat.
  • Scheitere, anstatt zu raten, wenn der Zotero-Sammlungsname mehrdeutig ist oder mehrere Notebooks denselben Titel haben.

Häufige Befehle

Alle Standard-PDF-Übereinstimmungen einer Sammlung importieren:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --notebook-base "LOB_TTT"

Ein bestimmtes Papier als PDF aus einer Sammlung importieren:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --title-match "LiT: limit order book transformer" \
  --notebook-base "LOB_TTT_single"

Ein bestimmtes Element als PDF und einen weiteren unterstützten Anhangstyp importieren:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "SGN.300" \
  --title-match "Homework_4" \
  --extension pdf \
  --extension md \
  --notebook-base "SGN300_hw4"

Wenn du ein nicht unterstütztes lokales Format wie mlx anforderst, stoppt das Skript sofort mit einer klaren Validierungsfehlermeldung.

Ein nicht-standardmäßiges NotebookLM-Profil verwenden:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --title-match "DeepLOB" \
  --notebook-base "LOB_TTT_deeplob" \
  --profile default

Lokale Zotero-Pfade überschreiben:

uv run ~/.codex/skills/notebooklm-zotero-import/scripts/import_zotero_to_notebooklm.py \
  --collection "Limit Order Book" \
  --notebook-base "LOB_TTT" \
  --zotero-db ~/Zotero/zotero.sqlite \
  --zotero-storage ~/Zotero/storage

Ressourcen

  • scripts/import_zotero_to_notebooklm.py: End-to-End-Importer
  • references/workflow.md: Verhaltensdetails, Abgleichsregeln und Fehlerbedingungen

Verwandte Skills