mcpField
D
download-gemini-images

download-gemini-images

github.com/daymadeクリエイティブ・メディア1.5k330 回インストール今日更新
リポジトリ

download-gemini-images について

ログイン済みの Chrome セッションから Gemini の会話画像をダウンロードするスキルです。会話内の画像収集に使え、大きなライトボックス画像を優先し、失敗時はページプレビューを取得して ZIP にまとめます。

主な機能

  1. 01ログイン済み Chrome セッションの利用
  2. 02会話内のライトボックス画像を取得
  3. 03画像ファイルを順番に命名
  4. 04プレビューアセットへのフォールバック
  5. 05ZIP の作成と検証

活用シーン

  1. 01Gemini の会話からアップロード画像を保存
  2. 02会話の順序に沿って画像を整理
  3. 03ライトボックス取得失敗時にプレビュー抽出
  4. 04画像をまとめてアーカイブを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/daymade/claude-code-skills --skill download-gemini-images

インストール後、Claude Code で/download-gemini-imagesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
scripts/
download_gemini_images.mjs
package_images.sh

詳細

Gemini 画像のダウンロード

概要

ログイン済みのユーザーの Chrome セッションから、Gemini の会話画像をダウンロードします。Gemini では、ユーザーがプレビューを開いた後にのみ、より大きな blob: 画像が公開されることが多いため、サムネイルやページプレビューのアセットよりライトボックス画像を優先してください。

ワークフロー

  1. 新しい未認証のブラウザーではなく Chrome プラグインを使用してください。Gemini の会話には通常、ユーザーの既存の Google セッションが必要です。
  2. Chrome スキルに従って Chrome を起動し、Gemini のタブがすでに開いている場合はそれを取得するか、ユーザーから提供された Gemini の URL を Chrome で開いてください。
  3. browser が利用可能になったら、node_repl の JS 呼び出しから scripts/download_gemini_images.mjs をインポートして実行してください。
  4. scripts/package_images.sh で出力ディレクトリをパッケージ化してください。
  5. ZIP のパス、画像の数、および低解像度のフォールバックを使用した場合はその旨を報告してください。
  6. ダウンロードが完了したら Chrome の操作を終了してください。適切な場合は、ユーザーが最初に開いていた Gemini のタブを開いたままにしてください。

メインスクリプト

スキルディレクトリを基準にスクリプトのパスを解決し、Chrome の自動操作に使用しているものと同じ Node REPL セッションでインポートしてください。

var { downloadGeminiImagesFromChrome } = await import("/absolute/path/to/download-gemini-images/scripts/download_gemini_images.mjs");
var result = await downloadGeminiImagesFromChrome({
  browser,
  tabUrlIncludes: "gemini.google.com/app",
  expectedCount: 20,
  outputDir: `${nodeRepl.homeDir}/Downloads/gemini_conversation_images_${new Date().toISOString().slice(0, 10).replaceAll("-", "")}`
});
nodeRepl.write(JSON.stringify(result, null, 2));

ユーザーが具体的な件数を指定した場合にのみ expectedCount を設定してください。表示されている Show the uploaded image in a lightbox ボタンをすべてダウンロードする場合は、省略してください。

パッケージ化

メインスクリプトが outputDir を返したら、次を実行してください。

/absolute/path/to/download-gemini-images/scripts/package_images.sh "$outputDir" "$HOME/Downloads/gemini_conversation_images.zip"

パッケージ化スクリプトは ZIP を作成し、zip -T を実行して、アーカイブにディレクトリと同じ順序で同じ画像ファイルが含まれていることを確認します。

フォールバック

ライトボックスの自動操作に失敗してもページが目視で読み込まれている場合は、タブの pageAssets 機能を使用してください。

var pageAssets = await tab.capabilities.get("pageAssets");
var inventory = await pageAssets.list();
var uploaded = inventory.assets.filter(a => a.kind === "image" && a.url.includes("lh3.googleusercontent.com/gg/"));
var bundle = await pageAssets.bundle({ inventoryId: inventory.id, assetIds: uploaded.map(a => a.id) });
nodeRepl.write(JSON.stringify(bundle, null, 2));

通常、こちらで取得できるのは 512px のプレビュー JPEG であり、より大きなライトボックス画像ではありません。このフォールバックを使用した場合は、ユーザーに伝えてください。

注意事項

  • ブラウザーの Cookie、ローカルストレージ、パスワード、セッションストアを調べないでください。
  • ファイルのダウンロードは受信転送であり、それ自体について確認を求める必要はありません。
  • Gemini からログインを求められた場合は、一時停止し、Chrome でログインを完了するようユーザーに依頼してください。
  • スレッドと同じ順序で画像を並べたい場合は、スクリプトの順序付きファイル名(image_01.jpg、image_02.jpg など)を使用してください。

コメント