NotebookLM PDF → PowerPoint 変換ツール(notebookLM2PPT)

Tool

概要

notebookLM2PPTは、GoogleのNotebookLMからエクスポートしたPDFをPowerPoint(.pptx)へ変換することを目的としたオープンソースツールです。主眼はNotebookLMが付加する透かしの除去と、ラスタ画像化せずに可能な限りベクター情報(図形やパス)を維持してスライドを再現する点にあります。実行はCLIベースに加え、Web UIやAPIも備え、Dockerでのコンテナ実行や環境変数による設定が可能。ライセンスはMITで、pip公開(pdfslides2ppt)を念頭に開発されています。開発言語はPythonで、実運用を想定した入出力処理やフォント・画像の扱いに配慮されています。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 9
  • ファイル数: 17
  • メインの言語: Python

主な特徴

  • NotebookLMエクスポートPDFから.pptxを生成(透かしの除去をサポート)
  • ベクトルデータの抽出・再構築により画質劣化を抑制
  • CLI、Web UI、APIの多様な操作インターフェースを提供
  • Dockerfileと.env.exampleで容易に環境構築・デプロイ可能

技術的なポイント

notebookLM2PPTはPDF→PPTX変換の際に「ただ画像を貼る」手法ではなく、PDF内部の構造を解析して可能な限りネイティブなPowerPoint要素にマッピングすることを目指しています。技術的に注目すべき点は主に以下です。

  • PDF解析と要素抽出: PDFはテキスト、ベクトルパス、画像、注釈などの複合的なオブジェクトで構成されています。本プロジェクトはPDFパーサーを用いてこれらを分解し、スライドごとに要素を分類します。テキストはテキストボックスとして再配置し、フォントやサイズの情報は可能な範囲で引き継ぎます(フォントの埋め込み/代替処理を想定)。

  • ベクトル情報の再現: 線や塗りつぶし・パスなどのベクター要素は、ラスター化せずにPowerPointの図形(Shape)やパス命令へ変換することで、拡大縮小時の劣化を防ぎます。この変換処理は座標系の変換やパス命令の互換性調整(Bézier制御点の処理など)を含みます。

  • 透かし(ウォーターマーク)除去: NotebookLMの透かしはページ上に重ねられた画像またはテキスト要素として出力されます。ツールは透かしの特徴(固定位置、半透明、既知のテキストパターンやロゴ形状)を検出してマスクまたは除去するアルゴリズムを導入します。透かしの検出はレイヤ構造の解析、アルファ値や描画順序のチェック、もしくはテンプレートマッチング的な手法を組み合わせる運用を想定しています。

  • 出力(.pptx)生成: 抽出・変換した要素をpython-pptx等のライブラリを使ってPPTXに組み立てます。画像は埋め込み、テキストボックスや図形はスライドレイアウトに忠実に配置。スライドサイズやアスペクト比の調整、フォントがない場合のフォールバック処理も考慮されています。

  • 運用性と拡張性: CLIで一括変換、Web UIでファイルアップロード→変換、API経由でサービス統合が可能です。Dockerfileにより依存関係を分離でき、.env.exampleで外部サービス(ログ、認証、ストレージ等)の接続設定を容易に管理できます。ライセンスはMITであり、PyPIパッケージ(pdfslides2ppt)との連携も想定された構成です。

以上の設計により、NotebookLM特有の出力に対して高品質なPPTX変換を実現しつつ、実運用での自動化・デプロイをサポートします。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .env.example: file
  • .gitignore: file
  • Dockerfile: file
  • LICENSE: file
  • README.md: file

…他 12 ファイル

(リポジトリ内にはCLI用スクリプト、API/Web UIのエンドポイント、変換ロジックのモジュール群、ユーティリティや設定ファイルが含まれます)

まとめ

NotebookLMのPDFを高品位にPPTXへ変換する、実運用を見据えたPythonツールです(50字程度)。

リポジトリ情報:

READMEの抜粋: English | 简体中文 | 繁體中文 | 日本語

pdf2ppt

PyPI version Python License: MIT GitHub stars