# 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.

- Skill: `artemxtech/notebooklm-import` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add artemxtech/notebooklm-import`
- Raw SKILL.md: https://api.skillmd.com/api/skills/artemxtech/notebooklm-import/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ArtemXTech (https://skillmd.com/u/artemxtech)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/artemxtech/notebooklm-import

---


# 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

```bash
pip install "notebooklm-py[browser]"
playwright install chromium
```

### 2. Authenticate

```bash
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.md` -> `Templates/Types/notebook-source.md`
- `templates/dashboard.md` -> use as reference when creating dashboards

## Quick Start

```bash
# 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](workflows/import.md) |
| "notebooklm ask", "ask notebook", "Q&A" | [workflows/ask.md](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 `notebook-source` with frontmatter: `source_id`, `notebook_id`, `url`, `source_type`, topics as `[[wikilinks]]`
- **Q&A notes** have type `reference` with `[N]` citations resolved to `[[Source Title#Passage N]]` wikilinks
- **Dashboards** use Dataview queries to list sources and Q&A notes

## Data Model

**notebook-source frontmatter:**
```yaml
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:**
```yaml
type: reference
status: current
date: YYYY-MM-DD
source: "notebooklm:{notebook-slug}"
related:
  - "[[Notes/Dashboards/Dashboard Name]]"
```

## Scripts

| Script | Purpose |
|--------|---------|
| `scripts/import_sources.py` | Import sources as vault files with AI-generated guides and topics |
| `scripts/extract_passages.py` | Extract cited passages from Q&A into source files |
| `scripts/resolve_citations.py` | Replace `[N]` markers with `[[wikilinks]]` in Q&A answers |

All scripts use `Path.cwd()` as vault root - run them from your vault directory.

