アップデート記事 2026.07.23

NotebookLM→Obsidian自動化:
3ヶ月分のアップデートをまとめてリリース v4.1_ArtifactPromptFetch リリース

前回お伝えしたv20260522 (v2_SingleFile)から、実はかなり間が空いてしまいました。その裏で開発は止まっておらず、社内では既に3段階のアップデートを重ねて使い続けていました。 今回はその3段階分——Obsidianを「蓄積するだけ」から「活用できる」知識基盤に変えた改善Googleの大型UI変更に対応した緊急修正、そしてプロンプト取得方式の刷新——をまとめてお届けします。

「NotebookLMがGemini Notebookに変わって、ツールがコピーループに入るようになった。」
直近のきっかけはこれでした。ただ、そこに至るまでにも社内利用の中で積み上げてきた改善があるので、順番にご紹介します。

📚 Part 1:Obsidianを「眠った資産」から「活きたナレッジベース」に変える

v2_SingleFileでファイルの散乱や見出し崩れは解決しましたが、使い続けるうちに新しい課題が出てきました。

「Obsidianにレポートが溜まっていくのに、後から再活用できていない。」

500本、1,000本と蓄積されたレポートの中から「先週の良いブログ記事どれだっけ」「あのプロンプト、どこ行った」を探すのが大変になっていったのです。 ObsidianにはDataviewという強力なクエリエンジンがあります。YAMLフロントマターを使えば、ノート群をデータベースのように検索・一覧表示できます。この改善に合わせて、ツールの出力設計をゼロから組み直しました。

デュアルファイル出力

1ノートブックにつき2種類のファイルを生成するようにしました。セッションファイル(目次・概要把握用)は生成されたレポートを[[Wikiリンク]]のみで参照し、個別レポートファイル(ナレッジの正本)は本文をそのまま格納します。

---
type: notebooklm-report
notebook: "朝の通勤時の呟き"
label: "ブログ投稿:朝のルーティン考察"
prompt: "音声メモをブログ記事として整理してください"
rating: ~
highlight: false
memo: ""
---

ratinghighlightmemo はObsidianのプロパティパネルからGUIで入力でき、Dataviewクエリで「評価済みの優良レポート」だけを一覧表示できます。

レポートの生成プロンプトを自動抽出

良いレポートが出たとき、そのプロンプトを保存していなければ再現できません。各レポートの鉛筆(編集)ボタンを自動クリックしてプロンプト内容を取得し、YAMLにprompt:として保存するようにしました。モード1/2(生成)とモード7(回収)を別セッションで実行しても、プロンプトはキャッシュ経由で引き継がれます。

保存先設定の永続化

保存先フォルダをコード直書きではなく、起動時にパスを表示・変更できるようにし、settings.jsonに自動保存する設計に変更しました。

✅ Obsidianが「蓄積するだけ」の場所から、評価・検索して再活用できるナレッジベースに進化しました。

💻 Part 2:複数PCで設定が壊れる問題を解決

自宅PCと会社PCの両方でツールを使い始めたとき、次の問題に気づきました。

「自宅で設定した保存先が、会社PCで起動すると別のパスに上書きされている。」

Part 1の設定ファイルはEXEと同じフォルダ(OneDrive同期対象)に保存していたため、PCごとに違うObsidianパスを設定しているのに、片方の設定がもう片方を上書きしてしまっていたのです。

解決策はシンプルで、設定ファイルの保存先をChromeプロファイルと同じ%LOCALAPPDATA%(マシン固有・OneDrive非同期)に揃えました。

❌ 変更前

<EXEフォルダ>/notebooklm_settings.json
← OneDriveで同期される

✅ 変更後

%LOCALAPPDATA%/NotebookLM_Automator/settings.json
← マシン固有

あわせて、起動時の保存先確認を「初回のみ」に変更(2回目以降は自動スキップ)し、実行中のメニューから[s]でいつでも保存先を変更できるようにしました。

✅ 解決:PCごとに独立した設定を維持できるようになり、複数端末利用時の上書き事故がなくなりました。

🛠️ Part 3:「Gemini Notebook」改変で発生したコピーループを解消

そして直近、Googleが NotebookLM を「Gemini Notebook」へ大幅リニューアルしました。これに伴い、ツールの回収(Harvest)処理がおかしな動きを始めました。

「[6] 全回収を実行すると、レポートをコピーするはずが、なぜかノートブック自体を複製しようとしてループする。」

何が起きていたか

