blog
Claude Code + NotebookLM + Obsidian: dựng pipeline nghiên cứu, và nửa cầu nối không chính chủ
Cách ghép Claude Code, NotebookLM và Obsidian thành pipeline nghiên cứu: skill nào có sẵn, vì sao NotebookLM không có API cho tài khoản cá nhân, và cái giá phải trả khi ghép ba công cụ này.
Ghép Claude Code, NotebookLM và Obsidian thành pipeline nghiên cứu tự động làm được thật, một phần đã có người đóng gói thành package sẵn dùng. Nhưng không có lệnh notebooklm login nào cho "API chính thức": NotebookLM không phát API cho tài khoản cá nhân, mọi cầu nối agent vào nó đều là hàng reverse-engineer, đi kèm rủi ro khoá tài khoản Google.
Skill Creator có thật, nhưng lệnh cài không phải /plugin install skill-creator suông
Skill trong Claude Code chỉ là một thư mục chứa SKILL.md: mô tả, điều kiện kích hoạt, các bước. Claude tự nạp khi thấy liên quan, hoặc gọi thẳng bằng /tên-skill. Skill Creator là plugin thật của Anthropic, không phải công cụ bên thứ ba.
Nó nằm ở marketplace claude-plugins-official, không phải marketplace anthropics/skills (nơi chứa document-skills, example-skills). Lẫn hai marketplace này là lỗi cài đặt phổ biến nhất. Lệnh đúng, theo tài liệu Claude Code:
/plugin install skill-creator@claude-plugins-official
Báo lỗi Marketplace "claude-plugins-official" not found thì thêm marketplace trước: /plugin marketplace add anthropics/claude-plugins-official, rồi cài lại. Cài xong mà thấy dòng Run /reload-plugins to activate, chạy đúng lệnh đó thì skill mới nạp trong session hiện tại.
Ngoài sinh skill từ một câu mô tả, Skill Creator còn tự động hoá cả vòng lặp so sánh: lưu test case vào evals/evals.json, chạy mỗi test case trong một sub-agent riêng để context sạch, chấm từng assertion vào grading.json, gộp tỷ lệ pass giữa bản có skill và không skill vào benchmark.json.
Nó còn so sánh mù hai phiên bản skill trước khi quyết định bản nào tốt hơn. Không dừng lại ở "tạo skill xong": Skill Creator đo được skill đó có làm đúng việc hay không.
Skill YouTube search dựng bằng yt-dlp, và đã có người làm sẵn
yt-dlp tìm video bằng cú pháp ytsearchN:từ khoá, không cần API key của YouTube:
yt-dlp -j "ytsearch5:Claude Code MCP servers"
Cờ -j trả JSON, đủ để một skill parse ra tiêu đề, kênh, lượt xem, ngày đăng. Không cần tự viết từ đầu: youtube-search-skill đã đóng gói sẵn, copy vào .claude/skills/youtube-search/ là chạy.
Nó có hai chế độ: đầy đủ (kèm số subscriber, khoảng một tới hai giây mỗi kết quả) và nhanh (dùng yt-dlp flat-playlist mode, nhanh gấp mười lần nhưng bỏ qua số subscriber). Output mẫu:
Claude Code Tutorial for Beginners
https://www.youtube.com/watch?v=eMZmDH3T2bY
Channel: Kevin Stratvert · Subscribers: 4.2M
Views: 539.8K · Duration: 14:43 · Uploaded: Dec 22, 2025
NotebookLM không có API cho tài khoản cá nhân, mọi cầu nối agent đều reverse-engineer
Google có phát hành NotebookLM Enterprise API, nhưng từ 9/2025 và chỉ cho khách Enterprise/Workspace, không phải tài khoản cá nhân dùng free hay Pro. Với tài khoản cá nhân, mọi công cụ tự động hoá đều đi vòng qua giao diện web, theo ba cách khác nhau:
| Dự án | Cách hoạt động | Xác thực |
|---|---|---|
notebooklm-py | Điều khiển trình duyệt qua Playwright | Đăng nhập tương tác, hoặc nhập cookie có sẵn, hoặc master token tự làm mới cookie |
notebooklm-automation | Gọi thẳng endpoint nội bộ batchexecute mà NotebookLM dùng, trích cookie qua Chrome DevTools Protocol | Cookie phiên đăng nhập thật |
notebooklm-skill | CLI + MCP server, bọc lại một trong hai cách trên | Tương tự |
Cả ba tự nhận là không chính thức, và notebooklm-automation nói thẳng trong README:
Using unofficial APIs violates Google's ToS. Use a dedicated/burner Google account. Don't use your primary work/personal account. Google may suspend accounts detected as automated.
Đừng nhầm bước xác thực này với đăng nhập kiểu Web3Forms hay Mailchimp: gọi là notebooklm login nhưng thực chất là chạy một client giả lập trình duyệt để vượt qua cơ chế không dành cho việc đó.
Dùng tài khoản Google chính để chạy pipeline này, đặc biệt loại chạy lặp theo lịch, nghĩa là chấp nhận rủi ro tài khoản đó bị khoá vì bị nhận diện là bot.
Sau khi đổi tên thành Gemini Notebook, deliverable thật có gì
NotebookLM không còn tên đó nữa. Google đổi tên nó thành Gemini Notebook ngày 16/7/2026, giữ nguyên là sản phẩm độc lập, thêm một "cloud computer" riêng cho mỗi notebook để chạy code phân tích dữ liệu trên chính nguồn đã nạp.
Tính tới lúc đổi tên, Google nói có hơn 30 triệu người dùng và hơn 600.000 tổ chức đang dùng nó.
Studio panel hiện tại tạo bảy loại deliverable: Audio Overview (dạng podcast), Cinematic Video Overview, slide deck, infographic, flashcard, quiz, và bảng dữ liệu (Data Table).
Slide deck từ 6/2/2026 chỉnh được từng slide bằng prompt kiểu "fix slide 3", và xuất PPTX trực tiếp qua nút tải xuống. Layout PPTX là AI dựng lại nên không giống pixel với bản xem trên web.
Ghép cả pipeline vào một skill duy nhất bằng notebooklm-skill
Muốn gộp Research, Synthesis, Content, Publishing thành một skill duy nhất thay vì gọi rời từng bước, dùng package có sẵn: notebooklm-skill, cài bằng:
git clone https://github.com/claude-world/notebooklm-skill.git
cd notebooklm-skill && ./install.sh
Nó có sẵn bốn pipeline dựng trước thay vì phải mô tả lại cho Skill Creator mỗi lần: research-to-article (biến nghiên cứu thành bài viết), research-to-social, batch-digest (xử lý hàng loạt từ RSS feed), và generate-all. Nối vào Claude Code qua MCP thay vì gọi CLI trực tiếp:
{
"mcpServers": {
"notebooklm": {
"command": "uvx",
"args": ["--from", "notebooklm-skill", "notebooklm-mcp"]
}
}
}
README của chính package này nhắc lại đúng cảnh báo ở mục trên: đây là tích hợp không chính thức với API web của NotebookLM, có thể gãy bất cứ lúc nào Google đổi giao diện.
Obsidian không chỉ nhận file markdown, nó nối thẳng vào Claude Code qua MCP
Cách đơn giản nhất để nối Obsidian vào pipeline là ghi kết quả ra file markdown trong vault. Chạy được, nhưng bỏ phí một nửa: Claude Code đọc lại được vault qua filesystem, còn Obsidian thì không biết gì về những gì Claude vừa làm ngoài việc có thêm file mới.
obsidian-claude-code-mcp là plugin Obsidian dựng một MCP server, mở cổng WebSocket mặc định 22360 cho Claude Code và HTTP/SSE cho Claude Desktop. Cài plugin trong Obsidian, mở claude trong terminal, gõ /ide, chọn "Obsidian" từ danh sách, kết nối tự thiết lập không cần cấu hình thêm.
Từ đó Claude đọc file hiện đang mở, liệt kê cấu trúc vault, tạo và sửa note qua API của Obsidian thay vì chỉ ghi đè file trên đĩa. Khác biệt nằm ở chỗ vault biết được Claude vừa chạm vào đâu, chứ không phải chỉ thấy file mới xuất hiện.
Trước khi bật cả pipeline chạy tự động, năm điều đáng kiểm:
- Marketplace đúng:
claude-plugins-officialcho skill-creator, không phảianthropics/skills - Tài khoản Google dùng cho NotebookLM: burner account, không phải account chính
- Tần suất gọi: chạy dày dễ bị nhận diện là bot hơn chạy thưa
- Điểm gãy: mọi cầu nối NotebookLM đều phụ thuộc giao diện web hiện tại, Google đổi UI là gãy ngay
- MCP hay ghi file thô: MCP cho Claude ngữ cảnh hai chiều, ghi file thô thì Claude chỉ thấy được nửa sau
Cái giá thật của việc ghép ba mảnh này
Tôi chưa tự chạy trọn pipeline này trên máy thật, mọi thứ trong bài đối chiếu qua tài liệu và mã nguồn của từng dự án nói trên, không phải log chạy thật. Cái duy nhất chỉ chạy thật mới thấy: notebooklm-py hay notebooklm-automation có bị rate limit hay yêu cầu xác minh thêm khi add năm nguồn liên tiếp trong một notebook hay không, không tài liệu nào của ba dự án nói rõ con số.
Đánh đổi rõ nhất: Skill Creator và MCP cho Obsidian là hạ tầng chính chủ, ổn định, có tài liệu. Đoạn nối vào NotebookLM là mảnh yếu nhất trong cả pipeline, vì nó dựa trên thứ không ai cam kết giữ nguyên. Ghép ba công cụ này được, nhưng dùng account phụ cho phần NotebookLM và đừng đặt lịch chạy nó qua đêm không giám sát.
Bài viết liên quan
tất cả bài viết →- codebase-memory-mcp: dựng knowledge graph cho codebase và những lưu ýMột binary C index cả repo thành knowledge graph để agent hỏi bằng graph query thay vì grep từng file. Cách cài, ba tool dùng nhiều nhất, và hai lỗi im lặng làm graph thiếu mà vẫn báo indexed.đọc tiếp →
- Viết CLAUDE.md đúng chuẩn: bốn nhóm quy tắc và giới hạn thật của Claude CodeCLAUDE.md hoạt động tốt khi chia thành bốn nhóm rõ ràng: lệnh, quy tắc, kiến trúc theo path, và cách mở rộng khi dự án lớn lên. Hướng dẫn viết từng nhóm đúng giới hạn kỹ thuật thật của Claude Code, kèm ví dụ chạy được.đọc tiếp →
- Loop engineering: thôi prompt agent, đi thiết kế cái vòng lặp prompt nóDựng một vòng lặp cho agent giờ mất mười lăm phút. Phần khó là nhét vào trong đó một thứ dám nói "không". Năm nước đi của một vòng, năm kiểu hỏng, và vòng lặp thật của site này đang đi được nửa đường.đọc tiếp →
- Gemini 3.6 Flash trên Antigravity CLI — ít hơn 17% output tokenGoogle thay Gemini CLI bằng Antigravity CLI, và 3.6 Flash là model đáng để mặc định trong terminal. Cách chọn model bằng agy, chạy headless, và tính tiền cho một lượt agent.đọc tiếp →