Releases: teng-lin/notebooklm-py
Releases · teng-lin/notebooklm-py
v0.3.4
Added
- Notebook metadata export - Added notebook metadata APIs and CLI export with a simplified sources list
- New
notebooklm metadatacommand with human-readable and--jsonoutput - New
NotebookMetadataandSourceSummarypublic types - New
client.notebooks.get_metadata()helper
- New
- Cinematic Video Overview support - Added cinematic generation and download flows
notebooklm generate video --format cinematic
- Infographic styles - Added CLI support for selecting infographic visual styles
source delete-by-title- Added explicit exact-title deletion command for sources
Fixed
- Research imports on timeout - CLI research imports now retry on timeout with backoff
- Metadata command behavior - Aligned metadata output and implementation with current CLI patterns
- Regional login cookies - Improved browser login handling for regional Google domains
- Notebook summary parsing - Fixed notebook summary response parsing
- Source delete UX - Improved source delete resolution, ambiguity handling, and title-vs-ID errors
- Empty downloads - Raise an error instead of producing zero-byte files
- Module execution - Added
python -m notebooklmsupport
Changed
- Documentation refresh - Updated release, development, CLI, README, and Python API docs for current commands, APIs, and
uvworkflows - Public API surface - Exported
NotebookMetadata,SourceSummary, andInfographicStyle
v0.3.3
[0.3.3] - 2026-03-03
Added
ask --save-as-note- Save chat answers as notebook notes directly from the CLI (#135)notebooklm ask "question" --save-as-note- Save response as a notenotebooklm ask "question" --save-as-note --note-title "Title"- Save with custom title
history --save- Save full conversation history as a notebook note (#135)notebooklm history --save- Save history with default titlenotebooklm history --save --note-title "Title"- Save with custom titlenotebooklm history --show-all- Show full Q&A content instead of preview
generate report --append- Append custom instructions to built-in report format templates (#134)- Works with
briefing-doc,study-guide, andblog-postformats (no effect oncustom) - Example:
notebooklm generate report --format study-guide --append "Target audience: beginners"
- Works with
generate revise-slide- Revise individual slides in an existing slide deck (#129)notebooklm generate revise-slide "prompt" --artifact <id> --slide 0
- PPTX download for slide decks - Download slide decks as editable PowerPoint files (#129)
notebooklm download slide-deck --format pptx(web UI only offers PDF)
Fixed
- Partial artifact ID in download commands - Download commands now support partial artifact IDs (#130)
- Chat empty answer - Fixed
askreturning empty answer when API response marker changes (#123) - X.com/Twitter content parsing - Fixed parsing of X.com/Twitter source content (#119)
- Language sync on login - Syncs server language setting to local config after
notebooklm login(#124) - Python version check - Added runtime check with clear error message for Python < 3.10 (#125)
- RPC error diagnostics - Improved error reporting for GET_NOTEBOOK and auth health check failures (#126, #127)
- Conversation persistence - Chat conversations now persist server-side; conversation ID shown in
historyoutput (#138) - History Q&A previews - Fixed populating Q&A previews using conversation turns API (#136)
generate report --language- Fixed missing--languageoption for report generation (#109)
Changed
- Chat history API - Simplified history retrieval; improved conversation grouping with parallel fetching (#140, #141)
- Conversation ID tracking - Server-side conversation lookup via new
hPTbtcRPC (GET_LAST_CONVERSATION_ID) replaces local exchange ID tracking - History Q&A population - Now uses
khqZzRPC (GET_CONVERSATION_TURNS) to fetch full Q&A turns with accurate previews (#136)
Infrastructure
- Bumped
actions/upload-artifactfrom v6 to v7 (#131)
v0.3.2
Fixed
- CLI conversation reset - Fixed conversation ID not resetting when switching notebooks (#97)
- UTF-8 file encoding - Added explicit UTF-8 encoding to all file I/O operations (#93)
- Windows Playwright login - Restored ProactorEventLoop for Playwright login on Windows (#91)
Infrastructure
- Fixed E2E test teardown hook for pytest 8.x compatibility (#101)
- Added 15-second delay between E2E generation tests to avoid rate limits (#95)
Full Changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed
Fixed
- Windows CLI hanging - Fixed asyncio ProactorEventLoop incompatibility causing CLI to hang on Windows (#79)
- Unicode encoding errors - Fixed encoding issues on non-English Windows systems (#80)
- Streaming downloads - Downloads now use streaming with temp files to prevent corrupted partial downloads (#82)
- Partial ID resolution - All CLI commands now support partial ID matching for notebooks, sources, and artifacts (#84)
- Source operations - Fixed empty array handling and
add_drivenesting (#73) - Guide response parsing - Fixed 3-level nesting in
get_guideresponses (#72) - RPC health check - Handle null response in health check scripts (#71)
- Script cleanup - Ensure temp notebook cleanup on failure or interrupt
Infrastructure
- Added develop branch to nightly E2E tests with staggered schedule
- Added custom branch support to nightly E2E workflow for release testing
Full Changelog: v0.3.0...v0.3.1
v0.3.0
What's New
New Features
- Language settings - Configure output language for artifact generation (80+ languages)
- Sharing API - Programmatic notebook sharing management (
client.sharing.*) SourceTypeandArtifactTypeenums - Type-safe source/artifact identification.kindproperty - Unified type access across Source, Artifact, SourceFulltext--retryflag - Automatic retry with exponential backoff on rate limits- Centralized exception hierarchy - All errors inherit from
NotebookLMError - CLI
sharecommand group - Notebook sharing from command line
Deprecated (to be removed in v0.4.0)
Source.source_type→ use.kindinsteadArtifact.artifact_type→ use.kindinsteadArtifact.variant→ use.kind,.is_quiz, or.is_flashcardsinsteadSourceFulltext.source_type→ use.kindinsteadStudioContentType→ useArtifactTypeinstead
See Migration Guide for upgrade instructions.
Fixed
- Silent failures in CLI now properly report errors
- Source type emoji display consistency
Changed
- Source type detection uses API-provided type codes
- CLI file handling simplified to use
add_file()
Removed
detect_source_type()- replaced bySource.kindARTIFACT_TYPE_DISPLAY- replaced byget_artifact_type_display()
Full Changelog: https://github.com/teng-lin/notebooklm-py/blob/v0.3.0/CHANGELOG.md
Install: pip install notebooklm-py==0.3.0
v0.2.1
Added
- Authentication diagnostics - New
notebooklm auth checkcommand for troubleshooting auth issues- Shows storage file location and validity
- Lists cookies present and their domains
- Detects
NOTEBOOKLM_AUTH_JSONandNOTEBOOKLM_HOMEusage --testflag performs network validation--jsonflag for machine-readable output (CI/CD friendly)
- Structured logging - Comprehensive DEBUG logging across library
NOTEBOOKLM_LOG_LEVELenvironment variable (DEBUG, INFO, WARNING, ERROR)- RPC call timing and method tracking
- Legacy
NOTEBOOKLM_DEBUG_RPC=1still works
- RPC health monitoring - Automated nightly check for Google API changes
- Detects RPC method ID mismatches before they cause failures
- Auto-creates GitHub issues with
rpc-breakagelabel on detection
Fixed
- Cookie domain priority - Prioritize
.google.comcookies over regional domains (e.g.,.google.co.uk) for more reliable authentication - YouTube URL parsing - Improved handling of edge cases in YouTube video URLs
Documentation
- Added
auth checkto CLI reference and troubleshooting guide - Consolidated CI/CD troubleshooting in development guide
- Added installation instructions to SKILL.md for Claude Code
- Clarified version numbering policy (PATCH vs MINOR)
Full Changelog: v0.2.0...v0.2.1
v0.2.0
[0.2.0] - 2026-01-14
Added
- Source fulltext extraction - Retrieve the complete indexed text content of any source
- New
client.sources.get_fulltext(notebook_id, source_id)Python API - New
source fulltext <source_id>CLI command with--jsonand-ooutput options - Returns
SourceFulltextdataclass with content, title, URL, and character count
- New
- Chat citation references - Get detailed source references for chat answers
AskResult.referencesfield contains list ofChatReferenceobjects- Each reference includes
source_id,cited_text,start_char,end_char,chunk_id - Use
notebooklm ask "question" --jsonto see references in CLI output
- Source status helper - New
source_status_to_str()function for consistent status display - Quiz and flashcard downloads - Export interactive study materials in multiple formats
- New
download quizanddownload flashcardsCLI commands - Supports JSON, Markdown, and HTML output formats via
--formatflag - Python API:
client.artifacts.download_quiz()andclient.artifacts.download_flashcards()
- New
- Extended artifact downloads - Download additional artifact types
- New
download reportcommand (exports as Markdown) - New
download mind-mapcommand (exports as JSON) - New
download data-tablecommand (exports as CSV) - All download commands support
--all,--latest,--name, and--artifactselection options
- New
Fixed
- Regional Google domain authentication - SID cookie extraction now works with regional Google domains (e.g., google.co.uk, google.de, google.cn) in addition to google.com
- Artifact completion detection - Media URL availability is now verified before reporting artifact as complete, preventing premature "ready" status
- URL hostname validation - Use proper URL parsing instead of string operations for security
Changed
- Pre-commit checks - Added mypy type checking to required pre-commit workflow
Install: pip install notebooklm-py==0.2.0
Full Changelog: v0.1.4...v0.2.0
v0.1.4
What's Changed
Added
- Source selection for chat and artifacts - Select specific sources when using
askorgeneratecommands with the new--sourcesflag - Research sources table -
research statusnow displays sources in a formatted table
Fixed
- JSON output broken in TTY terminals -
--jsonflag output was including ANSI color codes - Warning stacklevel -
warnings.warncalls now report correct source location
Infrastructure
- Windows CI testing - Windows is now part of the nightly E2E test matrix
- VCR.py integration - Added recorded HTTP cassette support for faster, deterministic integration tests
Full Changelog: v0.1.3...v0.1.4