vi

blog

Claude Code + NotebookLM + Obsidian: a research pipeline, and the half of the bridge that is unofficial

How to combine Claude Code, NotebookLM and Obsidian into a research pipeline: which skills already exist, why NotebookLM has no API for personal accounts, and the price of wiring these three tools together.

Published
Claude CodeNotebookLMObsidianMCPAI Agent
Claude Code in the middle, linked to NotebookLM on the left by a dashed line labeled reverse-engineer and to Obsidian on the right by a solid line labeled MCP

Combining Claude Code, NotebookLM and Obsidian into an automated research pipeline does work, and part of it already exists as a ready-made package. But there is no notebooklm login command for an "official API": NotebookLM offers no API for personal accounts, so every bridge from an agent to it is reverse-engineered and comes with the risk of a locked Google account.

Skill Creator is real, but the install command is not just /plugin install skill-creator

A skill in Claude Code is just a folder with a SKILL.md: a description, the conditions that trigger it, the steps. Claude loads it on its own when it looks relevant, or you call it directly with /skill-name. Skill Creator is a real Anthropic plugin, not a third-party tool.

It lives in the claude-plugins-official marketplace, not in the anthropics/skills marketplace (which holds document-skills and example-skills). Mixing up these two marketplaces is the most common install mistake. The correct command, per the Claude Code docs:

text
/plugin install skill-creator@claude-plugins-official

If it reports Marketplace "claude-plugins-official" not found, add the marketplace first with /plugin marketplace add anthropics/claude-plugins-official, then install again. If you see the line Run /reload-plugins to activate after installing, run exactly that command and the skill loads in the current session.

Besides generating a skill from a one-sentence description, Skill Creator automates the whole comparison loop: it saves test cases to evals/evals.json, runs each test case in its own sub-agent so the context stays clean, grades each assertion into grading.json, and aggregates the pass rate with and without the skill into benchmark.json.

It also runs a blind comparison of two versions of a skill before deciding which one is better. So Skill Creator goes past "the skill is created": it measures whether the skill does its job.

A YouTube search skill built on yt-dlp, and someone already made it

yt-dlp searches for videos with the ytsearchN:keyword syntax, with no YouTube API key:

bash
yt-dlp -j "ytsearch5:Claude Code MCP servers"

The -j flag returns JSON, enough for a skill to parse out the title, channel, view count and upload date. You do not need to write it from scratch: youtube-search-skill already packages it, and copying it into .claude/skills/youtube-search/ is enough to run it.

It has two modes: full (with subscriber counts, about one to two seconds per result) and fast (uses yt-dlp flat-playlist mode, ten times faster but skips the subscriber count). Sample output:

text
Claude Code Tutorial for Beginners
https://www.youtube.com/watch?v=eMZmDH3T2bY
Channel: Kevin Stratvert · Subscribers: 4.2M
Views: 539.8K · Duration: 14:43 · Uploaded: Dec 22, 2025

NotebookLM has no API for personal accounts, and every agent bridge is reverse-engineered

Google did release a NotebookLM Enterprise API, but only from Sep 2025 and only for Enterprise/Workspace customers, not for personal accounts on the free or Pro plan. For a personal account, every automation tool goes around through the web interface, in three different ways:

ProjectHow it worksAuthentication
notebooklm-pyDrives a browser through PlaywrightInteractive login, or importing existing cookies, or a master token that refreshes the cookies
notebooklm-automationCalls the internal batchexecute endpoint that NotebookLM uses directly, pulling cookies through the Chrome DevTools ProtocolReal login session cookies
notebooklm-skillCLI + MCP server, wrapping one of the two approaches aboveSame as above

All three call themselves unofficial, and notebooklm-automation says it outright in its README:

Using unofficial APIs violates Google's ToS. Use a dedicated/burner Google account. Don't use your primary work/personal account. Google may suspend accounts detected as automated.

