notebooklm-py: неофициальный Python API для Google NotebookLM
Разработчик teng-lin выпустил notebooklm-py — неофициальную Python-библиотеку и CLI для Google NotebookLM с доступом к скрытым функциям, которых нет в веб-интерфейсе.
Google NotebookLM открылся для программистов
Разработчик teng-lin выпустил notebooklm-py — неофициальную Python-библиотеку и agentic skill (агентский навык) для Google NotebookLM, которая открывает полный программный доступ к платформе, включая возможности, недоступные через веб-интерфейс. Библиотека поддерживает Python async-воркфлоу, управление через CLI и интеграцию с AI-агентами — Claude Code, Codex и OpenClaw. Проект распространяется бесплатно под лицензией MIT.
Что такое NotebookLM и зачем нужен API
NotebookLM — это AI-ассистент для исследований от Google на базе Gemini, использующий подход RAG (Retrieval-Augmented Generation) для ответов со ссылками на источники. Studio-панель сервиса позволяет одним кликом генерировать Audio и Video Overviews, Mind Maps, Slide Decks, Infographics, Data Tables, а также учебные инструменты — Quiz и Flashcards.
Но веб-интерфейс имеет принципиальное ограничение: NotebookLM генерирует отличный контент, но почти не предлагает опций экспорта. Карточки (Flashcards) можно расшарить только по ссылке, но не скачать как файл. Mind Map экспортируется лишь в PNG, непригодный для дальнейшего редактирования.
notebooklm-py решает именно эту проблему.
Что умеет библиотека
Цель проекта — предоставить программный доступ не только к стандартным операциям с ноутбуками, но и ко многим возможностям, которые ограничены или недоступны в веб-интерфейсе. Библиотека охватывает управление ноутбуками, добавление источников, диалоговые запросы, исследовательские воркфлоу и управление доступом. Поддерживается генерация audio overviews, видео, слайд-деков, инфографики, тестов, карточек, отчётов, таблиц данных и mind map.
Возможности, которых нет в веб-интерфейсе
Библиотека предлагает функции, недоступные в веб-интерфейсе NotebookLM: пакетное скачивание артефактов, экспорт Quiz и Flashcards в JSON/Markdown/HTML (веб-UI показывает лишь интерактивный вид), извлечение данных Mind Map в иерархический JSON, экспорт Data Table в CSV, загрузку Slide Deck в редактируемом PPTX-формате (веб-UI предлагает только PDF), поправку отдельных слайдов через промпты на естественном языке.
Три режима использования
| Режим | Лучше всего для |
|---|---|
| Python API | Интеграция в приложения, async-воркфлоу, кастомные пайплайны |
| CLI | Shell-скрипты, быстрые задачи, CI/CD автоматизация |
| Agent Integration | Claude Code, Codex, LLM-агенты, автоматизация на естественном языке |
Быстрый старт
# Полная установка с поддержкой браузера
pip install "notebooklm-py[browser]"
playwright install chromium
# Авторизация (откроет браузер для входа в Google)
notebooklm login
# Проверка авторизации
notebooklm auth check --test --json
Для встраивания в приложение без Playwright:
# Лёгкая установка (~10 МБ)
pip install notebooklm-py
Типичный CLI-воркфлоу
# Создать ноутбук и добавить источники
notebooklm create "My Research"
notebooklm source add "https://en.wikipedia.org/wiki/Artificial_intelligence"
notebooklm source add "./paper.pdf"
# Задать вопрос по источникам
notebooklm ask "What are the key themes?"
# Генерация контента
notebooklm generate audio "make it engaging" --wait
notebooklm generate quiz --difficulty hard
notebooklm generate mind-map
# Скачать результаты
notebooklm download audio ./podcast.mp3
notebooklm download quiz --format markdown ./quiz.md
notebooklm download mind-map ./mindmap.json
Python API (async)
import asyncio
from notebooklm import NotebookLMClient
async def main():
async with await NotebookLMClient.from_storage() as client:
# Создать ноутбук и добавить источник
nb = await client.notebooks.create("Research")
await client.sources.add_url(nb.id, "https://example.com", wait=True)
# Задать вопрос
result = await client.chat.ask(nb.id, "Summarize this")
print(result.answer)
# Сгенерировать подкаст и скачать
status = await client.artifacts.generate_audio(nb.id, instructions="make it fun")
await client.artifacts.wait_for_completion(nb.id, status.task_id)
await client.artifacts.download_audio(nb.id, "podcast.mp3")
asyncio.run(main())
Интеграция с AI-агентами
Одна из ключевых возможностей — интеграция NotebookLM в Claude Code, Codex и другие LLM-агенты. Библиотека поставляется с готовым NotebookLM skill для GitHub, поддержкой npx skills add, локальной установкой через notebooklm skill install для Claude Code и директорий .agents, а также инструкциями для Codex в файле AGENTS.md.
graph LR
A[Источники
PDF / URL / YouTube] --> B[notebooklm-py]
B --> C[Python API]
B --> D[CLI]
B --> E[Agent Skills]
C --> F[Async-пайплайн]
D --> G[Shell / CI-CD]
E --> H[Claude Code]
E --> I[Codex / OpenClaw]
Поддерживаемые форматы генерации
| Тип артефакта | Форматы и опции | Формат скачивания |
|---|---|---|
| Audio Overview | 4 формата, 3 длины, 50+ языков | MP3 / MP4 |
| Video Overview | 3 формата, 9 визуальных стилей | MP4 |
| Slide Deck | Детальный / презентационный, правка слайдов | PDF, PPTX |
| Infographic | 3 ориентации, 3 уровня детализации | PNG |
| Quiz | Кол-во вопросов и сложность | JSON, Markdown, HTML |
| Flashcards | Кол-во и сложность | JSON, Markdown, HTML |
| Report | Briefing, study guide, blog post, кастом | Markdown |
| Data Table | Произвольная структура через промпт | CSV |
| Mind Map | Иерархическая визуализация | JSON |
Риски и ограничения
Библиотека не хранит пароли Google — вместо этого используется аутентификация через куки браузера. Тем не менее любой инструмент автоматизации несёт риск блокировки аккаунта, поэтому рекомендуется тестировать на отдельном аккаунте.
Google может в любой момент изменить внутренние интерфейсы NotebookLM, что временно выведет инструмент из строя. Разработчик поддерживает процесс быстрых исправлений на GitHub, однако пользователи должны принимать эту неопределённость.
Примеры применения
--prompt-file PATH с командами ask и generate, когда текст промпта слишком длинный для командной строки. Это отдельная опция от source add ./file.pdf, которая загружает файл как источник.Итог
notebooklm-py— это первый полноценный неофициальный мост между Google NotebookLM и миром программной автоматизации, открывающий возможности, которые сам Google пока не предоставляет через официальные каналы.
Проект предоставляет комплексный неофициальный Python API и CLI для Google NotebookLM, раскрывая функции за пределами веб-интерфейса. Библиотека является открытым сообществом, распространяется под лицензией MIT и активно поддерживается на GitHub. Для тех, кто хочет встроить мощь NotebookLM в собственные исследовательские пайплайны, агентские системы или инструменты автоматизации — это на сегодня единственное доступное решение.