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

Quick Start

# Check current notebook
notebooklm status

# Switch notebook
notebooklm use <notebook-id>

# List notebooks
notebooklm list

Workflow Routing

User saysWorkflow
"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
    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:

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

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