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-воркфлоу, кастомные пайплайны
CLIShell-скрипты, быстрые задачи, CI/CD автоматизация
Agent IntegrationClaude Code, Codex, LLM-агенты, автоматизация на естественном языке

Быстрый старт

ℹ Установка
Для работы с браузерной авторизацией нужен Playwright. Размер Chromium — около 170 МБ, скачивание занимает 30–90 секунд.
# Полная установка с поддержкой браузера
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 Overview4 формата, 3 длины, 50+ языковMP3 / MP4
Video Overview3 формата, 9 визуальных стилейMP4
Slide DeckДетальный / презентационный, правка слайдовPDF, PPTX
Infographic3 ориентации, 3 уровня детализацииPNG
QuizКол-во вопросов и сложностьJSON, Markdown, HTML
FlashcardsКол-во и сложностьJSON, Markdown, HTML
ReportBriefing, study guide, blog post, кастомMarkdown
Data TableПроизвольная структура через промптCSV
Mind MapИерархическая визуализацияJSON

Риски и ограничения

⚠ Важно: неофициальная библиотека
Библиотека использует недокументированные API Google, которые могут измениться без предупреждения. Проект не аффилирован с Google. Рекомендуется для прототипов, исследований и личных проектов — не для продакшн-систем с требованием стабильного API.

Библиотека не хранит пароли Google — вместо этого используется аутентификация через куки браузера. Тем не менее любой инструмент автоматизации несёт риск блокировки аккаунта, поэтому рекомендуется тестировать на отдельном аккаунте.

Google может в любой момент изменить внутренние интерфейсы NotebookLM, что временно выведет инструмент из строя. Разработчик поддерживает процесс быстрых исправлений на GitHub, однако пользователи должны принимать эту неопределённость.


Примеры применения

📝 Автоматизация исследований
Можно автоматически импортировать десятки PDF-статей, запустить веб-ресёрч по теме, сгенерировать сравнительную таблицу данных и скачать подкаст-обзор — всё это в одном Python-скрипте без открытия браузера.
💡 Совет для разработчиков
Используйте флаг --prompt-file PATH с командами ask и generate, когда текст промпта слишком длинный для командной строки. Это отдельная опция от source add ./file.pdf, которая загружает файл как источник.

Итог

notebooklm-py — это первый полноценный неофициальный мост между Google NotebookLM и миром программной автоматизации, открывающий возможности, которые сам Google пока не предоставляет через официальные каналы.

Проект предоставляет комплексный неофициальный Python API и CLI для Google NotebookLM, раскрывая функции за пределами веб-интерфейса. Библиотека является открытым сообществом, распространяется под лицензией MIT и активно поддерживается на GitHub. Для тех, кто хочет встроить мощь NotebookLM в собственные исследовательские пайплайны, агентские системы или инструменты автоматизации — это на сегодня единственное доступное решение.