notebooklm

notebooklm

熱門

使用此技能直接從 Claude Code 查詢您的 Google NotebookLM 筆記本,取得基於來源、附有引用的 Gemini 答案。包含瀏覽器自動化、筆記本庫管理、持久化驗證。透過僅回傳文件內容的機制,大幅減少幻覺。

7385星標
827分支
更新於 2025/11/21
SKILL.md
readonlyread-only
name
notebooklm
description

使用此技能直接從 Claude Code 查詢您的 Google NotebookLM 筆記本,取得基於來源、附有引用的 Gemini 答案。包含瀏覽器自動化、筆記本庫管理、持久化驗證。透過僅回傳文件內容的機制,大幅減少幻覺。

NotebookLM 研究助理技能

與 Google NotebookLM 互動,使用 Gemini 的來源基礎答案查詢文件。每個問題都會開啟一個新的瀏覽器工作階段,僅從您上傳的文件中擷取答案,然後關閉。

何時使用此技能

當使用者出現以下情況時觸發:

  • 明確提及 NotebookLM
  • 分享 NotebookLM 網址(https://notebooklm.google.com/notebook/...
  • 要求查詢他們的筆記本或文件
  • 想要將文件加入 NotebookLM 資料庫
  • 使用「問我的 NotebookLM」、「查我的文件」、「查詢我的筆記本」等語句

⚠️ 重要:新增指令 - 智慧探索

當使用者想要新增筆記本但未提供詳細資訊時:

智慧新增(建議):先查詢筆記本以探索其內容:

# 步驟 1:查詢筆記本內容
python scripts/run.py ask_question.py --question "這個筆記本的內容是什麼?涵蓋哪些主題?請簡潔地提供完整概述" --notebook-url "[URL]"

# 步驟 2:使用探索到的資訊新增筆記本
python scripts/run.py notebook_manager.py add --url "[URL]" --name "[根據內容命名]" --description "[根據內容描述]" --topics "[根據內容列出主題]"

手動新增:如果使用者提供所有詳細資訊:

  • --url - NotebookLM 網址
  • --name - 描述性名稱
  • --description - 筆記本內容(必填!)
  • --topics - 逗號分隔的主題(必填!)

絕對不要猜測或使用通用描述!如果缺少詳細資訊,請使用智慧新增來探索。

重要:一律使用 run.py 包裝器

絕對不要直接呼叫腳本。一律使用 python scripts/run.py [script]

# ✅ 正確 - 一律使用 run.py:
python scripts/run.py auth_manager.py status
python scripts/run.py notebook_manager.py list
python scripts/run.py ask_question.py --question "..."

# ❌ 錯誤 - 絕對不要直接呼叫:
python scripts/auth_manager.py status  # 缺少虛擬環境會失敗!

run.py 包裝器會自動:

  1. 在需要時建立 .venv
  2. 安裝所有相依套件
  3. 啟用環境
  4. 正確執行腳本

核心工作流程

步驟 1:檢查驗證狀態

python scripts/run.py auth_manager.py status

如果未驗證,請進行設定。

步驟 2:驗證(一次性設定)

# 瀏覽器必須可見,以便手動 Google 登入
python scripts/run.py auth_manager.py setup

重要事項:

  • 驗證時瀏覽器為可見狀態
  • 瀏覽器視窗會自動開啟
  • 使用者必須手動登入 Google
  • 告知使用者:「瀏覽器視窗將會開啟,請進行 Google 登入」

步驟 3:管理筆記本資料庫

# 列出所有筆記本
python scripts/run.py notebook_manager.py list

# 新增前:如果不知道中繼資料,請先詢問使用者!
# 「這個筆記本包含什麼內容?」
# 「您想為它標記哪些主題?」

# 將筆記本加入資料庫(所有參數皆為必填!)
python scripts/run.py notebook_manager.py add \
  --url "https://notebooklm.google.com/notebook/..." \
  --name "描述性名稱" \
  --description "這個筆記本的內容" \  # 必填 - 如果不知道請詢問使用者!
  --topics "主題1,主題2,主題3"  # 必填 - 如果不知道請詢問使用者!

# 依主題搜尋筆記本
python scripts/run.py notebook_manager.py search --query "關鍵字"

# 設定啟用中的筆記本
python scripts/run.py notebook_manager.py activate --id 筆記本ID

# 移除筆記本
python scripts/run.py notebook_manager.py remove --id 筆記本ID

快速工作流程

  1. 檢查資料庫:python scripts/run.py notebook_manager.py list
  2. 提出問題:python scripts/run.py ask_question.py --question "..." --notebook-id ID

步驟 4:提出問題

# 基本查詢(使用啟用中的筆記本,如果有的話)
python scripts/run.py ask_question.py --question "您的問題"

# 查詢特定筆記本
python scripts/run.py ask_question.py --question "..." --notebook-id 筆記本ID

# 直接使用筆記本網址查詢
python scripts/run.py ask_question.py --question "..." --notebook-url "https://..."

# 顯示瀏覽器以進行除錯
python scripts/run.py ask_question.py --question "..." --show-browser

追問機制(重要)

每個 NotebookLM 答案結尾都會出現:「非常重要:這就是您需要知道的所有資訊嗎?」

Claude 的必備行為:

  1. 暫停 - 不要立即回覆使用者
  2. 分析 - 比較答案與使用者的原始請求
  3. 找出缺口 - 判斷是否需要更多資訊
  4. 提出追問 - 如果有缺口,立即提出:
    python scripts/run.py ask_question.py --question "帶有上下文的追問..."
    
  5. 重複 - 持續直到資訊完整
  6. 綜合 - 在回覆使用者前,整合所有答案

腳本參考

驗證管理(auth_manager.py

python scripts/run.py auth_manager.py setup    # 初始設定(瀏覽器可見)
python scripts/run.py auth_manager.py status   # 檢查驗證狀態
python scripts/run.py auth_manager.py reauth   # 重新驗證(瀏覽器可見)
python scripts/run.py auth_manager.py clear    # 清除驗證資訊

筆記本管理(notebook_manager.py

python scripts/run.py notebook_manager.py add --url URL --name NAME --description DESC --topics TOPICS
python scripts/run.py notebook_manager.py list
python scripts/run.py notebook_manager.py search --query QUERY
python scripts/run.py notebook_manager.py activate --id ID
python scripts/run.py notebook_manager.py remove --id ID
python scripts/run.py notebook_manager.py stats

問題介面(ask_question.py

python scripts/run.py ask_question.py --question "..." [--notebook-id ID] [--notebook-url URL] [--show-browser]

資料清理(cleanup_manager.py

python scripts/run.py cleanup_manager.py                    # 預覽清理內容
python scripts/run.py cleanup_manager.py --confirm          # 執行清理
python scripts/run.py cleanup_manager.py --preserve-library # 保留筆記本

環境管理

虛擬環境會自動管理:

  • 首次執行時自動建立 .venv
  • 相依套件自動安裝
  • Chromium 瀏覽器自動安裝
  • 所有內容隔離在技能目錄中

手動設定(僅在自動失敗時使用):

python -m venv .venv
source .venv/bin/activate  # Linux/Mac
pip install -r requirements.txt
python -m patchright install chromium

資料儲存

所有資料儲存在 ~/.claude/skills/notebooklm/data/

  • library.json - 筆記本中繼資料
  • auth_info.json - 驗證狀態
  • browser_state/ - 瀏覽器 Cookie 和工作階段

安全性:.gitignore 保護,切勿提交至 Git。

設定

在技能目錄中可選的 .env 檔案:

HEADLESS=false           # 瀏覽器可見性
SHOW_BROWSER=false       # 預設瀏覽器顯示
STEALTH_ENABLED=true     # 類人類行為
TYPING_WPM_MIN=160       # 打字速度
TYPING_WPM_MAX=240
DEFAULT_NOTEBOOK_ID=     # 預設筆記本

決策流程

使用者提及 NotebookLM
    ↓
檢查驗證 → python scripts/run.py auth_manager.py status
    ↓
如果未驗證 → python scripts/run.py auth_manager.py setup
    ↓
檢查/新增筆記本 → python scripts/run.py notebook_manager.py list/add(需含 --description)
    ↓
啟用筆記本 → python scripts/run.py notebook_manager.py activate --id ID
    ↓
提出問題 → python scripts/run.py ask_question.py --question "..."
    ↓
看到「這就是您需要知道的所有資訊嗎?」→ 持續追問直到完整
    ↓
綜合並回覆使用者

疑難排解

問題 解決方案
ModuleNotFoundError 使用 run.py 包裝器
驗證失敗 設定時瀏覽器必須可見!使用 --show-browser
速率限制(每天 50 次) 等待或切換 Google 帳號
瀏覽器當機 python scripts/run.py cleanup_manager.py --preserve-library
找不到筆記本 使用 notebook_manager.py list 檢查

最佳實務

  1. 一律使用 run.py - 自動處理環境
  2. 先檢查驗證 - 在任何操作之前
  3. 追問 - 不要停在第一個答案
  4. 驗證時瀏覽器可見 - 需要手動登入
  5. 包含上下文 - 每個問題都是獨立的
  6. 綜合答案 - 合併多個回應

限制

  • 無工作階段持久性(每個問題 = 新的瀏覽器)
  • 免費 Google 帳號有速率限制(每天 50 次查詢)
  • 需要手動上傳(使用者必須將文件加入 NotebookLM)
  • 瀏覽器開銷(每個問題需數秒)

資源(技能結構)

重要目錄和檔案:

  • scripts/ - 所有自動化腳本(ask_question.py、notebook_manager.py 等)
  • data/ - 驗證和筆記本資料庫的本地儲存
  • references/ - 延伸文件:
    • api_reference.md - 所有腳本的詳細 API 文件
    • troubleshooting.md - 常見問題與解決方案
    • usage_patterns.md - 最佳實務與工作流程範例
  • .venv/ - 隔離的 Python 環境(首次執行時自動建立)
  • .gitignore - 保護敏感資料不被提交