This is a beta pre-release in the 0.8.0 line. Changes since v0.8.0b3:
Fixed
- MCP
source_addbytes upload no longer defaults to an extensionless
upload.bin. Passingbytes_base64without an explicitfilenameused to
spool the file asupload.bin, which NotebookLM rejected with an HTTP 400
("file type unsupported") even for plain text. The filename/extension is now
seeded from thetitleand/ormime_type(falling back toupload.binonly
when neither yields one), so a bytes upload succeeds without a caller-supplied
filename (#1955). - Research import is now idempotent. Re-importing a completed research task
no longer duplicates its sources:import_sources_with_verification(and the
MCPresearch_importtool that drives it) pre-filters requested sources whose
URL already exists in the notebook on every attempt, not only on the
timeout-retry path. A repeat import adds nothing and reports the skipped
sources — the MCP result gainsnewly_imported/already_present(with the
existing source ids) and astatusofalready_imported. Pass
allow_duplicate=True(MCP) to force a re-add. Report / pasted-text entries
have no dedupable URL and are unaffected
(#1961). chat.ask()(and thechat_askMCP tool /AskResult) now report
is_follow_up=Truewhen an implicit ask (noconversation_id) continues the
notebook's existing current conversation, instead of always reportingFalse
on the implicit path. A genuinely new (first-ever) conversation still reports
is_follow_up=False
(#1965).- A missing optional-dependency error now points at the right fix. Reading a
source withoutput_format="markdown"without themarkdownifyextra
installed used to report the wrong remediation ("Check the auth profile /
storage configuration.") because the missing-extra error was classified as a
configuration error. It now raises a dedicatedMissingDependencyError
(classified as a newDEPENDENCYcategory) whose hint names the install
command — e.g.pip install 'notebooklm-py[markdown]'— across the MCP
(DEPENDENCYcode) and REST (dependency/ HTTP 500) surfaces
(#1959).
Install with pip install --pre notebooklm-py==0.8.0b4. Full 0.8.0 cycle changelog: CHANGELOG.md.