技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v2.0.0
统计:⭐ 0 · 185 · 0 current installs · 0 all-time installs
⭐ 0
安装量(当前) 0
🛡 VirusTotal :良性 · OpenClaw :可疑
Package:anchor-jevons/notebooklm-distiller
安全扫描(ClawHub)
- VirusTotal :良性
- OpenClaw :可疑
OpenClaw 评估
The skill largely does what it advertises (extract NotebookLM content into Obsidian) but contains a few incoherences and behaviors that warrant caution before installing or running it on sensitive data or an important vault.
目的
Name/description match the code and required binaries: python3 + notebooklm CLI are reasonable for a NotebookLM→Obsidian distiller. Minor metadata mismatch: registry says 'no install spec' but SKILL.md includes an install recommendation (pip: notebooklm-py). Otherwise the requested tools and files (notebooklm CLI, optional DeepReader integration) are proportionate to the stated purpose.
说明范围
SKILL.md instructs the agent to immediately execute subcommands on trigger phrases and explicitly says 'Do NOT ask for clarification. Execute the appropriate subcommand immediately.' That grants the agent broad discretion and could cause unconfirmed writes. The skill also describes an orchestration path that may call DeepReader (another skill) and instructs running external commands (notebooklm ask --new, notebooklm source add). The script wri…
安装机制
No installer in the registry (instruction-only) — lowest risk — but SKILL.md recommends 'pip install notebooklm-py' and requirements.txt lists notebooklm-py, which is consistent. There are no downloads from untrusted URLs or extractable archives in the package. The small inconsistency between registry install metadata and SKILL.md should be clarified, but the actual install steps are standard (pip).
证书
The skill declares no required environment variables and needs only the notebooklm CLI + Python, which fits the purpose. In practice it relies on you running 'notebooklm login' (creates ~/.book_client_session) and will therefore use your Google-linked NotebookLM account — that is expected but is sensitive. It may also consult a DeepReader path under ~/.openclaw if present. No unrelated credentials are requested by the skill itself.
持久
always:false and no system-wide config changes are requested, which is appropriate. However the skill is explicitly capable of writing files into arbitrary directories you point it at (the --vault-dir and --path options) and also offers a --writeback option to push notes back into NotebookLM. That write capability is necessary for the feature but increases risk if triggers run without explicit user confirmation.
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「NotebookLM Distiller」。简介:NotebookLM Distiller: Batch knowledge extraction from Google NotebookLM into Ob…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/anchor-jevons/notebooklm-distiller/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: notebooklm-distiller
version: 2.0.0
description: "NotebookLM Distiller: Batch knowledge extraction from Google NotebookLM into Obsidian. Supports Q&A generation (15-20 deep questions), structured summaries, glossary extraction, web research sessions, and direct markdown persistence."
metadata:
openclaw:
emoji: "🧪"
requires:
bins: ["python3", "notebooklm"]
install:
pip: ["notebooklm-py"]
skillKey: "notebooklm-distiller"
always: false
permissions:
tools:
allow: ["bash", "read", "write"]
deny: []
sandbox: compatible
elevated: false
---
# NotebookLM Distiller
Automated knowledge extraction pipeline: search NotebookLM notebooks by keyword → generate deep questions or structured summaries → write linked Obsidian markdown notes.
**Five subcommands:**
- `distill` — extract knowledge from existing notebooks (qa / summary / glossary)
- `quiz` — generate quiz questions as JSON for Discord-based interactive sessions
- `evaluate` — evaluate a user's answer against notebook sources (JSON output)
- `research` — start a web research session inside NotebookLM on any topic
- `persist` — write any markdown content directly into the Obsidian vault
## When to use (trigger phrases)
Trigger `distill` subcommand when:
- User types `/notebooklm-distill` or `/notebooklm-distill-summary`
- User says "蒸馏", "提取知识", "distill notebooks", "extract from notebook"
- User wants NotebookLM content structured into Obsidian notes
Trigger `research` subcommand when:
- User says "研究一下 <topic>", "做网络调研", "research this topic in NotebookLM"
- User wants NotebookLM to gather web sources on a topic without providing URLs
Trigger `quiz` + `evaluate` subcommands when:
- User says "quiz me on X", "考考我", "出题测试我", "测验"
- User wants an interactive Q&A session in Discord on a NotebookLM topic
- **Orchestration flow (Discord)**:
1. Call `quiz --keywords X` → get JSON with `notebook_id` + `notebook_name` + `questions[]`
2. **MUST** announce source before Q1: `来,N 道题(来源:{notebook_name} · ID: {notebook_id[:8]})`
3. Send Q1 to Discord, wait for user reply
4. Call `evaluate --notebook-id X --question Q1 --answer <reply>` → get JSON feedback
5. Post feedback to Discord, proceed to Q2
6. Repeat until all questions done or user says stop
- **CRITICAL**: Always show notebook source so user can verify questions came from NLM, not agent knowledge
Trigger `persist` subcommand when:
- User says "存到 Obsidian", "把这段内容写入知识库", "persist this to vault"
- User wants to archive discussion output or raw notes into the vault
**CRITICAL**: Do NOT answer from internal knowledge. Do NOT ask for clarification. Execute the appropriate subcommand immediately.
## Prerequisites
- **NotebookLM CLI**: `pip install notebooklm-py`
- **Authentication**: `notebooklm login` (creates `~/.book_client_session`)
- **Python 3.10+** (standard library only — no extra pip packages needed for distill.py)
- **Obsidian vault directory** accessible on the local filesystem
## Subcommand: distill
Extract knowledge from one or more NotebookLM notebooks matching keywords.
### Agent orchestration
**Scenario A — URL provided (needs ingestion first)**
1. Check if `deepreader` is installed (`~/.openclaw/skills/deepreader/run.sh`).
2. If yes: run DeepReader to ingest the URL into NotebookLM.
3. Capture the notebook title from DeepReader output.
4. Use that title as `--keywords` for distill.
**Scenario B — notebook already exists**
1. Use notebook name from context, or list notebooks with `notebooklm list`.
2. Determine mode from intent: "总结" → `summary`, "术语/概念" → `glossary`, default → `qa`.
3. Ask user for `--vault-dir` if not known from context.
4. Execute distill.
```bash
python3 ~/.openclaw/skills/notebooklm-distiller/scripts/distill.py distill
--keywords "<keyword1>" "<keyword2>"
--topic "<TopicFolderName>"
--vault-dir "<path/to/obsidian/vault>"
--mode <qa|summary|glossary>
[--lang zh] # Add for Chinese output (default: en)
[--writeback] # Write distilled content back into NLM notebook as a note
[--cli-path <path/to/notebooklm>]
```
**Modes:**
- `qa` (default) — generates 15-20 questions + answers → `<NotebookName>_QA.md`
- `summary` — 5 structured sections (Summary, Key Points, Constraints, Trade-offs, Open Questions) → `<NotebookName>_Summary.md`
- `glossary` — 15-30 domain terms + definitions → `<NotebookName>_Glossary.md`
**Flags:**
- `--lang zh` — prepends `请用中文回答` to all NLM prompts; add when user requests Chinese output or context is Chinese
- `--writeback` — after writing to Obsidian, calls `notebooklm source add` to push the distilled note back into the source notebook as a text source titled `Distill Log: {mode} | {notebook_name} | {date}`. Add when user says "写回 NLM", "记录到笔记本", or wants the distill log visible in NotebookLM
## Subcommand: research
Start a NotebookLM web research session on a topic. Creates a new notebook, imports web sources, and waits for completion.
```bash
python3 ~/.openclaw/skills/notebooklm-distiller/scripts/distill.py research
--topic "<Research Topic>"
[--mode deep|fast]
[--cli-path <path/to/notebooklm>]
```
Output: notebook ID and name. Follow up with `distill` to extract into Obsidian.
## Subcommand: persist
Write any markdown content into the Obsidian vault with auto-generated YAML frontmatter.
```bash
# From inline content
python3 ~/.openclaw/skills/notebooklm-distiller/scripts/distill.py persist
--vault-dir "<path/to/obsidian/vault>"
--path "Notes/2026-03-09-meeting.md"
--title "Meeting Notes"
--content "Key decisions: ..."
--tags "meeting,notes"
# From a file
python3 ~/.openclaw/skills/notebooklm-distiller/scripts/distill.py persist
--vault-dir "<path/to/obsidian/vault>"
--path "Notes/draft.md"
--file ~/Desktop/draft.md
```
## Output format (distill)
Each notebook produces one file at `<vault-dir>/<topic>/<NotebookName>_<Mode>.md`:
```markdown
---
title: "<NotebookName> | Deep Q&A"
date: YYYY-MM-DD
type: knowledge-note
author: notebooklm-distiller
tags: ["distillation", "qa", "<topic-slug>"]
source: "NotebookLM/<NotebookName>"
project: "<topic>"
status: draft
---
# <NotebookName> — Deep Q&A
## Q01
> [!question]
> <question text>
**Answer:**
<answer from notebook sources>
---
```
## Output language
Add `--lang zh` to `distill`, `quiz`, or `evaluate` to get Chinese output. Default is English.
## NLM CLI session behaviour
`notebooklm ask --new` creates ephemeral sessions that are **not visible in the NotebookLM web UI**. This is by design — the CLI and web interface use separate conversation spaces. Answers are still scoped to the specified notebook's sources.
## Error handling
- **No notebooks found**: verify keywords match notebook titles (use `notebooklm list`).
- **Timeout / rate limit**: built-in retry logic and delays. Monitor with `ps aux | grep notebooklm`.
- **Auth failure**: run `notebooklm login` to refresh `~/.book_client_session`.