テクノロジー 注目度 85

Geminiの会話をObsidianに自動保存するPythonツール開発記(失敗だらけの道のり)

この記事は、Google AI Geminiの会話データを手動でObsidianに保存する作業を自動化するPythonツールの開発過程とその失敗談をまとめたものです。

作者は、Geminiの会話をObsidianに統合することで、メモやコード、調査メモなどを検索・リンクしやすくしたいと考えてツールを作りました。しかし、ブラウザ起動、画像クリック、ダウンロード処理など、想定外の挙動に何度も苦戦しました。

特に、既存Chromeとの連携、2画面での画像認識、ファイル名のリネームなどの問題で苦労したようです。最終的には、ユーザーがChromeを開き、ツールはCDP接続とキー・クリック操作のみを行う設計に変更し、失敗から学びながら安定稼働を実現しました。

この経験を通して、ブラウザ自動化ツールの開発において、ユーザー任せの起動とツール側での接続・操作というシンプルな設計がトラブルを減らす効果があることを実感したそうです。


背景

GeminiはGoogleが開発したAIチャットボットであり、アイデア出しやコードの下書きなど様々な用途で使用できます。Obsidianはローカルに保存されるメモ管理アプリで、リンクや検索機能を活用することで知識ベース構築に役立ちます。このツールは、Geminiの会話データをObsidianに自動的に保存し、より効率的な情報管理を可能にすることを目的として開発されました。

重要用語解説

Playwright: Webブラウザを自動操作するためのライブラリ。Chromium、Firefox、WebKitなどの主要なブラウザに対応しています。

[重要性: 高] [具体例: このツールでは、Geminiのウェブサイトにアクセスし、会話データを取得するために使用]

CDP (Chrome DevTools Protocol): Google Chromeの開発者向けツールであるDevToolsが提供するAPI。外部アプリケーションからChromeを操作したり監視したりするためのプロトコルです。

[重要性: 高] [具体例: このツールでは、既に起動しているChromeに接続し、会話データを取得するために使用]

pyautogui: PythonでWindowsやmacOSの画面上の要素をクリック、キー入力などを自動化するライブラリです。

[重要性: 中] [具体例: このツールでは、Geminiのウェブサイト上で「エクスポート」ボタンをクリックしたり、ファイルを選択する操作などに使用]

OpenCV: 画像処理とコンピュータビジョンのためのオープンソースライブラリ。画像認識や物体検出など様々な機能を提供しています。

[重要性: 中] [具体例: このツールでは、Geminiのウェブサイト上の「エクスポート」ボタンを画像検索してクリックする際に使用]

watchdog: Pythonでファイルシステムの変化を監視するためのライブラリ。ファイルが作成されたり削除されたりするイベントを検知し、それに応じた処理を実行できます。

[重要性: 低] [具体例: このツールでは、ダウンロードフォルダに新しいファイルが出現したときにそれをObsidianの指定フォルダへ移動する際に使用]

今後の影響

このツールは、GeminiとObsidianを連携させることで、より効率的な情報管理を実現します。開発者の経験から、ブラウザ自動化ツールの開発においてユーザー任せの起動とツール側での接続・操作というシンプルな設計がトラブルを減らす効果があることが示唆されます。今後、同様のツールが他のサービスやアプリケーション間で活用され、情報共有や作業効率向上に貢献することが期待できます。