NotebookLM + Claude Code: бесплатный RAG за 5 минут
RAG (Retrieval-Augmented Generation) — это когда AI не выдумывает ответ, а сначала ищет в твоих документах и отвечает на основе найденного, с цитатами. NotebookLM от Google делает именно это. Загружаешь файлы, задаёшь вопрос, получаешь ответ со ссылкой на конкретное место в источнике.
Я подключил NotebookLM к Claude Code, и теперь два AI работают в паре: загружаю записи занятий, PDF, ссылки, спрашиваю на обычном языке. Я только пишу промпт.
Проблема: RAG есть, API нет
NotebookLM — мощная штука. Загружаешь документы, Gemini индексирует, отвечает с точными цитатами. Бесплатно. Работает из браузера.
Но именно «из браузера» — это и проблема.
У меня 9 завершённых потоков курса. Записи занятий, транскрипты, конспекты. Я хочу спросить «в каком уроке я объяснял MCP?» — и получить цитату с номером минуты. NotebookLM это умеет. Но каждый раз открывать вкладку, создавать ноутбук, вручную загружать файлы, копировать ответ обратно в терминал — это не workflow. Это ручная работа.
Официальный API? Только для корпораций. Лицензия, Google Cloud, всё серьёзное. Для обычного человека его не существует.
Я уже строил свой поиск по документам. Работает, но требует настройки: выбор модели, нарезка текстов, индексация. А тут Google уже сделал всё за меня. Осталось подключиться.
Решение: notebooklm-py
notebooklm-py. Кто-то разобрал, как веб-сайт NotebookLM общается с серверами Google, и сделал из этого инструмент для командной строки. 2K+ звёзд на GitHub, открытый код.
Ключевое: библиотека общается с NotebookLM напрямую — теми же запросами, что и веб-сайт. Не парсинг страниц, не автоматизация кликов. Чистые API-вызовы. Логинишься в Google один раз — дальше всё работает без браузера.
Архитектура: два AI в связке
┌──────────────────────────────────────────────────┐
│ Claude Code │
│ (оркестратор, Opus 4.6) │
│ │
│ "создай ноутбук из записей потока #9, │
│ найди где я объяснял MCP" │
└───────────────────┬──────────────────────────────┘
│ промпт
▼
┌──────────────────────────────────────────────────┐
│ notebooklm-py │
│ (мост между двумя AI) │
│ │
│ создать ноутбук → загрузить файлы → спросить │
└───────────────────┬──────────────────────────────┘
│ запрос
▼
┌──────────────────────────────────────────────────┐
│ NotebookLM (Gemini) │
│ читает твои файлы, отвечает с цитатами │
│ │
│ индексация → поиск по смыслу → цитаты │
└──────────────────────────────────────────────────┘
Суть: Claude Code не хранит мои записи в контексте. Он отправляет их в NotebookLM, где Gemini индексирует и ищет. А потом забирает ответ с цитатами и работает с ним дальше. Каждый AI делает то, в чём он лучше.
Установка: 5 минут, один промпт
Попросил Claude Code поставить notebooklm-py.
Промпт для Claude Code (Opus 4.6):
Поставь notebooklm-py с поддержкой браузера. Авторизуйся в Google — мне нужен доступ к NotebookLM через CLI.
Агент всё поставил. Открылся браузер, я залогинился в Google — как обычно, через форму. Агент сохранил сессию. Всё.
Никакого API-ключа, никакой консоли разработчика. Один логин в браузере, и всё готово.
Use case 1: research по записям занятий
Главное, ради чего я это делал. У меня накопились транскрипты 36 уроков за 9 потоков. Нужно быстро находить, где и что я объяснял.
Промпт для Claude Code (Opus 4.6) с NotebookLM MCP:
Создай ноутбук “Кружок Вайбкодинга — Записи”. Добавь туда транскрипты из ~/Documents/GitHub/teach-vibecoding/. Потом спроси: в каких уроках я объяснял разницу между MCP и skill? Дай цитаты.
Агент создал ноутбук, загрузил транскрипты как источники, задал вопрос. Вернулся ответ с точными цитатами — номер урока, фрагмент текста, где именно я это говорил.
Раньше, чтобы найти нужный момент, приходилось вспоминать — какой это был поток? какая неделя? Или просить агента искать по словам в файлах. Сейчас — спрашиваю «где объяснял разницу», получаю три фрагмента с контекстом. NotebookLM ищет не по словам, а по смыслу.
Use case 2: подкаст из материалов
NotebookLM умеет генерировать подкасты — два голоса обсуждают загруженные материалы. Звучит как побочная фича, но для курса это полезно: студенты могут послушать пересказ урока по дороге на работу.
Промпт для Claude Code (Opus 4.6):
Возьми ноутбук с записями потока #9. Сгенерируй подкаст по материалам третьей недели — тема “первый деплой”.
Агент запросил генерацию подкаста. NotebookLM выдал аудио — два голоса обсуждают, что такое деплой, зачем нужен Railway, как студенты справились. На основе моих же записей, не выдуманный контент.
Помимо подкастов, через тот же интерфейс можно генерировать квизы, слайды, инфографику, mind maps — всё из загруженных источников, одним вызовом.
Use case 3: анализ URL с цитатами
Не обязательно загружать файлы. Можно скормить URL — и NotebookLM сам вытянет контент.
Промпт для Claude Code (Opus 4.6):
Создай ноутбук, добавь эти три статьи как источники: [URLs]. Сравни подходы авторов к prompt engineering. Цитируй каждый тезис.
Агент добавил URL, дождался индексации, задал вопрос. Ответ пришёл со ссылками на конкретные абзацы из каждой статьи. Не пересказ — цитаты.
Это, по сути, data layer для исследований. Вместо того чтобы самому читать три статьи и сравнивать — загружаешь в NotebookLM, спрашиваешь у Claude Code, получаешь структурированный ответ.
Под капотом: как работает авторизация
Для тех, кому интересна механика.
Открывается браузер. Ты логинишься в Google, как обычно. Библиотека запоминает сессию. При следующих запусках она сама заходит на страницу NotebookLM, достаёт нужные токены и работает от твоего имени. Без API-ключа, без регистрации приложения.
Когда Google что-то меняет на своей стороне (а они это делают), в библиотеке обновляется только один слой. Остальное остаётся стабильным.
Два способа подключить к Claude Code
MCP-сервер. MCP (Model Context Protocol) — способ дать агенту доступ к внешним инструментам. Есть готовый notebooklm-mcp. Подключаешь, и NotebookLM становится ещё одним инструментом агента рядом с Chrome DevTools, Exa и остальными.
Skill. Попроще: не нужен отдельный сервер. Skill учит агента работать с notebooklm-py напрямую. Ставится одной командой.
Я выбрал skill. Меньше движущихся частей, не нужно ни за чем следить. Claude Code просто использует инструмент когда надо.
Честно о рисках
Это неофициальный API. Google не обещал стабильность. Завтра что-то поменяют на сервере, и всё сломается до следующего обновления библиотеки.
Но. У проекта есть ночной мониторинг: каждую ночь автоматика проверяет, работает ли связь с Google. Если ломается, создаётся issue. Поддержка активная: 2K+ звёзд, регулярные релизы.
Для серьёзных продуктов я бы не стал. Для research и подготовки уроков хватает с запасом. Упадёт на день — переживу.
Итого
Два AI лучше одного, когда каждый делает своё. Gemini в NotebookLM индексирует документы и ищет с цитатами. Claude Code думает, планирует, действует. А notebooklm-py связывает их.
За 5 минут установки я получил:
- поиск по смыслу в 36 транскриптах занятий
- генерацию подкастов, квизов, слайдов из учебных материалов
- анализ любых URL и PDF с точными цитатами
У NotebookLM есть бесплатная версия, но я плачу за Google AI Pro ($19.99/мес) — базовых лимитов не хватает, если работаешь с ним каждый день. Всё из терминала. Всё через один промпт.
FAQ
NotebookLM правда бесплатный?
Есть бесплатная версия с лимитами. Расширенный доступ идёт через подписку Google AI Pro за $19.99/мес — мне базовых лимитов не хватает. Но попробовать можно бесплатно.
Чем это отличается от своего поиска по документам?
Свой поиск — ты сам настраиваешь, контролируешь, чинишь. NotebookLM — Google делает всё за тебя. Загружаешь источники, задаёшь вопросы. Меньше контроля, но ноль настройки.
Что если Google закроет неофициальный доступ?
Официальный API для корпораций уже существует, значит, Google не планирует убивать NotebookLM. Если неофициальный доступ закроют, появится либо публичный API, либо сообщество найдёт обходной путь. Проект с 2K+ звёздами не умрёт тихо.
Можно ли использовать для конфиденциальных данных?
Данные уходят в Google. Если это критично — лучше локальный RAG. Для учебных материалов, публичных статей и research — NotebookLM подходит.
Подписаться на обновления — @sereja_tech