notebooklm-cli  by jacob-bd

Interact with Google NotebookLM via a powerful command-line interface

Created 6 months ago
250 stars

Top 100.0% on SourcePulse

GitHubView on GitHub
Project Summary

jacob-bd/notebooklm-cli provides a command-line interface for interacting with Google's NotebookLM, enabling programmatic access to its features. It targets developers and power users seeking to automate research workflows, integrate NotebookLM capabilities into other applications, or leverage its AI-generated content generation. The primary benefit is enabling scripting and automation for NotebookLM's notebook management, source ingestion, and content generation tasks.

How It Works

The CLI interacts with NotebookLM's internal, undocumented APIs. Authentication is handled via the Chrome DevTools Protocol, which automatically extracts session cookies from a running Chrome instance, simplifying login and session management. It supports various content sources (URLs, YouTube, pasted text, Google Drive) and can trigger AI-powered content generation for podcasts, reports, quizzes, and more. A key architectural choice is the alias system, mapping user-defined shortcuts to long notebook UUIDs for easier command invocation.

Quick Start & Requirements

  • Installation: pip install notebooklm-cli or pipx install notebooklm-cli.
  • Prerequisites: Python 3.10+, Google Chrome (for authentication).
  • Authentication: Run nlm login to initiate the Chrome-based authentication flow.
  • Docs: CONTRIBUTING.md, Troubleshooting Guide, Technical Deep Dive.

Highlighted Details

  • AI Integration: Offers --ai flag for generating comprehensive documentation for AI assistants and a downloadable nlm-cli-skill for AI coding assistants.
  • Alias System: Allows users to create custom shortcuts for notebook IDs, simplifying command usage.
  • Research Capabilities: Supports web search (nlm research start) and Google Drive search to discover and import new sources.
  • Multiple Output Formats: Supports rich tables, JSON, quiet (IDs only), and full details for list commands.
  • Profile Support: Manages multiple Google accounts via named profiles.

Maintenance & Community

This project is deprecated and has been merged into jacob-bd/notebooklm-mcp-cli. No further updates are expected for this repository. Contributions are welcome via pull requests and issues, with guidelines provided in CONTRIBUTING.md.

Licensing & Compatibility

  • License: MIT License.
  • Compatibility: Compatible with commercial use under the MIT license terms. However, reliance on undocumented internal APIs means potential breakage with NotebookLM updates.

Limitations & Caveats

The project is deprecated. It relies on undocumented internal APIs that are subject to change without notice, potentially breaking functionality. Free tier usage is subject to rate limits (approx. 50 queries/day), and sessions require re-authentication every few weeks due to cookie expiration. The codebase acknowledges it was built using AI assistants and may lack standard software engineering patterns.

Health Check
Last Commit

1 month ago

Responsiveness

Inactive

Pull Requests (30d)
1
Issues (30d)
1
Star History
9 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.