Agent skill

Annas To Notebooklm

by zstmfhy in zstmfhy/annas-to-notebooklm

自动从 Anna's Archive 下载书籍并上传到 Google NotebookLM。支持 PDF/EPUB 格式,自动转换,一键创建知识库。

MITAuto-check passedKnowledge Management

Install Annas To Notebooklm

skills CLI
$ npx skills add zstmfhy/annas-to-notebooklm --skill annas-to-notebooklm -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install zstmfhy/annas-to-notebooklm annas-to-notebooklm --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
annas-to-notebooklm
GitHub stars
210
Token cost
~1.4k tokens
SKILL.md length
300 words
Files
19 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

自动从 Anna's Archive 下载书籍并上传到 Google NotebookLM。支持 PDF/EPUB 格式,自动转换,一键创建知识库。

  • Works in 7 steps: 提取信息 → 检查环境 → 自动下载 → …
  • Tasks that involve Source-grounded notebooks
  • SKILL.md covers 🎯 核心功能, 📋 激活条件, 🔧 核心指令 and 📝 使用示例, plus 4 more sections
  • Runs Python and Shell scripts from its folder; calls python3, pip and playwright; reaches annas-archive.pm

What it does

Annas To Notebooklm is an agent skill from zstmfhy/annas-to-notebooklm. 自动从 Anna's Archive 下载书籍并上传到 Google NotebookLM。支持 PDF/EPUB 格式,自动转换,一键创建知识库。

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 20 other files, including scripts (for example `INSTALL.md`, `README.md` and `README.zh-CN.md`).

It sits in Knowledge Management, covering Source-grounded notebooks. It works with NotebookLM. The licence is MIT.

When your agent uses it

  • Tasks that involve Source-grounded notebooks

Example prompts

  • “/annas-to-notebooklm”

Requirements

  • Python 3
  • A Bash shell

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. 提取信息
  2. 检查环境
  3. 自动下载
  4. 格式处理
  5. 创建并上传到 NotebookLM
  6. 返回结果
  7. 错误处理

What it can do on your machine

