extract-project-logo について
extract-project-logo は、ウェブサイトなどからプロジェクトの公式ロゴを探して保存するスキルです。ブランド素材を整理する用途向けで、高品質なベクター形式と公式リソースを優先します。
主な機能
- 01公式ブランド・メディア素材の検索
- 02リポジトリやウェブサイトからのロゴ抽出
- 03SVGなどベクター形式の優先
- 04ファイルのダウンロードと検証
- 05出典とファイル情報のレポート作成
活用シーン
- 01プロジェクトの公式ロゴ収集
- 02動的ウェブサイトからのロゴ抽出
- 03テーマ別・アイコン版の整理
- 04ロゴの出典と保存先の記録
MCP 対応
動的サイトを読み込み、レンダリング後の DOM からロゴを抽出するために MCP Playwright を使う手順が記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tradingstrategy-ai/ web3-ethereum-defi --skill extract-project-logoインストール後、Claude Code で/extract-project-logoを入力して読み込まれたか確認します。
詳細
プロジェクトのロゴを抽出する
このスキルでは、プロジェクトのウェブサイトや関連するソースから公式ロゴを抽出します。高品質なベクター形式と公式ブランドアセットを優先します。
必要な入力
開始する前に、ユーザーから以下の情報を収集してください。
- ウェブサイトの URL - プロジェクトのメインウェブサイト(例:
https://example.com) - 保存先パス - ロゴを保存するローカルファイルシステムのパス(例:
./logos/example-logo.svg) - 形式の希望(任意) - 希望する形式:SVG(推奨)、PNG、または任意
必須の入力が不足している場合は、作業を進める前にユーザーに確認してください。
すべてのプロジェクトロゴを対象フォルダーに保存します。バリエーションの選定と後処理は後で行います。
ダーク版とライト版のロゴファイルの命名方法に、普遍的な標準はありません。この場合、常に次のように定義します。
light:暗色または透明な背景に、明るい色(白)のテキストdark:白または透明な背景に、暗い色(黒)のテキスト
以下の用語を使用します。
- ブランドマーク:ロゴマークと同じで、ブランド名のテキストを含まないロゴ
- ワードマーク:ブランド名のテキストを含むロゴ
ステップ 1:ブランドキットまたはメディアリソースを検索する
最高品質のロゴは、通常、公式のブランド/メディアキットにあります。次のページを検索してください。
-
ウェブサイトにアクセスし、フッターやヘッダーにある次のリンクを探します。
- 「Brand」、「Brand Kit」、「Brand Assets」、「Brand Guidelines」
- 「Media」、「Media Kit」、「Press」、「Press Kit」
- 「Resources」、「Downloads」、「Assets」
-
よく使われる URL のパターンを試します。
{base_url}/brand{base_url}/brand-kit{base_url}/media{base_url}/press{base_url}/assets{base_url}/resources
-
ブランドキットが見つかった場合:
- ダウンロード可能なロゴパッケージ(ZIP ファイルの場合が多い)を探します
- ラスター画像より SVG またはベクター形式を優先します
- 複数の選択肢がある場合は、最も正方形に近いロゴのバリエーションを選びます
- ライトテーマとダークテーマの両方がある場合は、両方を取得します
- カラフルなバリエーションがある場合は、それも取得します
適切なロゴが含まれるブランドキットが見つかった場合は、ステップ 5 に進みます。
ステップ 2:GitHub リポジトリを確認する
多くのプロジェクトは、GitHub リポジトリでロゴを公開しています。
-
プロジェクトの GitHub リポジトリを探します(ウェブサイトのフッターやヘッダーにリンクされていることがよくあります)
-
次のよく使われる場所を検索します。
/assets/または/images/ディレクトリ/branding/または/brand/ディレクトリ/public/ディレクトリ(ウェブアプリの場合)/docs/または/documentation/ディレクトリ- ルートディレクトリ(README のバッジ、ロゴファイル)
-
README.md に埋め込まれたロゴを確認します。
<img>タグまたは Markdown の画像構文を探します- 高品質なロゴファイルを参照していることがよくあります
-
次の名前のファイルを検索します。
logo.svg、logo.png、logo-*.svg{project-name}.svg、{project-name}-logo.*brand.*、icon.*
適切なロゴが見つかった場合は、ステップ 4 に進みます。
ステップ 3:ウェブサイトから直接抽出する
ブランドキットや GitHub のアセットが利用できない場合は、ウェブサイトからロゴを抽出します。
オプション A:MCP Playwright を使用する(動的なサイトに推奨)
MCP Playwright ツールを使用して、次の操作を行います。
-
ホームページにアクセスします
-
ヘッダー内のロゴ要素(通常は左上)を探します。
- クラス名または ID に「logo」を含む
<img>タグを検索します - ヘッダー内に
<svg>要素があるか確認します role="img"とロゴ関連の aria ラベルを持つ要素を探します
- クラス名または ID に「logo」を含む
-
画像のソース URL または SVG の内容を抽出します
オプション B:メタタグとファビコンを確認する
-
Open Graph 画像 -
<meta property="og:image">タグを確認します- ソーシャル共有に適した高品質な画像であることがよくあります
- ブランド要素が含まれている場合があります
-
ファビコン - 高解像度のファビコンを確認します。
<link rel="icon" type="image/svg+xml">(最適 - ベクター)<link rel="apple-touch-icon">(通常は 180x180 の PNG)/favicon.ico(低解像度のため、最終手段)
-
Twitter Card 画像 -
<meta name="twitter:image">を確認します
ステップ 4:Twitter から抽出する
プロジェクトの Twitter(X.com とも呼ばれます)のアバター画像からロゴを取得します。
ステップ 5:CoinGecko から取得する
CoinGecko からプロジェクトのロゴを取得します。
ステップ 6:ダウンロードして保存する
-
SVG ファイルの場合:
- 生の SVG コンテンツをダウンロードします
- ファイルが有効な XML であることを確認します
.svg拡張子で保存します
-
ラスター画像(PNG など)の場合:
- 入手可能な最高解像度の画像をダウンロードします
- ダウンロード後にファイルの整合性を確認します
- 適切な拡張子で保存します
-
保存したファイルを確認する:
- ファイルを開いて、正しく表示されることを確認します
- ファイルサイズが妥当であることを確認します(0 バイトや破損がないこと)
ダウンロード方法
curl を使用する場合:
curl -o "{save_path}" "{logo_url}"
Python を使用する場合:
import requests
response = requests.get("{logo_url}")
with open("{save_path}", "wb") as f:
f.write(response.content)
SVG コンテンツを直接抽出する場合:
with open("{save_path}", "w") as f:
f.write(svg_content)
ステップ 7:結果をユーザーに報告する
ユーザーに以下を伝えます:
- 取得元 - ロゴが見つかった場所(ブランドキットの URL、GitHub のパスなど)
- ファイルの詳細 - 形式、寸法(ラスター画像の場合)、ファイルサイズ
- 保存先のパス - ファイルを保存した場所を確認します
- 別バージョン - ほかのバリエーション(ダークモード、アイコンのみなど)がある場合は伝えます
ステップ 8:ロゴと同じ場所にレポートを Markdown ファイルとして保存する
- ロゴを保存したフォルダーに Markdown ファイルを作成します
- ユーザーへの報告と同じ情報を記載します
- 使用したウェブページ、ブランドページ、ブランドキットへのリンクを含めます
トラブルシューティング
ロゴが見つからない場合
適切なロゴが見つからない場合:
- プロジェクトが別のプライマリドメインを使用していないか確認します
- ソーシャルメディア(Twitter/X、LinkedIn)でプロジェクトを探します。プロフィール画像がロゴであることもよくあります
- 画像検索エンジンで「[プロジェクト名] logo」を検索します
- 暗号資産プロジェクトの場合は、DeFiLlama、CoinGecko などのアグリゲーターを確認します
- ほかの入手先や問い合わせ先がないか、ユーザーに尋ねます
動的に生成されるロゴ/JavaScript で描画されるロゴ
ロゴが JavaScript で描画される場合:
- MCP Playwright を使用してページを完全に読み込みます
- 動的コンテンツが描画されるまで待ちます
- 描画された DOM から抽出します
ロゴの取得に認証が必要な場合
ブランドアセットへのアクセスにログインが必要な場合:
- ユーザーにその旨を伝えます
- ブランドキットのページの URL を提示します
- 手動でダウンロードするか、(適切であれば)認証情報を提供するようユーザーに依頼します