Do not confuse this authentication step with a login like Web3Forms or Mailchimp: it is called notebooklm login, but what it really does is run a client that imitates a browser to get past a mechanism that was never meant for this.

Running this pipeline on your main Google account, especially a version that runs on a schedule, means accepting the risk that the account gets locked for being detected as a bot.

After the rename to Gemini Notebook, what the real deliverables are

NotebookLM no longer goes by that name. Google renamed it Gemini Notebook on 16 Jul 2026, kept it as a standalone product, and added a "cloud computer" for each notebook to run data analysis code on the sources already loaded.

At the time of the rename, Google said more than 30 million users and more than 600,000 organizations were using it.

The Studio panel currently produces seven kinds of deliverable: Audio Overview (podcast style), Cinematic Video Overview, slide deck, infographic, flashcards, quiz, and Data Table.

Since 6 Feb 2026, you can edit a slide deck one slide at a time with prompts like "fix slide 3", and export it straight to PPTX with the download button. The PPTX layout is rebuilt by AI, so it is not pixel-identical to the web preview.

Putting the whole pipeline into one skill with notebooklm-skill

To merge Research, Synthesis, Content and Publishing into a single skill instead of calling each step separately, use an existing package: notebooklm-skill, installed with:

bash
git clone https://github.com/claude-world/notebooklm-skill.git
cd notebooklm-skill && ./install.sh

It comes with four prebuilt pipelines, so you do not have to describe them to Skill Creator every time: research-to-article (turns research into an article), research-to-social, batch-digest (batch processing from an RSS feed), and generate-all. Connect it to Claude Code through MCP instead of calling the CLI directly:

json
{
  "mcpServers": {
    "notebooklm": {
      "command": "uvx",
      "args": ["--from", "notebooklm-skill", "notebooklm-mcp"]
    }
  }
}

The package's own README repeats the warning from the section above: this is an unofficial integration with NotebookLM's web API and can break whenever Google changes the interface.

Obsidian takes more than markdown files: it connects straight to Claude Code through MCP

The simplest way to plug Obsidian into the pipeline is to write the results as markdown files in the vault. That works, but it wastes half of what is possible: Claude Code can read the vault back through the filesystem, while Obsidian knows nothing about what Claude just did beyond a few new files appearing.

obsidian-claude-code-mcp is an Obsidian plugin that runs an MCP server, opening WebSocket port 22360 by default for Claude Code and HTTP/SSE for Claude Desktop. Install the plugin in Obsidian, open claude in a terminal, type /ide, pick "Obsidian" from the list, and the connection sets itself up with no extra configuration.

From there, Claude reads the file that is currently open, lists the vault structure, and creates and edits notes through Obsidian's API instead of just overwriting files on disk. The difference is that the vault knows what Claude just touched, instead of only seeing a new file appear.

Before you let the whole pipeline run on its own, check five things:

  • The right marketplace: claude-plugins-official for skill-creator, not anthropics/skills
  • The Google account used for NotebookLM: a burner account, not your main one
  • Call frequency: frequent runs are more likely to be flagged as a bot than sparse ones
  • The breaking point: every NotebookLM bridge depends on the current web interface, and it breaks as soon as Google changes the UI
  • MCP or raw file writes: MCP gives Claude two-way context, while raw file writes let Claude see only the second half

The real cost of wiring these three pieces together

I have not run this whole pipeline end to end on a real machine myself. Everything in this post was checked against the docs and source code of each project above, not against logs from a real run. The one thing only a real run would show: whether notebooklm-py or notebooklm-automation hits a rate limit or asks for extra verification when you add five sources in a row to one notebook. None of the three projects' docs gives a number.

The clearest trade-off: Skill Creator and the Obsidian MCP are official infrastructure, stable and documented. The bridge into NotebookLM is the weakest piece of the pipeline, because it rests on something nobody has promised to keep the same. You can wire these three tools together, but use a secondary account for the NotebookLM part and do not schedule it to run overnight without supervision.

Related posts

all posts →