Read from SKILL.md and the folder at commit 0a052c0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 6 files in scripts/ (Python and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • pip
    • playwright

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • annas-archive.pm

    Also links to:

    • notebooklm.google.com
    • playwright.dev
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Annas To Notebooklm loads about 1.4k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 300 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~24
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from zstmfhy/annas-to-notebooklm at commit 0a052c0, republished under its MIT licence (© zstmfhy). 300 words, ~1,424 tokens.

Download SKILL.mdSave it as .claude/skills/annas-to-notebooklm/SKILL.md (or your agent's skills folder). This skill also uses 18 other files; get the full folder from GitHub.
name
annas-to-notebooklm
description
自动从 Anna's Archive 下载书籍并上传到 Google NotebookLM。支持 PDF/EPUB 格式,自动转换,一键创建知识库。
author
Adapted from zstmfhy/zlibrary-to-notebooklm
version
1.0.0

Anna's Archive to NotebookLM Skill

让 Claude 帮你自动下载书籍并上传到 NotebookLM,实现"零幻觉"的 AI 对话式阅读。

🎯 核心功能

  • 一键下载书籍(从 Anna's Archive)
  • 自动识别下载链接(在 span.bg-gray-200 标签中)
  • 自动创建 NotebookLM 笔记本
  • 上传文件并返回笔记本 ID
  • 支持与 AI 进行基于书籍内容的对话

📋 激活条件

当用户提到以下需求时,使用此 Skill:

  • 用户提供 Anna's Archive 书籍链接(包含 annas-archive.pm、annas.archive 等域名)
  • 用户说"帮我把这本书上传到 NotebookLM"(并提供 Anna's 链接)
  • 用户说"自动下载并读这本书"(并提供 Anna's 链接)
  • 用户说"用 Anna's Archive 链接创建 NotebookLM 知识库"
  • 用户要求从特定 URL 下载书籍并分析(且 URL 来自 Anna's Archive)

🔧 核心指令

当用户提供 Anna's Archive 链接时,按以下流程执行:

Step 1: 提取信息

从用户提供的 URL 中提取:

  • 完整 URL(通常是 https://annas-archive.pm/slow_download/... 格式)
  • 书名(从 URL 或页面中推断)
Step 2: 检查环境

检查必需的依赖和配置:

bash
# 检查 Playwright
python3 -c "import playwright" 2>/dev/null || pip install playwright

# 检查 NotebookLM CLI
which notebooklm || echo "请安装 NotebookLM CLI"

# 检查登录状态(可选)
ls ~/.annas/storage_state.json 2>/dev/null || echo "建议先登录"
Step 3: 自动下载

使用脚本访问 Anna's Archive 并下载:

bash
cd /path/to/annas-to-notebooklm
python3 scripts/upload.py "<Anna's Archive URL>"

下载逻辑:

  1. 访问下载页面
  2. 查找下载链接:在 span.bg-gray-200 标签中查找包含下载 URL 的文本
  3. 导航到下载地址:直接访问下载链接
  4. 保存文件:下载到 ~/Downloads 目录

关键代码:

python
# 查找 span.bg-gray-200 元素
spans = await page.query_selector_all('span.bg-gray-200')

for span in spans:
    span_text = await span.inner_text()
    # span 的文本内容就是下载链接
    if span_text.strip().startswith('http'):
        download_url = span_text.strip()
        # 直接导航下载
        await page.goto(download_url)
Step 4: 格式处理

脚本会自动处理:

  1. PDF:直接使用(保留排版)
  2. EPUB:转换为 Markdown(使用 convert_epub.py)
  3. 大文件:自动分块(>350k 词)
Step 5: 创建并上传到 NotebookLM

脚本会自动:

bash
# 创建笔记本
notebooklm create "书名" --json

# 上传文件
notebooklm source add "文件路径" --json
Step 6: 返回结果

向用户返回:

✅ 下载成功!
📚 书名: [书名]
🆔 笔记本 ID: [notebook-id]
📄 来源 ID: [source-id]

现在你可以问我:
- "这本书的核心观点是什么?"
- "总结第3章的内容"
- "作者有哪些独特的见解?"
Step 7: 错误处理

如果遇到错误:

  1. 未找到登录会话

    • 提示:运行 python3 scripts/login.py
    • 或:某些页面不需要登录,直接尝试即可
  2. 未找到下载链接

    • 检查 URL 格式是否正确
    • 确认页面是否完全加载
    • 查看 Anna's Archive 页面结构是否变化
  3. 下载失败

    • 检查网络连接
    • 尝试重新运行
  4. NotebookLM 上传失败

    • 检查文件大小(限制 200MB)
    • 检查文件格式

📝 使用示例

示例 1:基本下载

用户:

帮我把这本书上传到 NotebookLM:
https://annas-archive.pm/slow_download/3cd1081b5bc0a229bb794f0d96f04e22/0/5

Claude:

bash
cd /path/to/annas-to-notebooklm
python3 scripts/upload.py "https://annas-archive.pm/slow_download/..."

返回:

✅ 下载成功!
📚 书名: 消费者行为学 英文版·原书第8版
🆔 笔记本 ID: 43231995-16aa-4bbe-87e6-043012def86c

现在你可以问我:
- "这本书的核心观点是什么?"
- "总结第3章的内容"
- "消费者行为学有哪些主要理论?"
示例 2:批量下载

用户:

帮我下载这3本书:
[链接1] [链接2] [链接3]

Claude:

bash
cd /path/to/annas-to-notebooklm

for url in "链接1" "链接2" "链接3"; do
    echo "正在处理: $url"
    python3 scripts/upload.py "$url"
    echo "完成!"
done
示例 3:仅有书名

用户:

帮我下载《认知觉醒》这本书

Claude:

请问有 Anna's Archive 的链接吗?

请提供 Anna's Archive 书籍页面链接(格式类似:
https://annas-archive.pm/slow_download/...),我可以帮你自动下载并上传到 NotebookLM。
示例 4:本地文件

用户:

这个 PDF 能上传到 NotebookLM 吗?[本地文件路径]

Claude:

本 Skill 主要用于 Anna's Archive 链接的自动下载和上传。

对于本地文件,你可以直接使用 NotebookLM CLI:

```bash
notebooklm create "书名"
notebooklm source add "/path/to/your/file.pdf"

## ⚠️ 重要限制

**仅限合法资源!**

- ✅ 用户拥有合法访问权限的资源
- ✅ 公共领域或开源许可的文档
- ✅ 个人拥有版权或已获授权的内容
- ❌ 不要鼓励或协助版权侵权行为

**如果 URL 明显涉及受版权保护的商业作品,提醒用户:**
> "请确保你有合法访问权限。本项目仅用于学习研究目的,请支持正版阅读。"

## 🛠️ 依赖工具

### 必需工具

1. **Python 3.8+**
2. **Playwright** - 浏览器自动化
   ```bash
   pip install playwright
   playwright install chromium
  1. ebooklib - EPUB 处理

    bash
    pip install ebooklib beautifulsoup4 lxml
  2. NotebookLM CLI - 上传工具

    • 需要单独安装 Google NotebookLM CLI
配置文件
  • ~/.annas/storage_state.json - 保存的登录会话(可选)
  • ~/.annas/browser_profile/ - 浏览器数据(可选)
首次使用(可选)

如果页面需要登录:

bash
cd /path/to/annas-to-notebooklm
python3 scripts/login.py

注意: 某些 Anna's Archive 页面不需要登录即可下载。

📊 技术细节

下载链接识别

Anna's Archive 的下载链接特征:

  • 位于 span.bg-gray-200 标签内
  • span 的文本内容就是下载链接(不是 <a> 标签)
  • 链接通常指向 93.123.118.12:6060 等下载服务器
  • 以 http:// 或 https:// 开头

实现:

python
spans = await page.query_selector_all('span.bg-gray-200')
for span in spans:
    span_text = await span.inner_text()
    if span_text.strip().startswith('http'):
        download_url = span_text.strip()
        # 直接使用此 URL
会话管理
  • 一次登录,永久使用(如果需要登录)
  • 会话保存在 ~/.annas/storage_state.json
  • 支持无登录模式(某些页面不需要登录)
智能文件分块
  • NotebookLM CLI 限制:约 350k 词
  • 超过限制的文件自动按章节分割
  • 每个分块独立上传到同一笔记本

🚨 故障排查

常见问题

Q: 提示"未找到登录会话"

A:

  • 某些页面不需要登录,可以忽略此提示
  • 如果确实需要登录:运行 python3 scripts/login.py

Q: 未找到下载链接

A:

  • 确认 URL 格式正确(应该是 annas-archive.pm/slow_download/...)
  • 检查网络连接
  • 查看 Anna's Archive 页面结构是否变化

Q: 下载失败,超时

A:

  • 可能是网络问题
  • 下载服务器可能繁忙,建议重试

Q: NotebookLM 上传失败

A:

  • 检查文件大小(限制 200MB)
  • 检查文件格式(支持 PDF、EPUB、Markdown 等)
  • 确认 NotebookLM CLI 已正确安装

📚 相关资源

🎓 学习资源

如果你想了解更多:

  • 如何高效使用 NotebookLM:询问"NotebookLM 有哪些使用技巧?"
  • 如何创建个人知识库:询问"如何用 NotebookLM 构建知识管理系统?"
  • AI 对话式阅读:询问"怎样让 AI 帮我深度阅读一本书?"

Skill Version: 1.0.0 Last Updated: 2025-01-17 Author: Adapted from zstmfhy/zlibrary-to-notebooklm License: MIT

© zstmfhy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 18 other files (scripts) in the repository root of zstmfhy/annas-to-notebooklm.

  • SKILL.md
  • .gitignore
  • INSTALL.md
  • LICENSE
  • README.md
  • README.zh-CN.md
  • SKILL_CHECKLIST.md
  • SKILL_SUMMARY.md
  • docs/TROUBLESHOOTING.md
  • docs/WORKFLOW.md
  • package.json
  • requirements.txt
  • scripts/convert_epub.py
  • scripts/debug_page.py
  • scripts/login.py
  • scripts/quick_login.sh
  • scripts/test_download.py
  • scripts/upload.py
  • skill.yaml

Open the folder on GitHubat commit 0a052c0

Compare with similar skills

Annas To Notebooklm next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Annas To Notebooklm compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Annas To Notebooklm this skillzstmfhy/annas-to-notebooklm210—~1.4kAutomated safety check: PassMIT
Zlibrary To Notebooklmzstmfhy/zlibrary-to-notebooklm1.7k1 repos~968Automated safety check: PassMIT
Multi-Source to NotebookLM Processorjoeseesun/qiaomu-anything-to-notebooklm6.2k—~3.6kAutomated safety check: PassMIT
NotebookLM Research Workflowclaude-world/notebooklm-skill467—~1.8kAutomated safety check: PassMIT
Nlmtmc/nlm390—~2.2kAutomated safety check: NotesMIT
Open Notebookagent-skills-hub/agent-skills-hub1123 repos~2.6kAutomated safety check: PassMIT

Similar skills

  • Zlibrary To Notebooklm

    zstmfhy/zlibrary-to-notebooklm

    自动从 Z-Library 下载书籍并上传到 Google NotebookLM。支持 PDF/EPUB 格式,自动转换,一键创建知识库。

    1.7k GitHub starsUsed in 1 repo~968 tokens
    Knowledge ManagementAuto-check passed
  • Multi-Source to NotebookLM Processor

    joeseesun/qiaomu-anything-to-notebooklm

    Collects content from WeChat articles, web pages, YouTube, podcasts, documents and more, uploads it to NotebookLM and generates podcasts, slides or mind maps.

    6.2k GitHub stars~3.6k tokensUpdated 6 days ago
    Knowledge ManagementAuto-check passed
  • NotebookLM Research Workflow

    claude-world/notebooklm-skill

    Creates NotebookLM notebooks from URLs, text and files, asks cited questions, runs web research and generates audio, slides, quizzes and other artifacts.

    467 GitHub stars~1.8k tokensUpdated 2 mo ago
    Knowledge ManagementAuto-check passed
  • Nlm

    tmc/nlm

    Manages Google NotebookLM notebooks via the nlm CLI. An agent skill from tmc/nlm.

    390 GitHub stars~2.2k tokensUpdated 18 days ago
    Knowledge ManagementAuto-check: notes
  • Open Notebook

    agent-skills-hub/agent-skills-hub

    Drives a self-hosted Open Notebook instance to organize sources into notebooks, chat with documents, generate notes and multi-speaker podcasts, and search across material.

    112 GitHub starsUsed in 3 repos~2.6k tokens
    Knowledge ManagementAuto-check passed
  • Notebooklm Studio

    Toolsai/notebooklm-studio-Skill

    Operate Google NotebookLM from Codex for authorized source ingestion, notebook setup, source-grounded Q&A, and Studio artifacts such as Audio Overviews, Video Overviews, reports, mind maps, quizzes…

    129 GitHub stars~2.4k tokensUpdated 4 mo ago
    Knowledge ManagementAuto-check passed

Works with

Questions about Annas To Notebooklm

What does Annas To Notebooklm do?

自动从 Anna's Archive 下载书籍并上传到 Google NotebookLM。支持 PDF/EPUB 格式,自动转换,一键创建知识库。. Annas To Notebooklm is an agent skill from zstmfhy/annas-to-notebooklm.

When should I use Annas To Notebooklm?

Annas To Notebooklm fits situations like: tasks that involve Source-grounded notebooks.

How do I install Annas To Notebooklm in Claude Code?

Run `npx skills add zstmfhy/annas-to-notebooklm --skill annas-to-notebooklm -a claude-code`. Or copy the skill folder (the zstmfhy/annas-to-notebooklm repository) into .claude/skills/annas-to-notebooklm in your project. Claude Code loads it when a task matches its description.

How do I install Annas To Notebooklm in Codex?

Run `npx skills add zstmfhy/annas-to-notebooklm --skill annas-to-notebooklm -a codex`. Or copy the skill folder (the zstmfhy/annas-to-notebooklm repository) into .agents/skills/annas-to-notebooklm in your project. Codex loads it when a task matches its description.

Can I use Annas To Notebooklm in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add zstmfhy/annas-to-notebooklm --skill annas-to-notebooklm -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/annas-to-notebooklm, .gemini/skills/annas-to-notebooklm, .github/skills/annas-to-notebooklm and .opencode/skills/annas-to-notebooklm in your project.

What does Annas To Notebooklm need to run?

Going by SKILL.md and its folder, Annas To Notebooklm needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (python3, pip and playwright). Our summary lists: Python 3; A Bash shell.

Does Annas To Notebooklm access the network?

SKILL.md names 4 domains. In commands or code: annas-archive.pm; the agent is likely to contact it when it follows the instructions. As links in the text: notebooklm.google.com, playwright.dev and github.com. This is read from the text; nothing was executed.

Is Annas To Notebooklm safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Annas To Notebooklm use?

Annas To Notebooklm is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Annas To Notebooklm use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Annas To Notebooklm?

Skills that share tags, products or a category with Annas To Notebooklm: Zlibrary To Notebooklm (zstmfhy/zlibrary-to-notebooklm, 1.7k stars), Multi-Source to NotebookLM Processor (joeseesun/qiaomu-anything-to-notebooklm, 6.2k stars), NotebookLM Research Workflow (claude-world/notebooklm-skill, 467 stars) and Nlm (tmc/nlm, 390 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Annas To Notebooklm?

zstmfhy (a GitHub user) maintains it in zstmfhy/annas-to-notebooklm, which has 210 GitHub stars. The repository was last updated on January 17, 2026.

Source: zstmfhy/annas-to-notebooklm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.