notebooklm-py 如何用 notebooklm usage 查看五小时与周窗口的实时计算配额?
【免费下载链接】notebooklm-pyUnofficial Python API and agentic skill for Google Gemini Notebook. Full programmatic access to NotebookLM's features—including capabilities the web UI doesn't expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw.项目地址: https://gitcode.com/GitHub_Trending/no/notebooklm-py
如果你在批量调用 NotebookLM 生成音频、视频、Flashcards 等内容,需要知道当前账户在五小时窗口和周窗口里的实时计算用量还剩多少、何时重置,可以用 notebooklm-py 提供的notebooklm usage命令直接查询。它显示服务器返回的两个窗口百分比(Used / Remaining)与重置时间戳,要求账户已认证,但不需要活动 notebook。
先区分两套配额体系,避免误读数字:NotebookLM 同时存在公开发布的静态计划限额(每个 tier 允许多少 notebook、每个 notebook 多少 source、每日聊天数等,见 docs/quota-limits.md)和统一计算配额表(live compute meter,即本文的主角)。notebooklm usage只查询后者,两者不互相替代。
准备条件
- 安装包。基础包即可支撑所有 RPC 操作(除
login外),交互式浏览器登录需要browserextra:
pip install "notebooklm-py[browser]"若系统 Python 报externally-managed-environment,可改用隔离安装:uv tool install "notebooklm-py[browser]"或pipx install "notebooklm-py[browser]"(见 docs/installation.md)。
- 完成认证。
usage属于账户级命令,需要一个已登录的 profile:
notebooklm login多 profile 场景下用全局选项-p/--profile指定(会覆盖NOTEBOOKLM_PROFILE环境变量);无头环境可走login --master-token或NOTEBOOKLM_AUTH_JSON等路径,详见 docs/cli-reference.md 的 Global Options 一节。
- 计量表是否可用由服务端决定。服务器侧账户位
computeMeteringEnabled为真时该计量表才生效;为假时命令仍会成功返回,但status为disabled且不会发出 summary 请求(见 docs/adr/0037-live-usage-and-quota-api.md)。
执行查询
最短主路径:
notebooklm usage计量表可用时,输出是一张Live compute usage表格,Window列包含Five-hour和Weekly两行,每行给出Used、Remaining(文本输出四舍五入到两位小数)以及Resets at (UTC)重置时间戳。重置时间戳直接来自服务器,命令不做本地倒计时推算——ADR-0037 明确说明调用方应使用服务器时间戳而不是自行重建重置逻辑。
如果活动窗口已耗尽(周窗口使用率达到 100% 时活动窗口切换为周窗口,否则为五小时窗口),表格下方会追加提示:The active compute usage window is exhausted.
查看分类明细(可选)
加--categories(别名--actions)可追加一张Usage categories表,列包括Code、Category(可读功能名,如 Cinematic video (3)、Slide deck (6)、Data table (8)、Chat Q&A (18)、Source guide (21)、Suggested questions (22))、Quota(该类别当前账户级可用性,Sufficient/Insufficient)、Cost tier、Est. cost*、Deferred left(剩余延迟制品生成次数)。
notebooklm usage --categories两个注意点(来自 CLI 实现自身的脚注与文档):
Est. cost*是服务器的估计值,在记录的测试中与五小时窗口的初始预留相符,但服务器没有显式声明估计所属的预算窗口,最终用量可能更低。它是估算,不是最终扣费,也不是积分余额。NOS(16)与NOS_IMAGE_GENERATION(19)是未验证公开功能映射的内部服务器名,表格中会标注不确定而不是猜测功能名。
JSON 全量快照(适合脚本)
notebooklm -p work usage --json--json始终包含分类明细(actions数组),文本模式则需--categories才显示。切换后端时全局--backend web|android同样适用(Android 后端需先安装notebooklm-py[android]extra 并用 master token 引导 profile):
notebooklm --backend android usage --json结果验证:如何解读输出
JSON 对象的字段含义(docs/cli-reference.md "Live Compute Usage" 一节):
| 字段 | 含义 |
|---|---|
status | ready、disabled(该账户未启用计量表)或skipped(临时不可用) |
enabled、available | 账户是否具备计量资格;快照是否就绪(仅ready为真) |
is_exhausted | 活动窗口是否耗尽;不可用时为null |
active_window | 周窗口使用率 ≥ 100% 时为weekly,否则five_hour;不可用时为null |
windows | 每行含kind(five_hour/weekly)、used_percent、remaining_percent、resets_at(ISO 8601 UTC,文档示例格式如2026-09-05T18:30:00+00:00) |
actions | 每行含code、kind(小写枚举名,如audio_overview,未知代码为null)、has_sufficient_quota、cost_tier(low/medium/high/very_high/null)、remaining_deferred_artifact_generations、estimated_cost_percent |
成功条件与退出码(遵循 CLI Exit-Code Convention):
- 计量表返回
disabled或skipped时,windows与actions为空数组,退出码仍是0——文本输出分别显示Live compute metering is not enabled for this account (disabled).或Live compute usage is temporarily unavailable (skipped). Try again later.; - 快照耗尽(
is_exhausted为真)同样退出0:该命令只报告用量,不强制限额; - 传输、认证或解码失败走标准错误信封并退出非零。
判断"配额够不够"时,Quota列(has_sufficient_quota)是该类别的账户级可用性标志,不是五小时或周窗口的单独读数;remaining_deferred_artifact_generations为null与0含义不同(null表示服务器未返回该值)。
读数边界:百分比不代表积分余额
ADR-0037 记录的实测行为值得在解读数字前了解:
- 计量表只暴露百分比与重置时间戳,不暴露余额或容量单位。提交生成时会先按广告价预留(例如 Flashcards 提交时五小时窗口跳到 1.8666666667%,周窗口 0.0888888889%),完成后对账到更低的实际扣减(Flashcards 完成后五小时 0.8685427667%),因此百分比快照在生成结算后可能回落,它不是单调递增计数器。
- 两个窗口的重置时间戳在首次预留时锚定,后续预留不会移动它们;但文档指出无法仅凭此区分固定桶还是滚动过期实现,所以以服务器时间戳为准。
- 删除已生成的制品不会退还这些扣减(文档中的探针观测)。
- 旧版
GetQuotaRPC 的读数在此期间保持不变,且其 18 码命名空间与计量表的 action 码无关,不要拿来对账。 - 文本百分比取两位小数,JSON 保留服务器返回精度。
Python API 等价路径
库用户可在 docs/python-api.md 的SettingsAPI一节找到同一快照:
usage = await client.settings.get_usage() if usage.available: print(usage.active_window, usage.is_exhausted)UsageSummary提供window(UsageWindowKind.FIVE_HOUR)/action(UsageActionKind.DEEP_RESEARCH)精确取行,未知未来 action 代码以kind=None保留可见。文档同时提醒:不要根据 action 的估计成本在本地推算扣减,get_usage()与get_account_limits()(静态 notebook/source 限额)属于两个不同用途的读取。
参考
- docs/cli-reference.md —
usage命令、参数与 JSON 字段契约 - docs/quota-limits.md — 静态计划限额(与实时计量表并列的参考表)
- docs/adr/0037-live-usage-and-quota-api.md — 计量表的协议证据、窗口语义与解码契约
- docs/python-api.md —
get_usage()与UsageSummary类型 - src/notebooklm/cli/usage_cmd.py — 命令实现,文本输出与提示信息来源
【免费下载链接】notebooklm-pyUnofficial Python API and agentic skill for Google Gemini Notebook. Full programmatic access to NotebookLM's features—including capabilities the web UI doesn't expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw.项目地址: https://gitcode.com/GitHub_Trending/no/notebooklm-py
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考