Personal-os-skills notebooklm-import
Import NotebookLM notebooks into your Obsidian vault as linked knowledge graphs. Sources become wikilink-able files, Q&A answers get citations resolved to [[wikilinks]] with passage-level deep links. Use when user says "notebooklm import", "import notebook", "notebooklm sources", or wants to import NotebookLM data into vault files.
install
source · Clone the upstream repo
git clone https://github.com/ArtemXTech/personal-os-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ArtemXTech/personal-os-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/notebooklm-import" ~/.claude/skills/artemxtech-personal-os-skills-notebooklm-import && rm -rf "$T"
manifest:
skills/notebooklm-import/SKILL.mdsource content
NotebookLM - Vault Knowledge Graph
Turn NotebookLM notebooks into persistent, linked vault knowledge. Sources become files you can
[[wikilink]], Q&A answers get [N] citations resolved to those wikilinks, dashboards tie it all together.
Prerequisites
1. Install notebooklm-py
pip install "notebooklm-py[browser]" playwright install chromium
2. Authenticate
notebooklm login
Opens a browser window - log in with your Google account. Cookies are saved to
~/.notebooklm/storage_state.json.
Re-run
notebooklm login when cookies expire (you'll see auth errors).
3. Obsidian Plugins
- Dataview (required) - citation tables and dashboard queries use Dataview/DataviewJS
4. Vault Setup
Copy the templates from
templates/ into your vault:
->templates/notebook-source.mdTemplates/Types/notebook-source.md
-> use as reference when creating dashboardstemplates/dashboard.md
Quick Start
# Check current notebook notebooklm status # Switch notebook notebooklm use <notebook-id> # List notebooks notebooklm list
Workflow Routing
| User says | Workflow |
|---|---|
| "import notebook", "notebooklm import", "import sources" | workflows/import.md |
| "notebooklm ask", "ask notebook", "Q&A" | workflows/ask.md |
Architecture
Your Vault ├── Notes/NotebookLM/{notebook-slug}/ │ ├── Sources/ # One .md per source (YouTube, PDF, web, etc.) │ │ ├── Video Title.md │ │ └── Article Title.md │ └── QA/ # Q&A notes with resolved citations │ └── 2026-02-23 Emerging Themes.md └── Notes/Dashboards/ └── My Research.md # Dashboard with Dataview queries
- Source files have type
with frontmatter:notebook-source
,source_id
,notebook_id
,url
, topics assource_type[[wikilinks]] - Q&A notes have type
withreference
citations resolved to[N]
wikilinks[[Source Title#Passage N]] - Dashboards use Dataview queries to list sources and Q&A notes
Data Model
notebook-source frontmatter:
type: notebook-source source_id: "uuid" # NotebookLM source ID notebook_id: "uuid" # NotebookLM notebook ID url: "" # Original URL source_type: youtube # youtube, pdf, web, text, gdocs, gslides status: active date: YYYY-MM-DD topics: - "[[Topic Name]]" # AI-extracted topics as wikilinks related: - "[[Notes/Dashboards/Dashboard Name]]"
Q&A reference frontmatter:
type: reference status: current date: YYYY-MM-DD source: "notebooklm:{notebook-slug}" related: - "[[Notes/Dashboards/Dashboard Name]]"
Scripts
| Script | Purpose |
|---|---|
| Import sources as vault files with AI-generated guides and topics |
| Extract cited passages from Q&A into source files |
| Replace markers with in Q&A answers |
All scripts use
Path.cwd() as vault root - run them from your vault directory.