回収処理は、生成済みレポートの「コピー」ボタンを押してクリップボード経由で本文を取得する仕組みです。この「コピーボタンを探す」処理は、複数の候補セレクタを順番に試し、最初に見つかったものを使う実装になっていました。

Gemini Notebookになってから、画面右上に常設されている「ノートブックをコピーする」ボタン(ノートブック全体を複製する機能)も、レポートのコピーボタンと同じアイコンを使うようになりました。優先順位1番目のセレクタは条件を満たせば即採用されるため、本来使うべき一意なセレクタに辿り着く前に、このヘッダーボタンを掴んでしまっていたのです。

誤ってクリックすると「ノートブックをコピーする」という複製確認ダイアログが開きます。ツールはこのダイアログを認識できず、クリップボードの検証に失敗しては再試行し、そのたびに同じボタンを押し直す——これが「コピーというワードに反応してループする」ように見えていた正体でした。

v4.0の解決策

一意なセレクタを最優先にし、汎用セレクタには既知の誤爆先を明示的に除外条件として追加しました。

# v4.0: 一意なセレクタを最優先に。汎用セレクタは誤爆先を明示除外
_EXCLUDE = ":not([aria-label='ノートブックをコピーする']):not([aria-label='概要をコピー'])"
copy_selectors = [
    "button[mattooltip='Copy content with formatting']",     # 一意なセレクタ
    "button[aria-label='書式設定を保持したままコンテンツをコピー']", # 一意なセレクタ
    f"button:has(mat-icon:has-text('content_copy')){_EXCLUDE}",   # 汎用+除外
    ...
]

さらに、万一何かの拍子に誤ってダイアログが開いてしまっても実害が出ないよう、安全装置も追加しました。開いてしまった場合は「作成」を押さず必ず「キャンセル」で閉じます。

async def _dismiss_stray_copy_notebook_dialog(self, page):
    dialog = page.locator("mat-dialog-container:has-text('ノートブックをコピーする')").first
    if await dialog.is_visible(timeout=500):
        await dialog.get_by_text("キャンセル", exact=True).first.click(force=True)

あわせて、レポート一覧の項目を開くクリック対象が<button class="artifact-item-button">から<div class="artifact-item-button">に変わっていた副次的なリグレッションも修正しています。

✅ 解決:誤クリックの原因を根本修正し、万一発生しても自動キャンセルで実害を防ぐ二重の対策を実装しました。

🔄 Part 4:プロンプト取得の仕組みを刷新(v4.1)

v4.0リリース直後、オーナーから2つの設計上の問題を指摘されました。プロンプトの取得は「生成時(Phase 1)に鉛筆アイコン経由で事前収集し、%TEMP%にキャッシュしておき、回収時(Phase 2)はキャッシュを読むか、無ければ同じダイアログを開き直して収集し直す」という2段構成でした。

「削除タイミングがPass 2の成否と無関係。しかも『おすすめの形式』は開くたびにAIが違う提案を出すので、後から再収集すると別内容を拾ってしまうのでは?」

何が起きていたか

実際にあるノートブックで、コピーループのバグにより回収(Pass 2)が失敗したにも関わらず、プロンプトのキャッシュだけは「Pass 1完了直後」に削除される実装だったため消えてしまっていました。しかも、キャッシュが無い場合のフォールバックは「レポートを作成」ダイアログを再度開いて鉛筆アイコンから収集し直す仕組みでしたが、Gemini NotebookのAIは「おすすめの形式」をダイアログを開くたびに違う内容で再提案します。つまり後から再収集すると、実際に生成に使われたプロンプトとは別内容を誤って紐付けてしまう構造的な欠陥がありました。

v4.1の解決策

調査の結果、各アーティファクトのケバブメニュー(「その他」)に「プロンプトとソースを表示」という項目があり、これはそのアーティファクト固有の、実際に生成に使われた確定済みプロンプトを、生成からどれだけ時間が経っていても正確に返すことを確認しました。

async def capture_artifact_prompt_via_menu(self, page, lbl):
    target_item = page.locator("artifact-library-item").filter(...)
    more_btn = target_item.locator("button.artifact-more-button").first
    await more_btn.click(force=True)
    menu_item = page.get_by_text("プロンプトとソースを表示", exact=True).first
    await menu_item.click(force=True)
    dialog = page.locator("mat-dialog-container:has-text('プロンプトとソース')").first
    panel = dialog.locator(".panel-content:not(.sources-list)").first
    return (await panel.inner_text()).strip()

