Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Book Summarizer & Obsidian Slide Visualizer

GitHub stars GitHub forks License: MIT

An advanced agentic skill that automates book ingestion, generates executive briefing reports and slide decks via NotebookLM, extracts slide visuals, and compiles them into a unified, rich Obsidian vault summary with semantic image mapping.


⚡ Why Use This?

  • Say Goodbye to Bland Book Summaries: Text-only summaries lack context. This tool embeds visual slide highlights directly inline where they fit logically.
  • Chapter-by-Chapter Granularity: Automatically splits textbooks and technical manuals into separate chapters, preserving complex diagrams and MCP instructions.
  • Resilient Execution: Implements automatic multi-account cookie rotation and backoffs to bypass NotebookLM's rolling daily generation limits.

🏗️ How it Works

flowchart TD
    A[Input Book: EPUB/PDF/TXT] --> B{Granularity Classifier}
    B -- Textbook / Manual --> C[Split into Chapter Markdown files]
    B -- Fiction / General Non-Fiction --> D[Keep as Single Book Unit]
    C & D --> E[NotebookLM Upload]
    E --> F[Generate Briefing Report & Slide Deck]
    F --> G[Extract PDF slides to PNGs via PyMuPDF]
    G --> H[Organize into Obsidian Vault Directory]
    H --> I[Compile Comprehensive_Summary.md with Contextual Slide Placements]
Loading

⚙️ Features

  • 📑 Smart File Conversion: Automatically converts .epub and unsupported formats into Markdown using markitdown.
  • 📊 Visual Ingestion: Converts slide deck PDFs into clean PNGs at high resolutions.
  • 📂 Obsidian Vault Standard Organization: Automatically places summaries and assets into your specified Obsidian folder.
  • 🔁 Multi-Account Rotation: Rotates through Google account cookies (storage_state.json) automatically when RATE_LIMITED is detected.
  • 🎨 Visual Style Enforcer: Enforce a unified slide theme across chapters using CLI description parameters.

🚀 Quick Start

1. Prerequisites

Ensure you have the following installed:

  • Python 3.10+
  • uv (Python package installer and runner)
  • NotebookLM CLI (Authenticated and configured)

2. Installation

Clone the repository:

git clone https://github.com/alexjiaguo/book-summarizer.git
cd book-summarizer

3. Configuration

Copy the .env.example file to .env and customize the paths for your local machine:

cp .env.example .env

Open .env and configure:

  • BOOK_SUMMARIZER_DIR: Root folder of your cloned repository.
  • OBSIDIAN_VAULT_PATH: Destination path in your Obsidian vault.

Always source the environment file before running the scripts:

set -a; source .env; set +a

4. Usage

Run the conversion script directly or instruct your AI coding agent to execute the SKILL.md rules:

# Process a book using the default settings
uv run python $BOOK_SUMMARIZER_DIR/scripts/convert_book.py path/to/book.epub /tmp/converted_book.md

To run slide extraction:

uv run --with pymupdf python $BOOK_SUMMARIZER_DIR/scripts/slides_to_images.py /tmp/deck.pdf /tmp/extracted_slides/

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat: add some amazing feature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

Distributed under the MIT License. See LICENSE for more information.

About

No description or website provided.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages