annas-to-notebooklm
npx skills add https://smithery.ai
Agent 安装分布
Skill 文档
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: æ£æ¥ç¯å¢
æ£æ¥å¿ éçä¾èµåé ç½®ï¼
# æ£æ¥ 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 å¹¶ä¸è½½ï¼
cd /path/to/annas-to-notebooklm
python3 scripts/upload.py "<Anna's Archive URL>"
ä¸è½½é»è¾ï¼
- 访é®ä¸è½½é¡µé¢
- æ¥æ¾ä¸è½½é¾æ¥ï¼å¨
span.bg-gray-200æ ç¾ä¸æ¥æ¾å å«ä¸è½½ URL çææ¬ - 导èªå°ä¸è½½å°åï¼ç´æ¥è®¿é®ä¸è½½é¾æ¥
- ä¿åæä»¶ï¼ä¸è½½å°
~/Downloadsç®å½
å ³é®ä»£ç ï¼
# æ¥æ¾ 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: æ ¼å¼å¤ç
èæ¬ä¼èªå¨å¤çï¼
- PDFï¼ç´æ¥ä½¿ç¨ï¼ä¿çæçï¼
- EPUBï¼è½¬æ¢ä¸º Markdownï¼ä½¿ç¨
convert_epub.pyï¼ - 大æä»¶ï¼èªå¨ååï¼>350k è¯ï¼
Step 5: å建并ä¸ä¼ å° NotebookLM
èæ¬ä¼èªå¨ï¼
# å建ç¬è®°æ¬
notebooklm create "书å" --json
# ä¸ä¼ æä»¶
notebooklm source add "æä»¶è·¯å¾" --json
Step 6: è¿åç»æ
åç¨æ·è¿åï¼
â
ä¸è½½æåï¼
ð 书å: [书å]
ð ç¬è®°æ¬ ID: [notebook-id]
ð æ¥æº ID: [source-id]
ç°å¨ä½ å¯ä»¥é®æï¼
- "è¿æ¬ä¹¦çæ ¸å¿è§ç¹æ¯ä»ä¹ï¼"
- "æ»ç»ç¬¬3ç« çå
容"
- "ä½è
æåªäºç¬ç¹çè§è§£ï¼"
Step 7: é误å¤ç
妿éå°é误ï¼
-
æªæ¾å°ç»å½ä¼è¯
- æç¤ºï¼è¿è¡
python3 scripts/login.py - æï¼æäºé¡µé¢ä¸éè¦ç»å½ï¼ç´æ¥å°è¯å³å¯
- æç¤ºï¼è¿è¡
-
æªæ¾å°ä¸è½½é¾æ¥
- æ£æ¥ URL æ ¼å¼æ¯å¦æ£ç¡®
- ç¡®è®¤é¡µé¢æ¯å¦å®å ¨å è½½
- æ¥ç Anna’s Archive 页é¢ç»ææ¯å¦åå
-
ä¸è½½å¤±è´¥
- æ£æ¥ç½ç»è¿æ¥
- å°è¯éæ°è¿è¡
-
NotebookLM ä¸ä¼ 失败
- æ£æ¥æä»¶å¤§å°ï¼éå¶ 200MBï¼
- æ£æ¥æä»¶æ ¼å¼
ð 使ç¨ç¤ºä¾
ç¤ºä¾ 1ï¼åºæ¬ä¸è½½
ç¨æ·ï¼
帮ææè¿æ¬ä¹¦ä¸ä¼ å° NotebookLMï¼
https://annas-archive.pm/slow_download/3cd1081b5bc0a229bb794f0d96f04e22/0/5
Claudeï¼
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ï¼
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
-
ebooklib – EPUB å¤ç
pip install ebooklib beautifulsoup4 lxml -
NotebookLM CLI – ä¸ä¼ å·¥å ·
- éè¦åç¬å®è£ Google NotebookLM CLI
é ç½®æä»¶
~/.annas/storage_state.json– ä¿åçç»å½ä¼è¯ï¼å¯éï¼~/.annas/browser_profile/– æµè§å¨æ°æ®ï¼å¯éï¼
馿¬¡ä½¿ç¨ï¼å¯éï¼
妿页é¢éè¦ç»å½ï¼
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://å¼å¤´
å®ç°ï¼
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