生成AI

NotebookLMでGoogleドライブ内のMarkdownが表示されない?GASで自動同期する解決策

「NotebookLMでGoogleドライブにあるMarkdown(.md)ファイルを読み込ませたいのに、ファイル選択画面に出てこない……」

そんな悩みを抱えていませんか?NotebookLMは非常に強力なツールですが、Googleドライブ連携に関しては、現時点(2026/2/7)でGoogleドキュメントやPDFなど特定の形式にしか対応していないという制限があります。

しかし、テキストやマークダウン形式を愛用する方たちにとっては、ローカルから毎回アップロードし直すのは面倒ですし、ファイルが重複して管理も大変です。

そこで今回は、Google Apps Script(GAS)を使って、MarkdownをGoogleドキュメントに自動変換し、NotebookLMと同期させる方法を詳しく解説します。

なぜMarkdownファイルが表示されないのか?

結論から言うと、NotebookLMの「Googleドライブ」ソース選択画面では、現在以下のファイル形式のみがリストアップされる仕様になっています。

  • Googleドキュメント
  • Googleスライド
  • Googleスプレッドシート
  • PDF

そのため、拡張子が .md のファイルはドライブ内に存在していても、選択候補として表示されません。

解決策:GASで「同期用ドキュメント」を自動生成する

Markdownの利便性を保ちつつ、NotebookLMの「同期機能」の恩恵を受けるには、「Markdownの内容をミラーリングしたGoogleドキュメント」を介するのがベストです。

▲ 図1:全体のデータ連携イメージ。GASが橋渡し役になります。

1. Googleドライブのフォルダ準備

まず、Googleドライブ内に2つのフォルダを作成してください。

  • Markdownフォルダ: 編集した .md ファイルを保存する場所
  • NotebookLM用(変換後)フォルダ: GASが自動生成したGoogleドキュメントが保存される場所

作成後、それぞれのフォルダを開いたURLの末尾(folders/ 以降の文字列)をメモしておきます。これがフォルダIDです。

2. Google Apps Script(GAS)の設定

次に、自動変換を行うためのスクリプトを作成します。

  1. Google Apps Script にアクセスし、「新しいプロジェクト」を作成。
  2. 以下のコードをコピー&ペーストします(フォルダIDは自分のものに書き換えてください)。
/**
 * 設定項目
 */
const CONFIG = {
  SOURCE_FOLDER_ID: 'あなたのMarkdownフォルダID',
  DEST_FOLDER_ID: 'あなたの変換後フォルダID'
};

/**
 * メイン関数: Markdownを読み込んでGoogleドキュメントを更新する
 */
function syncMarkdownToDocs() {
  const srcFolder = DriveApp.getFolderById(CONFIG.SOURCE_FOLDER_ID);
  const destFolder = DriveApp.getFolderById(CONFIG.DEST_FOLDER_ID);
  const files = srcFolder.getFiles();

  while (files.hasNext()) {
    const file = files.next();
    const fileName = file.getName();

    if (fileName.endsWith('.md') || fileName.endsWith('.txt')) {
      const docName = fileName.replace(/\.(md|txt)$/, "");
      const content = file.getBlob().getDataAsString();
      updateOrCreateDoc(destFolder, docName, content);
    }
  }
}

/**
 * Googleドキュメントを更新、なければ新規作成する
 */
function updateOrCreateDoc(folder, name, content) {
  const existingDocs = folder.getFilesByName(name);
  let docFile;

  if (existingDocs.hasNext()) {
    docFile = existingDocs.next();
    const doc = DocumentApp.openById(docFile.getId());
    const body = doc.getBody();
    body.clear();
    body.setText(content);
  } else {
    const newDoc = DocumentApp.create(name);
    const body = newDoc.getBody();
    body.setText(content);
    docFile = DriveApp.getFileById(newDoc.getId());
    folder.addFile(docFile);
    DriveApp.getRootFolder().removeFile(docFile);
  }
}
  1. 「保存」ボタンを押し、「実行」をクリックして権限を承認します。

3. トリガーで自動更新を設定する

毎回手動で実行するのは大変なので、定期的に実行されるよう設定しましょう。

  1. GASエディタ左側の「時計アイコン(トリガー)」をクリック。
  2. 「トリガーを追加」をクリック。
  3. 「イベントのソース」を「時間主導型」にし、「15分おき」や「1時間おき」など好みの間隔に設定します。

▲ 図2:トリガー設定。時間主導型にすることで、放置していても同期されます。

NotebookLMでの運用フロー

この仕組みを導入すると、あなたのワークフローは以下のようにスマートになります。

  1. Markdownで書く: お気に入りのエディタで .md ファイルを編集。
  2. 勝手に変換: GASが自動でGoogleドキュメントを更新(ファイルIDは変わらない!)。
  3. NotebookLMで同期: NotebookLMを開き、ソースにある「Google ドライブと同期」ボタンをクリック。

これで、Markdownの良さを活かしつつ、常に最新の情報をNotebookLMに学習させることができます。

まとめ

NotebookLMが公式にMarkdownの直接同期に対応するまでは、この「GASによるドキュメント中継」が最も安定した方法です。

一度設定してしまえば、あとは書くだけ。ぜひ試してみてください!

  • この記事を書いた人

ハリネズミくん

このサイトを運営しています。
普段はITエンジニアとして活動しています。
購入したもののレビューや、ゲーム、PCの設定や、筋トレ、その他生活改善情報などを発信していきます。
- 2021年8月ブログ開設 -

オススメの記事一覧

1

友達とプレイする際、一緒にプレイする時間を決めていればホストがサーバーを立てることで問題なくプレイできますが、ホストのプ ...

2

タルコフ(Excape from Tarkov)はタスクを進めることで大量の経験値を取得できるので、どんどん進めていきた ...

3

アイロンがけについて、このように思ったことはありませんか? シワを伸ばす方法はアイロンがけだけではないのです。できれば手 ...

4

健康寿命を延ばしたい!と思ったことはありませんか?老いるということに関して、そういうものなんだ、自然の摂理なんだ、と諦め ...

5

「睡眠の質」意識されていますか? 意識しているよという方もいれば、気づいたらYouTubeやNetflix、SNSなんか ...

-生成AI