what it is

Artem Zhutov’s workflow, from his video and article. You load an expert’s content into NotebookLM, query it from Claude Code, and turn the cited answers into notes and experiments in Obsidian. He used 300+ Huberman episodes against the goal “improve my health.”

  1. Pick a concrete goal and an expert whose content covers it.
  2. Claude Code runs load_channel.py, which scrapes the YouTube channel, creates a NotebookLM notebook and bulk-loads the videos as sources.
  3. Claude runs parallel queries against the notebook, one per dimension of the goal, and saves the cited answers as markdown in the vault.
  4. From those answers Claude designs an interview about where you are now.
  5. Your answers plus existing vault data become a gap assessment against the expert’s targets.
  6. The biggest gaps become experiment notes, each with a hypothesis, protocol, success criteria and a two-to-four-week timeframe.
  7. A morning skill asks about each active experiment, logs the observations and schedules next actions on the calendar.
  8. A Dataview dashboard tracks goals, experiments and trends.

NotebookLM holds the expert knowledge read-only, with every answer cited to the exact episode and passage. Obsidian and Claude Code are the read-write layer.

how I use it

I keep NotebookLM notebooks for Alex Hormozi (his top 50 long-form videos by views), Dan Koe (his 50 most recent videos) and Oren John’s channel, and query them from Claude Code through the nlm CLI. I used the Dan Koe notebook to audit my own content against his.

what I found

  • The free tier caps a notebook at 50 sources. After 50, every add fails with a generic “Could not add url source” error and no mention of a limit. Google AI Pro raises the cap to 300.
  • NotebookLM’s server-side fetch fails on Substack posts. Adding them as text works.
  • Loading at concurrency 5 pulled in 260 videos in about two minutes with no throttling.
  • yt-dlp on the channel root was more reliable than the InnerTube scraper for channels that use YouTube’s Podcasts tab.
  • Each query takes about a minute, so I batch them in a background job.
  • An HTTP 400 on every nlm call looked like an auth failure. It was stale dependencies, fixed with uv tool upgrade notebooklm-mcp-cli.