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:
- Playwright Bug #36139: Session cookies don't persist in
launch_persistent_context() - Chromium Reliability: Cross-platform issues with default Chromium
- Python API Limitation: Can't pass
storage_statetolaunch_persistent_context()
The Solution: Hybrid Authentication
New Architecture:
- Persistent browser profile (
user_data_dir) for consistent fingerprinting - Manual cookie injection from
state.jsonfor 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 injectionscripts/auth_manager.py: Updated setup and validationscripts/setup_environment.py: Installs Chrome instead of ChromiumREADME.md: Chrome installation instructionsAUTHENTICATION.md: Complete architecture documentation (NEW)
Developer Experience:
- Comprehensive auth architecture docs
- Better error messages
- Easier testing (just delete
.venvanddata/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 chromeRe-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
- Based on: notebooklm-mcp TypeScript implementation
- Playwright Issue #36139
- Playwright Issue #14949
- AUTHENTICATION.md
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