MCP Hub
Back to servers

notebookLM2PPT

Enables AI models to convert NotebookLM PDF exports into high-quality PowerPoint presentations with automatic watermark removal and vector graphics preservation. It provides automated tools for slide conversion, metadata management, and document processing via the Model Context Protocol.

Stars
1
Updated
Feb 11, 2026

English | 简体中文 | 繁體中文 | 日本語

notebookLM2PPT

PyPI version Python License: MIT GitHub stars

Convert PDF Slides to PowerPoint Presentations with Vector Graphics (highest resolution).

notebookLM2PPT Web UI

✨ Features

  • 🎯 Vector Graphics - Maintains highest resolution in generated PPT
  • 📝 Metadata Conversion - Preserves title, author and other metadata
  • 📐 Auto Detection - Automatically detects slide size and aspect ratio
  • 🚀 Easy to Use - Simple command line interface with beautiful output
  • 📄 Page Selection - Convert specific pages with --pages option
  • Parallel Processing - Speed up conversion with --parallel option
  • 🔍 Dependency Check - Automatically checks for required tools
  • 🎨 Web UI - Modern web interface with drag-and-drop support
  • 📡 REST API - FastAPI server with async processing
  • 🔧 MCP Support - Model Context Protocol for AI integration
  • 🐳 Docker Ready - All-in-one Docker image available
  • 💎 Glassmorphism Design - Ultra modern frosted glass UI with neon effects
  • 🌍 18 Languages - Full internationalization support

🌍 Supported Languages

LanguageCodeLanguageCode
EnglishenItalianoit
简体中文zh-CNРусскийru
繁體中文zh-TWالعربيةar
日本語jaहिन्दीhi
한국어koไทยth
FrançaisfrTiếng Việtvi
DeutschdeNederlandsnl
EspañolesPolskipl
PortuguêsptTürkçetr

🎯 Motivation

  • LaTeX users can easily convert beamer slides from PDF to PPT
  • Typst users can easily convert touying slides from PDF to PPT

🚀 Quick Start

Option 1: Command Line (pipx)

# Install via pipx (recommended)
pipx install notebooklm2ppt

# Convert PDF to PPT
pdf2ppt input.pdf output.pptx

Option 2: Web UI (Docker)

For x86_64 / AMD64 (Linux servers, Intel Macs):

docker run -d -p 8100:8100 neosun/notebooklm2ppt:1.2.0-amd64

For ARM64 (Apple Silicon Macs, ARM servers):

docker run -d -p 8100:8100 neosun/notebooklm2ppt:1.2.0-arm64

Auto-detect architecture:

docker run -d -p 8100:8100 neosun/notebooklm2ppt:latest

Access at: http://localhost:8100

Option 3: API Server

# Install with server dependencies
pip install "notebooklm2ppt[server]"

# Start server
python -m uvicorn web.app:app --host 0.0.0.0 --port 8100

API Documentation: http://localhost:8100/docs

📦 Installation

Prerequisites

  • Python >= 3.9
  • pdf2svg - for PDF to SVG conversion
  • Inkscape - for SVG to EMF conversion

Install Dependencies

macOS:

brew install pdf2svg inkscape

Ubuntu/Debian:

sudo apt-get install pdf2svg inkscape

Windows:

Install notebookLM2PPT

# Recommended: Install with pipx (isolated environment)
pipx install notebooklm2ppt

# Or install with pip
pip install notebooklm2ppt

📖 Usage

Basic Usage

# Specify output file
pdf2ppt input.pdf output.pptx

# Auto-generate output filename (input.pptx)
pdf2ppt input.pdf

# Verbose mode
pdf2ppt input.pdf --verbose

Advanced Usage

# Convert specific pages
pdf2ppt input.pdf -p 1-5,7,9-11

# Parallel processing (4 workers)
pdf2ppt input.pdf -j 4

# Force overwrite existing file
pdf2ppt input.pdf output.pptx --force

# Keep temporary files for debugging
pdf2ppt input.pdf --no-clean

Command Line Options

usage: pdf2ppt [-h] [-v] [--verbose] [--no-clean] [--no-check] [--force]
               [--pages PAGES] [--parallel PARALLEL]
               [--pdf2svg-path PATH] [--inkscape-path PATH]
               input [output]

positional arguments:
  input                 Input PDF file
  output                Output PPTX file (default: input.pptx)

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  --verbose             Verbose output
  --no-clean            Keep temporary files
  --no-check            Skip SVG filter check
  --force, -f           Overwrite output file if exists
  --pages, -p PAGES     Page range (e.g., "1-5,7,9-11")
  --parallel, -j N      Parallel workers (default: 1)
  --pdf2svg-path PATH   Path to pdf2svg executable
  --inkscape-path PATH  Path to inkscape executable

🔧 Technical Implementation

  1. Convert PDF to SVG using pdf2svg
  2. Convert SVG to EMF using inkscape (due to python-pptx limitations)
  3. Insert EMF into PPT using python-pptx

🛠️ Tech Stack

ComponentTechnology
LanguagePython 3.9+
PDF Processingpypdf
PPT Generationpython-pptx
PDF to SVGpdf2svg
SVG to EMFInkscape
CLI Outputrich

⚠️ Known Issues

Transparent Background

Elements with transparency are not fully supported due to dependency limitations. You will receive a warning when such issues are detected. You can manually copy the generated SVG to fix the problem.

See #1 for more details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright © 2023-2024 Teddy van Jerry (Wuqiong Zhao)

⭐ Star History

Star History Chart

📱 Follow Us

WeChat

Reviews

No reviews yet

Sign in to write a review