mcpField
I
image-fetcher

image-fetcher

github.com/interstellar-codeクリエイティブ・メディア1762 回インストール39 週間前に更新
リポジトリ

image-fetcher について

image-fetcher は、URL から画像を個別または一括で取得する Claude 向けスキルです。一般的な画像形式を判別し、文書への埋め込みなどに使うファイルを保存します。

主な機能

  1. 01URLから画像を1枚ダウンロード
  2. 02テキストまたはJSONのURLを一括取得
  3. 03サーバーの応答から画像形式を判定
  4. 04保存先とダウンロード結果を表示
  5. 05存在しない出力ディレクトリを作成

活用シーン

  1. 01画像をダウンロードして文書に埋め込む
  2. 02複数のWeb画像をギャラリーに保存
  3. 03Webサイトからロゴを取得

インストール

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

$npx skills add https://github.com/interstellar-code/claud-skills --skill image-fetcher

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

同梱ファイル

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

requirements.txt
scripts/
fetch_image.py
fetch_images_batch.py

詳細

画像取得スキル

このスキルを使うと、Claude は複数の画像形式に対応し、一括ダウンロードもできるようになり、インターネットから画像を取得してダウンロードできます。

このスキルを使うタイミング

次のようなリクエストがあったときに、このスキルを使います。

  • 特定の URL から画像をダウンロードする
  • ドキュメントに埋め込む画像をウェブから取得する
  • インターネット上の画像をローカルに保存する
  • 複数の画像を一括ダウンロードする
  • 事前にダウンロードが必要な画像を変換または処理する

対応する画像形式

このスキルは、次の形式を自動的に検出して処理します。

  • JPG/JPEG
  • PNG
  • GIF
  • WebP
  • BMP
  • SVG
  • ICO
  • TIFF/TIF

主なワークフロー

画像を1枚ダウンロードする

URL から画像を1枚ダウンロードするには、次のようにします。

python scripts/fetch_image.py <image_url> [output_directory] [filename]

パラメーター:

  • image_url(必須):ダウンロードする画像の URL
  • output_directory(任意):画像の保存先ディレクトリ(デフォルトは現在のディレクトリ)
  • filename(任意):保存する画像のカスタムファイル名(デフォルトは URL のファイル名)

例:

# Basic download to current directory
python scripts/fetch_image.py https://example.com/photo.jpg

# Download to specific directory
python scripts/fetch_image.py https://example.com/photo.jpg ./downloads

# Download with custom filename
python scripts/fetch_image.py https://example.com/photo.jpg ./downloads myimage.jpg
画像を一括ダウンロードする

URL のリストから複数の画像をダウンロードするには、次のようにします。

python scripts/fetch_images_batch.py <urls_file> [output_directory]

入力ファイルの形式:

  1. 1行につき URL が1つ記載されたテキストファイル
  2. URL の配列を含む JSON ファイル:["url1", "url2", ...]

例:

# Download from text file
python scripts/fetch_images_batch.py urls.txt

# Download to specific directory
python scripts/fetch_images_batch.py urls.json ./images

# Create a URL list on the fly
echo -e "https://example.com/img1.jpg\nhttps://example.com/img2.png" > urls.txt
python scripts/fetch_images_batch.py urls.txt ./downloads

一括ダウンロードスクリプトは、各ダウンロードの詳細な結果を記録した fetch_results.json ファイルを作成します。

Claude のワークフローとの統合

ドキュメントへの埋め込み

ドキュメント(DOCX、PPTX など)に埋め込む画像を取得する場合:

  1. 画像を一時的な場所にダウンロードします
  2. 返されたファイルパスを使って、ドキュメントに画像を埋め込みます
  3. 必要に応じて一時ファイルを削除します
# Download image
python scripts/fetch_image.py https://example.com/chart.png /home/claude/temp

# The script outputs the full path which can be used for embedding
# Example output: /home/claude/temp/chart.png
チャットでの表示

チャットに表示する画像をダウンロードする場合:

  1. /mnt/user-data/outputs/ ディレクトリにダウンロードします
  2. ダウンロードした画像へのリンクをユーザーに提供します
python scripts/fetch_image.py https://example.com/image.jpg /mnt/user-data/outputs
検索との統合

ウェブ検索と組み合わせる場合:

  1. web_search ツールを使って画像を検索します
  2. 検索結果から画像 URL を抽出します
  3. このスキルを使って画像をダウンロードします

エラー処理

スクリプトは、次のような一般的な状況に対応します。

  • 無効な URL
  • ネットワークタイムアウト
  • 対応していない形式
  • 権限エラー
  • ディレクトリが存在しない場合(自動作成)

ダウンロードに失敗した場合は、明確なエラーメッセージで報告します。

出力情報

ダウンロードが成功すると、次の情報が提供されます。

  • 保存先ファイルの完全なパス
  • ファイルサイズ(KB)
  • サーバーからの Content-Type
  • 成功の確認

ベストプラクティス

  1. ダウンロードを試みる前に、必ず URL を検証します
  2. 効率を高めるため、複数の画像には一括ダウンロードを使います
  3. ダウンロードを適切に整理するため、出力ディレクトリを指定します
  4. ファイル拡張子を確認します。URL に拡張子がない場合、スクリプトはヘッダーから形式を自動検出します
  5. エラーに適切に対処し、ダウンロードに失敗した場合はユーザーに知らせます

よくある使用例

使用例 1:プレゼンテーションにウェブ画像を埋め込む

# User: "Add this chart to my presentation: https://data.com/chart.png"
python scripts/fetch_image.py https://data.com/chart.png /home/claude/temp
# Then use the path to embed in PPTX

使用例 2:URL から画像ギャラリーを作成する

# User: "Download these product images and save them"
# Create urls.txt with image URLs
python scripts/fetch_images_batch.py urls.txt /mnt/user-data/outputs/gallery

使用例 3:ブランディング用にロゴをダウンロードする

# User: "Get the company logo from their website"
python scripts/fetch_image.py https://company.com/logo.svg /home/claude/assets logo.svg

技術上の注意

  • ブロックされないよう、適切なヘッダーを設定して requests ライブラリを使用します
  • メモリーを効率的に使えるよう、大きなファイルはストリーミングします
  • ダウンロードごとのタイムアウトは30秒です
  • Content-Type の自動検出と拡張子のマッピングに対応します
  • 出力ディレクトリが存在しない場合は自動的に作成します

コメント