これにより、Phase 1での鉛筆アイコン経由の事前収集(約94行)と、回収時のダイアログ再収集フォールバック(約290行)、そして%TEMP%キャッシュの読み書きを丸ごと廃止できました。回収(Harvest)はいつ実行しても、常にそのアーティファクトの実際の生成プロンプトを正確に取得します。

✅ 解決:キャッシュの削除タイミングも「おすすめ」の揺れも、構造的に問題にならない設計に刷新しました。

v4.1_ArtifactPromptFetch

さっそくダウンロード

Windows専用 / インストール不要 (.exe)
前バージョンからの移行はEXEを上書きするだけです。

v4.1_ArtifactPromptFetch をダウンロード

ダウンロード・使い方の詳細は ツール配布ページ をご覧ください。

バージョン別まとめ

v2_SingleFile v3_Advanced v3.1_LocalSettings v4.0 v4.1
出力形式 単一ファイル統合 セッション+個別レポートの2種 同左 同左 同左
Dataview対応 YAMLフロントマターで対応 同左 同左 同左
プロンプト取得方式 鉛筆ボタン経由で自動抽出 同左(%TEMPキャッシュ) 同左 回収時にアーティファクト自身から直接取得
保存先の変更 起動時に変更可・設定永続化 LOCALAPPDATAでPC固有化 同左 同左
複数PC利用 設定が上書き合う PCごとに独立 同左 同左
コピー処理の安定性 Gemini Notebook改変に対応・安全装置追加 同左+プロンプト取得の構造的欠陥も解消

NotebookLMは今後もUIが変わっていく前提のツールです。「動かなくなったら直す」だけでなく、「蓄積したものを活用できるようにする」「誤動作しても最悪の事態にならないようにする」「時間が経っても正確な情報を取得できるようにする」という視点を、この3ヶ月で積み重ねてきました。

変更ログ(サマリー)

v3_Advanced(2026-05-22)

  • Dual File Output:セッションファイル(type: notebooklm-session)+個別レポートファイル(type: notebooklm-report
  • YAML Frontmatterpromptratinghighlightmemoを自動付与し、Dataviewでの評価・検索に対応
  • Prompt Extraction:鉛筆ボタン経由で各レポートの生成プロンプトを自動取得・保存(別セッション実行時もキャッシュで引き継ぎ)
  • Configurable Output Path:起動時に保存先を変更可能、settings.jsonに永続化

v3.1_LocalSettings(2026-06-04)

  • LocalSettings:設定ファイルを%LOCALAPPDATA%\NotebookLM_Automator\settings.jsonへ移動し、複数PC環境での設定競合を解消
  • First-Run-Only Setup:起動時の保存先確認を初回のみに変更
  • In-Session Path Change:実行中のノートブック選択画面に[s] 保存先を変更するを追加

v4.0_GeminiNotebookUIFix(2026-07-23)

  • コピー対象セレクタの優先順位修正:ヘッダー常設「ノートブックをコピーする」ボタンとの誤検出を解消
  • 誤クリック安全装置を追加:万一ダイアログが開いても自動でキャンセルし、ノートブックの意図しない複製を防止
  • レポート項目クリックのタグ変更に対応button.artifact-item-button.artifact-item-button
  • 閉じるボタンのaria-label変更に対応:種別名を含む形になったaria-labelを部分一致で拾えるよう修正
  • スコープは維持:音声解説・動画解説等は引き続き対象外。レポート生成トリガーのロジックも変更なし

v4.1_ArtifactPromptFetch(2026-07-23)最新推奨

  • プロンプト取得方式を刷新:Phase 1の鉛筆アイコン経由事前収集(約94行)と回収時のダイアログ再収集フォールバック(約290行)を廃止
  • アーティファクト直接取得:各レポートの「プロンプトとソースを表示」メニューから、回収時に確定済みプロンプトを直接取得する新規メソッドを追加
  • %TEMPキャッシュを廃止:削除タイミングの不整合、「おすすめの形式」再提案による内容の揺れを構造的に解消
  • v4.0のコピーループ修正・安全装置を継承
ダウンロードページへ戻る

このツールは、Kando Inspire Factoryが自社のコンサルティング業務でNotebookLMを活用する中で開発しました。
「使えるAIを、自分たちで作る」という姿勢で、中小企業のAI活用を支援しています。

AIツールの活用を、事業の成長につなげませんか?