notebooklm-py is built on top of undocumented Google internal APIs. This means the library provides its own stability guarantees for its Python interface, but it cannot make any guarantees about the underlying APIs it calls.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/teng-lin/notebooklm-py/llms.txt
Use this file to discover all available pages before exploring further.
Important context
Because this library wraps undocumented Google APIs, there are some important differences from libraries backed by official APIs:- No stability guarantees from Google — internal endpoints can change at any time
- No deprecation notices — Google does not announce changes to internal APIs
- No SLAs or support — this is a community project, not affiliated with Google
Versioning policy
The library follows Semantic Versioning (MAJOR.MINOR.PATCH) with one modification: RPC method ID fixes caused by Google changes are released as patch versions, not major versions, because they fix breakage rather than introduce breaking changes on the library’s side.
| Change type | Version bump | Example |
|---|---|---|
| RPC method ID fixes (Google changed something) | PATCH | 0.1.0 → 0.1.1 |
| Bug fixes | PATCH | 0.1.1 → 0.1.2 |
| New features (backward compatible) | MINOR | 0.1.2 → 0.2.0 |
| Public API breaking changes | MAJOR | 0.2.0 → 1.0.0 |
Public API surface
The following exports are considered stable and will not change in a breaking way without a major version bump.Stable exports
Internal APIs
The following are not part of the public API and may change without notice:Deprecation policy
When a public API is deprecated, the library follows this process:- Deprecation notice — deprecated features emit
DeprecationWarningat runtime - Documentation — deprecations are noted in docstrings and the CHANGELOG
- Removal timeline — deprecated features are removed in the next major version
- Migration guide — breaking changes include migration instructions
Currently deprecated
The following attributes are deprecated and will be removed in v0.4.0:| Deprecated | Replacement | Notes |
|---|---|---|
Source.source_type | Source.kind | Returns a SourceType string enum |
Artifact.artifact_type | Artifact.kind | Returns an ArtifactType string enum |
Artifact.variant | Artifact.kind | Use .is_quiz or .is_flashcards helpers |
SourceFulltext.source_type | SourceFulltext.kind | Returns a SourceType string enum |
StudioContentType | ArtifactType | String enum for user-facing code |
Migration guide: v0.2.x to v0.3.0
Version 0.3.0 introduced the.kind property on sources and artifacts, deprecating the older .source_type, .artifact_type, and .variant attributes. Update your code now — these will be removed in v0.4.0.
Source.source_type → Source.kind
SourceType values: GOOGLE_DOCS, GOOGLE_SLIDES, GOOGLE_SPREADSHEET, PDF, PASTED_TEXT, WEB_PAGE, YOUTUBE, MARKDOWN, DOCX, CSV, IMAGE, MEDIA, UNKNOWN.
Artifact.artifact_type → Artifact.kind
ArtifactType values: AUDIO, VIDEO, REPORT, QUIZ, FLASHCARDS, MIND_MAP, INFOGRAPHIC, SLIDE_DECK, DATA_TABLE, UNKNOWN.
Artifact.variant → Artifact.kind or helper properties
.kind property abstracts internal integer codes that Google may change, string enums work naturally in comparisons, logging, and serialization, and unknown types return UNKNOWN with a warning instead of crashing.
When Google breaks things
When Google changes their internal APIs, the fix process follows a consistent sequence:- Detection — the nightly automated RPC health check identifies the changed method ID
- Investigation — the new method ID is located using browser devtools on the NotebookLM site
- Fix —
rpc/types.pyis updated with the new method ID - Release — a patch release is published as quickly as possible
Automated RPC health check
A nightly GitHub Action (
rpc-health.yml) monitors all 35+ RPC methods. When it detects a mismatch, it automatically opens a GitHub issue with the bug, rpc-breakage, and automated labels and shows the expected vs. actual IDs along with which RPCMethod entries need updating.LIST_NOTEBOOKS sends wXbhsf and the response must contain wXbhsf. The check does not validate response data correctness or schema — those are covered by end-to-end tests. This design is intentional: Google’s breaking change pattern is silent ID rotations, not schema changes, and even error responses contain the method ID, so mismatches are detected reliably.
To trigger the check manually:
Self-recovery before a patch is released
If Google breaks something and you cannot wait for a patch release, you can temporarily override the RPC method ID in your local code:- Open browser devtools on the NotebookLM site
- Perform the failing operation manually in the browser
- Find the new RPC method ID in the Network tab
- Patch your local installation before importing the library: