導入

突然ですが、NotebookLMを使っていますか?そして、NotebookLMにたくさんのドキュメントを流し込みたいのに、大事なドキュメントがNotionに溜まっていて困っていませんか?

こういった例に限らず、昨今ではこうしたAIと外部との接続が論点になることも増えています。

AIと外部接続を標準化する「Model Context Protocol(MCP)」というプロトコルが注目されていますが、MCPを創るまでもなく、さっとNotionに溜まったドキュメントをNotebookLMに投入したいんだ、というケースはままあります。

私は仕事もプライベートもこの5年くらいNotionに多くの文章を書き溜めており、外部メモリの一部となっています。しかし、現状ではNotebookLMは公式にNotionをサポートしておらず、大量のドキュメントを食べさせようと思ったときには手間がかかります。

この問題を解決することをメインの目的としつつ、Vive codingを実践してみたいということで、簡単なGAS (Google Apps Script)を作りました。

こちらのGithub Repositoryに公開しています。 https://github.com/yamotty/notion-exporter-to-google-drive

どんなプログラム?

Notion データベースの内容を自動的にGoogle Docs変換し、指定したGoogle DriveへエクスポートするためのGASプロジェクトです。Google Spreadsheet とGASを組み合わせて動作します。

Notion データベースの各エントリーを個別のGoogle Docsドキュメントとして保存し、書式設定や画像も保持します (一部のブロックについてはうまく変換されない場合があります)。

使い方

詳しくはREADMEをしっかり書いたので、こちらを御覧ください。簡単にサマライズすると、以下のような手順でコーディングなしに利用できるツールとなっています。

  1. Google Sheetの設定シートに、NotionデータベースID、Google DriveフォルダIDなどを設定します
  2. Google SheetのNotion ExportメニューからNotion API Keyをセットします。これはGASのプロパティに保存されます
  3. ここまでが完了したら、Notion Exportメニューから試しにデバッグ: 最初の1アイテムだけエクスポートしてみてください。指定したNotionデータベースの1つめのアイテムだけが処理されるはずです。Google Driveに無事保存されていることを確認してみてください。結果は「デバッグ結果」のシートに以下のように出力されます。
  4. データベースにドキュメントがたくさんある場合はバッチ処理でエクスポートを使ってください。バッチの進行状況は「バッチステータス」のシートに順次書き出されます。

処理が完了したら、概ねドキュメントが指定したフォルダにDocsとして生成されているはずです。ドキュメントの中に貼られている画像は、画像専用のフォルダに一箇所にまとまるようになっています。

NotebookLMに入れてみよう

このブログはNotionをCMSとして利用しているので、ブログの記事を取り出してNotebookLMに入れてみました。私のプランではソースは50が限界となっていましたので、上限までインポートしています。それが以下の様子です。

image