github PleasePrompto/notebooklm-skill v1.2.0
v1.2.0: Major Authentication Reliability Fix

latest release: v1.3.0
5 months ago

NotebookLM Claude Code Skill v1.2.0

Major Authentication Reliability Fix

This release completely refactors the authentication system to fix persistent auth failures reported in Issue #2.

Root Cause Analysis

After extensive testing and analysis of the MCP Server TypeScript implementation, three critical issues were identified:

  1. Playwright Bug #36139: Session cookies don't persist in launch_persistent_context()
  2. Chromium Reliability: Cross-platform issues with default Chromium
  3. Python API Limitation: Can't pass storage_state to launch_persistent_context()

The Solution: Hybrid Authentication

New Architecture:

  • Persistent browser profile (user_data_dir) for consistent fingerprinting
  • Manual cookie injection from state.json for session cookie persistence
  • Real Chrome (channel="chrome") instead of Chromium
  • No automation detection banner (ignore_default_args)

How It Works:

Setup:   Login → Save to browser profile + state.json
Runtime: Load browser profile + inject cookies from state.json

What's New

Authentication Improvements:

  • Hybrid auth approach: Combines browser profile persistence with manual cookie injection
  • Real Chrome required: channel="chrome" for cross-platform reliability
  • Session cookies fixed: Manual injection workaround for Playwright bug #36139
  • Stealth mode: Removed automation detection banner

Technical Changes:

  • scripts/ask_question.py: Hybrid auth + cookie injection
  • scripts/auth_manager.py: Updated setup and validation
  • scripts/setup_environment.py: Installs Chrome instead of Chromium
  • README.md: Chrome installation instructions
  • AUTHENTICATION.md: Complete architecture documentation (NEW)

Developer Experience:

  • Comprehensive auth architecture docs
  • Better error messages
  • Easier testing (just delete .venv and data/browser_state)

Upgrading

cd ~/.claude/skills/notebooklm
git pull
rm -rf .venv data/browser_state  # Fresh start recommended
# Keep data/library if you have notebooks!

First use after upgrade:

# Skill will auto-install Chrome and setup dependencies
# Then: "Set up NotebookLM authentication"

Migration Notes

Chrome Installation:
The skill now requires real Google Chrome (not Chromium):

cd ~/.claude/skills/notebooklm
source .venv/bin/activate
patchright install chrome

Re-authentication Required:
Due to the architecture change, please re-authenticate after upgrading:

"Set up NotebookLM authentication"

Technical Details

Why This Works:

Component Purpose Why Needed
user_data_dir Browser fingerprint + persistent cookies Consistent identity across restarts
state.json injection Session cookies Workaround for Playwright bug #36139
channel="chrome" Real Chrome Cross-platform reliability
ignore_default_args Remove automation banner Stealth mode

Files Changed:

  • 5 files modified, 111 insertions, 21 deletions
  • 1 new file: AUTHENTICATION.md

Bug Fixes

  • Fixed: Session cookies not persisting after restart (#2)
  • Fixed: Authentication failures on some systems
  • Fixed: "Chrome is being controlled" automation banner

References

Acknowledgments

Special thanks to @howeirdo and @gee842 for reporting the auth issues and helping debug!


Questions or issues? https://github.com/PleasePrompto/notebooklm-skill/issues

Full Changelog: v1.1.0...v1.2.0

Full Changelog: v1.1.0...v1.2.0

Don't miss a new notebooklm-skill release

NewReleases is sending notifications on new releases.