💡

Claude Code Web版 で NotebookLM 連携に挑んでみた話

に公開

はじめに

セキュリティ関連の記事ばかり書いている @___nix___ でしたので AI関連 も遅れずに行きます。

背景

Claude CodeにはCLI版とWeb版が存在しますが、Web版は環境構築不要でブラウザから即座にアクセスできる利便性がある一方、セキュリティやサンドボックス環境の制約により機能に制限があることが予想されます。

しかし、実際の開発作業において、これらの制限がどの程度影響するのか、また工夫次第で回避可能なのかは未知数です。

そこで今回、外部サービス(Google NotebookLM)との連携が必要なスキルをWeb版でセットアップすることで、Web版の実用性と限界を検証しました。

概要

NotebookLMスキル( PleasePrompto/notebooklm-skill )を使用して、Claude Code Web版の特性を検証しました。このスキルは、Google NotebookLMと連携してドキュメント検索を行うブラウザ自動化ツールです。

https://github.com/PleasePrompto/notebooklm-skill

検証内容

  • 認証セットアップ(環境構築、Googleアカウント認証)
  • ノートブック管理(登録、質問機能の実行)

主な発見: Web版では外部ネットワークアクセスとGUI操作に制約があるものの、ローカル環境で作成した認証ファイルをインポートすることで、セットアップ作業の大部分を完了できることが分かりました。詳細なやり取りは次章で説明します。

ケツロン

Claude Code Web版では信頼されたサイトとして NotebookLM が許可されていないのでこの試みは失敗に終わります。ですが、Claude Code CLI版では NotebookLM との連携は簡単にできますので「連携に興味があるんや!!」という方はここで退場して頂くことになります。(ごめんなさい、機会があったら連携方法の記事書きます)

詳細

1. 初期設定

チャットの最初で「この環境で以下のコマンドを実行してください」と依頼することで Skills が設定されます。

mkdir -p .claude/skills
cd .claude/skills
git clone https://github.com/PleasePrompto/notebooklm-skill notebooklm

2. NotebookLM認証のセットアップ

試行内容

次は「NotebookLM 認証のセットアップをしてください」と依頼し、エージェントの作業は次の結果となりました。

  1. 初回セットアップ実行python scripts/run.py auth_manager.py statusを実行
    • 仮想環境の自動作成
    • 依存関係の自動インストール
    • Google Chromeの自動インストール
    • 認証ステータス確認: 認証なし
  2. 認証セットアップ試行python scripts/run.py auth_manager.py setupを実行
    • 失敗: X Serverが利用できないためブラウザウィンドウを開けない
    • エラー: Missing X server or $DISPLAY
  3. 代替案の試行: xvfb(仮想ディスプレイ)を使用
    • 失敗: ネットワーク接続の制限によりnotebooklm.google.comにアクセス不可
    • エラー: net::ERR_NAME_NOT_RESOLVED

解決方法

NotebookLM認証が成功すると、 .claude/skills/notebooklm/data/browser_state/ 以下にファイルやディレクトリが作成されるので、別の環境で認証済みのファイルやディレクトリを zip で圧縮して提供してみます。

ローカル環境で作成した認証ファイルをインポート

  • ユーザーがローカル環境で認証を完了し、browser_profile.zipを作成
  • GitHubブランチ経由でzipファイルを提供
  • git showコマンドでブランチから直接ファイルを取得
  • /home/user/claude-code-web/.claude/skills/notebooklm/data/browser_state/に解凍
  • 配置されたファイル:
    • state.json (8.8KB) - 認証クッキーとセッション情報
    • browser_profile/ (ディレクトリ) - ブラウザプロファイル

結果

✅ 認証成功Authenticated: Yes (State age: 11.4 hours)

これにより NotebookLM の認証工程が完了です。

3. ノートブック追加と質問

試行内容

  1. ライブラリ確認python scripts/run.py notebook_manager.py list

    • 結果: ライブラリは空
  2. スマート追加を試行: ノートブックURLから内容を自動取得して追加

    python scripts/run.py ask_question.py \
      --question "このノートブックには何が含まれていますか?" \
      --notebook-url "https://notebooklm.google.com/notebook/********"
    
    
    • 失敗: ネットワーク接続の制限により実行不可
    • エラー: net::ERR_NAME_NOT_RESOLVED

解決方法

手動でメタデータを提供してノートブックを追加

  • ユーザーから情報を取得:

    • ノートブック名: 進化するPMI標準とPMBOK第7版
    • 概要: 進化するPMI標準とPMBOK第7版
    • トピック: PMBOK,PM,第7版
  • コマンド実行:

    python scripts/run.py notebook_manager.py add \
      --url "https://notebooklm.google.com/notebook/********" \
      --name "進化するPMI標準とPMBOK第7版" \
      --description "進化するPMI標準とPMBOK第7版に関する情報とドキュメント" \
      --topics "PMBOK,PM,第7版"
    

結果

✅ ノートブック追加成功:

  • ID: 進化するpmi標準とpmbok第7版
  • ステータス: [ACTIVE] (デフォルトノートブックとして設定)
  • 使用回数: 0回

質問機能の試行失敗: PMBOK第7版の概要を質問

  • 失敗: ネットワーク接続の制限により実行不可
  • 代替: Claude Codeの知識ベースから回答を提供

ノートブックへの追加は成功に見えたが、質問をするとネットワーク制限により失敗。

まとめ

今回の試行でできなかったことは以下の通り。

❌ できなかったこと

  1. GUI操作
    • X Serverが利用できないため、ブラウザウィンドウの表示不可
    • 手動でのGoogleログインが必要な認証セットアップができない
  2. 外部ネットワークアクセス
    • notebooklm.google.comへのアクセス不可
    • NotebookLMへの質問送信ができない
    • ノートブックコンテンツの自動取得ができない
  3. ブラウザ自動化
    • Playwright/Patchrightを使ったブラウザ操作ができない
    • NotebookLMスキルのコア機能(質問機能)が使えない

終わりに

実は Claude Code 環境は以下の3つが用意されており、今回は「フルネットワークアクセス」を利用しました。

ですが、今回の試行は失敗に終わったわけですが、答えは以下にあります。

信頼できるソース

Google系で信頼されている、つまり許可されているドメインは以下の通り。

  • cloud.google.com
  • accounts.google.com
  • gcloud.google.com
  • *.googleapis.com
  • storage.googleapis.com
  • compute.googleapis.com
  • container.googleapis.com

それはネットワーク制限で接続できないわけです(笑)

notebooklm.google.com がその内許可されると良いと思いつつ、バッドノウハウ的な NotebookLM認証設定 をしてしまっているので余り奨励できないやり方でしたね。

一言

Claude Code Web版 にも期待しています。
ローカルでは無い環境でどのような活用方法があるのかもしっかりとキャッチアップしていきたいですね。

「同情するならフォローして!」
@___nix___

Discussion