notebooklm について
ブラウザー自動化で NotebookLM を操作し、ノートブックの読み取り、ソース追加、作成、Studio 出力の生成を行うスキルです。NotebookLM のウェブ画面で資料を管理したり出力を開始したりする用途向けで、ブラウザー自動化環境が必要です。
主な機能
- 01ノートブックの内容を読み取り抽出
- 02URL、テキスト、ファイル、Google Docs を追加
- 03初期ソース付きノートブックを作成
- 04Studio のレポートやメディアを生成
- 05UI 操作と非同期タスクを確認
活用シーン
- 01既存ノートブックに調査資料を追加
- 02ノートブックへ質問し回答を整形
- 03初期ソースを含むノートブックを作成
- 04Audio Overview やスライドの生成を開始
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill notebooklmインストール後、Claude Code で/notebooklmを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/async_action_discipline.mdbrowser_automation_canon.mdstudio_output_custom_prompts.mdscripts/action_router.pyasync_action_classifier.pycustom_prompt_template_generator.py詳細
NotebookLM — ブラウザー自動化
必要条件: ブラウザー自動化環境(computer-use を備えた Claude Code CLI、Claude Chrome Extension、または同等の環境)。自動化に対応していないコンテキストでは、スキルは明確な「未対応」メッセージを表示して安全に終了します。
重要: このスキルは v2 コレクション内で唯一のブラウザー自動化スキルです。research-pack の Agent Integrity Rules の規約には従いません。UI の動的な変化、非同期生成、ログイン画面など、異なる制約が適用されます。
Step 0:ブラウザーコンテキストの設定(必須)
ほかの操作を行う前に、ブラウザー自動化が利用可能であることを確認します。
- ハーネスにブラウザー制御ツール(スクリーンショット、クリック、要素の検索、移動)が読み込まれているか確認します
- 利用できない場合 → 明確なメッセージを表示して停止します:「このスキルにはブラウザー自動化が必要です。現在のコンテキスト:{context}。続行できません。computer-use を備えた Claude Code CLI、Claude Chrome Extension、または同等の環境を使用してください。」
- 利用できる場合 → 最初のスクリーンショットを撮り、https://notebooklm.google.com に移動します
- スクリーンショットでログイン画面を検出します。 ログイン画面が検出された場合は、「ブラウザーで NotebookLM にログインしてから、このスキルを再度実行してください。」と表示して停止します。ログインを自動で処理しようとしてはいけません。
Phase 0:質問による要件確認(アクションの振り分け)
依存関係に沿って、最大4つの確認質問を一度に1つずつ行います。ほとんどの場合、Q3 までで終了します。
Q1(起点)— アクション
何をしますか? 1つ選んでください:
- 閲覧/抽出 — 既存のノートブックに質問する
- ソースを追加 — コンテンツ(URL、テキスト、ファイル、Google ドキュメント、または生成したコンテンツ)をノートブックに追加する
- Studio の出力を生成 — 音声/動画の概要、マインドマップ、レポート(ブリーフィングドキュメント、学習ガイド、FAQ、タイムライン)、フラッシュカード、クイズ、インフォグラフィック、またはスライド — 実際に利用できる項目は、Studio パネルの最新の内容に基づきます
- 新しいノートブックを作成 — タイトルと初期ソースを設定して作成する
確認する理由: アクションごとに UI の操作手順や必要なパラメーターが異なります。最初にアクションを指定すれば、無駄なスクリーンショットを避け、必要な追加質問だけを行えます。
選択を必須とします。 ユーザーがアクションを指定せずに「NotebookLM を開いて」と言った場合、開始せずに Q1 を再度尋ねます。
Q2(Q1 に依存)— ノートブックの特定
どのノートブックですか? (アクション1、2、3で質問します。「新しいノートブックを作成」の場合は質問しません)
確認する理由: 名前が指定された場合はホームページで検索し、URL が指定された場合は直接移動します。名前が曖昧な場合は、スクリーンショットを使って候補を確認します。
アクション4(新規作成)の場合は、「新しいノートブックのタイトルは何ですか?」に置き換えます。
Q3(Q1 に依存)— アクション固有のパラメーター
アクション1(閲覧/抽出):
「ノートブックに何を質問しますか? 自然な言い回しを使ってください。ノートブックのチャットでは、そのほうがうまく回答できます。」
アクション2(ソースを追加):
「ソースの種類は何ですか? 1つ選んでください:
- URL/ウェブサイト/YouTube リンク
- コピーしたテキスト(ここに貼り付けるか、コンテンツの場所を指定してください)
- ファイルのアップロード(絶対パスを指定してください)
- Google ドキュメント(リンク)
- 生成したコンテンツ(事前に処理し、「コピーしたテキスト」として追加します)
確認する理由: ソースの種類ごとに、「ソースを追加」ダイアログ内の操作手順が異なります。先に選んでおくと、手順を1つ省けます。」
アクション3(Studio の出力):
「どの Studio の出力を生成しますか? 2026-06 時点では、Studio パネルに音声の概要、動画の概要、マインドマップ、レポート(ブリーフィングドキュメント/学習ガイド/FAQ/タイムライン/カスタム)、フラッシュカード、クイズ、インフォグラフィック、スライドがあります。クリックする前に、最新のパネルをスクリーンショットで確認し、実際にアカウントに表示される項目を確認します。また、カスタムプロンプトで指定したい方向性はありますか? デフォルトのプロンプトでは平凡な出力になるため、必ずカスタマイズメニューを開いて詳細なプロンプトを記述します。 視点や対象読者を教えてください。
確認する理由: 出力の種類によって、探す UI ボタンが決まります。品質を確保するには、カスタムプロンプトの指定が必須です。」
アクション4(新規作成):
「初期ソースはありますか? URL、ファイルパス、または「後で追加する」と指定してください。」
Q4(Q1=アクション 3 の場合のみ)— Studio のカスタムプロンプトの詳細
Studio の出力について、切り口、対象読者、長さを教えてください。例:
- Audio Overview:「技術に詳しくない経営幹部向けの2人のホストによる対談。8~10分。技術的な詳細ではなく、ビジネスへの影響に焦点を当てる」
- Infographic:「意思決定ツリー形式。行動を促す内容。最大6パネル。モノクロのネイビー」
- Study Guide:「学部生レベル。各概念の定義と練習問題3問」
質問する理由: これがカスタムプロンプトになります。Studio のデフォルトのプロンプトでは平凡な出力になりがちですが、具体的に指示すると優れた出力が得られます。
Studio の出力を生成する場合(Q1=3)のみ質問します。それ以外の場合はスキップします。
停止条件: Q4 の後(または依存関係によりスキップした場合はそれより前)に、コミットしてアクションシーケンスを開始します。
標準仕様については references/studio_output_custom_prompts.md を参照してください。
ノートブックの検索
アクション 1~3(既存のノートブックが必要)の場合:
- ホームページに移動 → スクリーンショットを撮る
- ユーザーが URL を指定した場合 → 直接移動する
- ユーザーが 名前 を指定した場合:
- semantic find() を使って、画面に表示されているタイトル文字列からノートブックのカードを探す
- 一致するものが複数ある場合 → ホームページのスクリーンショットを撮り、候補を一覧表示して、どれかをユーザーに指定してもらう
- 一致するものがない場合 → URL の指定、またはスペルの確認をユーザーに依頼する
アクション 4(新規作成)の場合:
- ホームページで「New notebook」ボタンを見つける
- クリック → Q2 のタイトルを設定する
- Q3 に従って初期ソースを追加する
アクション 1:読み取り/抽出
- ノートブックを開く(上記のノートブック検索を参照)
- チャット入力欄を見つける(semantic find またはスクリーンショット上の座標を使用)
- 質問を入力する(Q3 にあるユーザーの自然な表現を使用)
- 送信する(Enter キーまたは送信ボタン)
- 3~5秒待つ
- 回答エリアのスクリーンショットを撮る
- 回答を抽出し、見やすい形式で提示する(チャット内容をそのまま出力しない)
アクション 2:ソースの追加
ソースの種類ごとのサブフロー:
| 種類 | UI の操作 |
|---|---|
| URL/ウェブサイト/YouTube | Add Source → Link → URL を貼り付ける |
| コピーしたテキスト | Add Source → Copied text → コンテンツを貼り付ける |
| ファイルのアップロード | 絶対パスと input ref を指定してファイルアップロードツールを使用する(ネイティブのファイル選択ダイアログは絶対にクリックしない) |
| Google Doc | Add Source → Google Docs → Drive の選択画面 |
| 合成したコンテンツ | 別の場所でコンテンツを前処理してから、Copied text として追加する |
追加のたびに: 取り込み中のスピナーが消えるまで待ち、スクリーンショットを撮って成功を確認します。
合成コンテンツのパターン(効果的): ノイズの多いコンテンツを含む可能性がある生の URL を NotebookLM に取り込ませる代わりに、コンテンツを前処理します(主要な記事を抽出し、ナビゲーション、広告、コメントを取り除きます)。その後、「Copied text」として追加します。これにより、要約の品質が大幅に向上します。
アクション 3:Studio の出力
決めつけずに、実際に確認します。 NotebookLM の Studio の出力一覧は、段階的なロールアウトやアカウントのプランによって変わります。前回の確認時点(2026-06)では、パネルに Audio Overview、Video Overview、Mind Map、Reports(Briefing Doc、Study Guide、FAQ、Timeline、カスタムレポート形式)、Flashcards、Quiz、Infographic、Slides がありました。この一覧は参考情報として扱い、確定情報とは見なさないでください。実際の Studio パネルのスクリーンショットを正とします。NotebookLM の UI は急速に変わるため、実際の製品で確認し、内容にずれが生じたらこのセクションを更新してください(Studio の出力一覧の最終確認:2026-06)。
必須ワークフロー:
- Studio パネルを見つけ(右側。切り替えが必要な場合があります)、スクリーンショットを撮ります。表示されているタイルが、このアカウントで実際に利用できる出力タイプです
- リクエストされたタイプに対応する出力ボタンを見つけます(表示されていない場合は、利用不可と判断する前に「Discover more」やオーバーフローメニューを確認します)
- カスタマイズメニューを開きます(ボタンの横にあるシェブロン/矢印)。メインボタンはクリックしません
- 詳細なカスタムプロンプトを入力します(Q4 に基づく)
- 確認して送信します
- 完了するまで待たないでください。生成が開始されたことを確認し、ユーザーに知らせて処理を終了します
カスタムプロンプトの例(4種類の出力)
音声の概要:
「研究者と経験豊富な実務者による、2人での対話形式。対象者:予算を決定する、技術に詳しくない経営幹部。長さ:8~10分。技術的な詳細ではなく、ビジネスへの影響に焦点を当てる。主要な論点ごとに、具体例を1つ含める。反論には簡潔に触れる。」
インフォグラフィック:
「意思決定ツリー形式。行動重視(各パネルの最後に判断または行動を示す)。パネルは最大6つ。モノクロのネイビー+アンバーのハイライト。各パネルには、タイトル(4~6語)、本文(1~2文)、判断/行動の行を含める。内容の薄いパネルは設けない。」
学習ガイド:
「学部レベル(すべての専門用語を定義する)。構成:6つの概念×各4項目(定義/重要な理由/解答例1つ/練習問題3問)。練習問題は、想起ではなくブルームの高次思考(応用/分析)を問うものにする。」
スライド(スライドデッキ):
「スライドは最大12枚。各スライドの本文は1~2文。各スライドの発表者ノートには、具体例1つ、想定される聴衆からの反論1つ、その対処方法を含める。スライド本文では箇条書きを使わず、文章のみとする。最後に、行動喚起のスライドを1枚置く。」
詳しくは、references/studio_output_custom_prompts.md をご覧ください。
アクション4:新しいノートブックを作成する
- ホームページに移動する
- 「New notebook」をクリックする
- Q2のタイトルを設定する
- Q3の初期ソースを追加する(ソースの種類ごとにアクション2のサブフローを使用する)
- 自動要約の生成を待つ(これは同期処理で、通常は30秒未満で完了します)
- 最終状態のスクリーンショットを撮る
非同期処理に関する重要事項
非同期出力のルール: Studioでの生成(特に音声の概要は5~10分かかります)については、完了を待たないでください。ユーザーのセッションがタイムアウトします。
ワークフロー:生成をクリック → スクリーンショットで生成が開始されたことを確認 → ユーザーに「生成中です。準備ができ次第、NotebookLMから通知されます」と伝える → タスクを終了する。
これが実行して通知するパターンです。ソースの追加や自動要約(待機に十分な速さで完了します)とは異なります。
アクションごとに待機するか通知するかを判断するには、scripts/async_action_classifier.py を使用してください。
| アクション | 待機するか |
|---|---|
| ソースの追加(URL/テキスト/ファイル) | はい — 取り込み中のスピナーが消えるまで待つ(約5~30秒) |
| 読み取り/抽出(チャット) | はい — 応答まで3~5秒待つ |
| Studio:音声の概要 | いいえ — 実行して通知する(5~10分) |
| Studio:動画の概要 | いいえ — 実行して通知する(5~15分) |
| Studio:インフォグラフィック/スライド/マインドマップ | いいえ — 実行して通知する(2~5分) |
| Studio:学習ガイド/ブリーフィング文書/FAQ/フラッシュカード/クイズ | はい — 約30~60秒待つ |
| 新しいノートブックの作成 | はい — 自動要約を待つ(30秒未満) |
# Verdict + paste-ready notify message for any action
python3 scripts/async_action_classifier.py --action "video overview"
# -> Verdict: FIRE_AND_NOTIFY, estimated 5-15 minutes, with the exact
# "NOT waiting in this session" message to relay to the user
原則については、references/async_action_discipline.md をご覧ください。
スクリーンショットを先に撮る
NotebookLMは、UIが次の要因によって変わる動的なSPAです。
- アカウントのプラン(無料/Plus/Enterprise)
- 機能の段階的な提供(一部のStudio形式は、まだすべてのユーザーが利用できるとは限りません)
- 最近のUI変更(Googleは頻繁に製品を更新しています)
すべてのUI操作の前に、スクリーンショットを撮る必要があります。 理由は次のとおりです。
- 操作する前に、UIが想定どおりであることを確認する
- ログイン画面が表示されていないか、早い段階で確認する
- 想定外のレイアウト変更を検出する
- デバッグ用の監査証跡を残す
意味のあるUI操作の前には毎回、screenshot()(またはブラウザー自動化ツールの同等機能)を使用してください。
この原則については、references/browser_automation_canon.md をご覧ください。
クリックの前にfind()を使う
可能な限り、ピクセル座標より先にセマンティック要素ファインダーを使用してください。
- ✅
find(text="Audio Overview")→ 位置にかかわらず要素を返す - ❌
click(x=420, y=380)→ UIの配置が変わると動作しなくなる
セマンティックファインダーは小さなUI変更にも対応できますが、ピクセル座標は対応できません。
次の場合に限り、座標を使用してください。
- セマンティックなfind()で何も見つからない
- 要素に安定したテキスト、aria-label、data-attributeがない
- 視覚的な位置だけが信頼できる手掛かりである
出力をワークスペースに保存する
有用な情報を生成する読み取り/抽出アクションの場合:
- チャットの応答をきれいに抽出します(UI の余分な要素を取り除きます)
- 読みやすく整形します(必要に応じて段落、リスト、コードブロックなどを使用します)
- ユーザーから依頼された場合 → ファイルに保存します(
${WORKSPACE}/notebooklm/<notebook-slug>-<action>-<date>.md) - それ以外の場合 → 最終的な要約としてチャットで返します
Studio の出力の場合:
- NotebookLM が出力をホストします(Audio Overview はアプリ内、Infographic はダウンロード可能など)
- 場所(URL またはアプリ内の移動経路)をユーザーに知らせます
- Studio の出力をローカルワークスペースにダウンロード/保存しようとしないでください。それは NotebookLM の役割です
結果の報告形式
アクションの完了後:
- 視覚的に関係する場合は、最後のスクリーンショットを撮ります
- 簡潔な要約を提示します(チャットの生ログは提示しません)。
- 使用したノートブック(名前)
- 実行したアクション(具体的に)
- 結果(1〜2 文)
- 出力を生成した場合:作成したもの、場所、準備が整うタイミング
- 実行後に通知するアクションの場合:「準備が整うと NotebookLM から通知されます」と明示します
エラー処理
| 失敗 | 対応 |
|---|---|
| ブラウザー自動化を利用できない | 「このスキルにはブラウザー自動化が必要です」というメッセージを表示して、すぐに中止します(ステップ 0 で停止) |
| ログイン画面が表示された | 停止します。ユーザーにログインするよう伝えます。自動ログインは試みません。 |
| 名前に一致するノートブックが複数ある | ホームページのスクリーンショットを撮り、候補を列挙して、ユーザーに指定を求めます |
| ソース取り込み時のスピナーが 60 秒を超えて停止している | タイムアウトを伝え、再試行するかユーザーに尋ねます |
| パネル内に Studio ボタンが見つからない | 下にスクロールするか、「Discover more」を探します。それでも見つからない場合は、このアカウントで機能が有効になっていない可能性があることを伝えます |
| チャットの応答が 10 秒以内に表示されない | スクリーンショットを撮り、エラー状態を確認して、一度だけ再試行します |
| ページレイアウトが予期せず変わった | スクリーンショットを撮り、表示内容を説明して、ユーザーに指示を求めます |
ツール
| スクリプト | 役割 |
|---|---|
scripts/action_router.py | Q1〜Q4 の回答 → アクションプラン+UI フロー+必須パラメーター |
scripts/custom_prompt_template_generator.py | Studio の出力タイプ+対象読者+長さ → カスタムプロンプトのひな形 |
scripts/async_action_classifier.py | アクション名 → 待機または通知のパターン(時間のかかる生成では実行後に通知) |
参考資料
references/browser_automation_canon.md— スクリーンショット優先+クリック前に検索+ツールに依存しないパターン(7 件以上の出典)references/studio_output_custom_prompts.md— デフォルト設定の品質が低い理由+出力タイプ別テンプレート(7 件以上の出典)references/async_action_discipline.md— UI 操作に時間がかかる場合の実行後通知パターン(7 件以上の出典)
避けるべきアンチパターン
- 抽象化せずに特定のツール名を使用する(例:「Claude Chrome Extension」をハードコードする)
- Studio の生成完了を同期的に待つ(特に Audio Overview)
- アクションの合間にスクリーンショットを撮らない
- semantic find() が利用できるのに、ピクセル座標を使用する
- ログインフローを自動で処理しようとする
- カスタマイズメニューを開かずに Studio の出力を生成する
- Studio のデフォルトプロンプトを使用する(必ずカスタムプロンプトを作成する)
バージョン: 1.0.0
ソース仕様: megaprompts/03-notebooklm-megaprompt.md(メンテナーのローカル草案仕様 — gitignore 対象のため、公開リポジトリには含まれていません)
ビルドパターン: パス B(直接変換)。ブラウザー自動化の形式であり、research-pack の規約とは異なります。