NotebookLM PDF → PowerPoint 変換ツール(notebookLM2PPT)
概要
notebookLM2PPTは、GoogleのNotebookLMからエクスポートしたPDFをPowerPoint(.pptx)へ変換することを目的としたオープンソースツールです。主眼はNotebookLMが付加する透かしの除去と、ラスタ画像化せずに可能な限りベクター情報(図形やパス)を維持してスライドを再現する点にあります。実行はCLIベースに加え、Web UIやAPIも備え、Dockerでのコンテナ実行や環境変数による設定が可能。ライセンスはMITで、pip公開(pdfslides2ppt)を念頭に開発されています。開発言語はPythonで、実運用を想定した入出力処理やフォント・画像の扱いに配慮されています。
リポジトリの統計情報
- スター数: 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字程度)。
リポジトリ情報:
- 名前: notebookLM2PPT
- 説明: Convert NotebookLM PDF exports to PowerPoint with watermark removal and vector graphics. CLI + Web UI + API + MCP.
- スター数: 1
- 言語: Python
- URL: https://github.com/neosun100/notebookLM2PPT
- オーナー: neosun100
- アバター: https://avatars.githubusercontent.com/u/13846998?v=4
READMEの抜粋: English | 简体中文 | 繁體中文 | 日本語