unsplash について
Unsplashの写真を検索・取得するシェルスクリプトのスキルです。画像候補と撮影者のクレジットが必要な作業に向き、実際のダウンロードも記録できます。
主な機能
- 01キーワードと条件で検索
- 02ランダム写真の取得
- 03写真ダウンロードの記録
- 04写真情報とクレジットの出力
活用シーン
- 01ブログ記事のメイン画像探し
- 02テーマ別写真ギャラリーの作成
- 03向きや色に合わせた写真選び
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cevatkerim/ skills --skill unsplashインストール後、Claude Code で/unsplashを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.env.example.gitignoreinstall.shREADME.mdexamples/usage-examples.mdscripts/random.shsearch.shtrack.shscripts/lib/common.sh詳細
Unsplash 写真検索
Unsplash から高品質な写真を検索・取得し、クレジット表記を自動で追加します。
クイックスタート
# Search for photos
./scripts/search.sh "sunset beach"
# Get random photos
./scripts/random.sh "nature" 3
# Track download (when user downloads)
./scripts/track.sh PHOTO_ID
セットアップ(対話形式)
重要: スクリプトが UNSPLASH_ACCESS_KEY not set を返した場合は、対話形式で対応してください。
-
ユーザーに次のように尋ねます:「写真を検索するには Unsplash API キーが必要です。https://unsplash.com/developers から無料のキーを取得できます。お持ちですか?」
-
ユーザーがキーを提供するまで待ちます。
-
プロジェクトのルートにある
.envにキーを保存します。echo "UNSPLASH_ACCESS_KEY=<user_provided_key>" >> .env -
元の検索/ランダム取得コマンドを再実行します。
このスキルは、実行のたびにプロジェクトのルートから .env を自動的に読み込みます。
操作
1. 写真を検索
キーワードで写真を検索します。任意のフィルターを指定できます。
./scripts/search.sh QUERY [PAGE] [PER_PAGE] [ORDER_BY] [ORIENTATION] [COLOR]
パラメーター:
QUERY(必須):検索キーワードPAGE(任意、デフォルト:1):ページネーションのページ番号PER_PAGE(任意、デフォルト:10):ページあたりの結果数(1~30)ORDER_BY(任意、デフォルト:"relevant"):並び順("relevant" または "latest")ORIENTATION(任意):向きで絞り込み("landscape"、"portrait"、"squarish")COLOR(任意):色で絞り込み("black_and_white"、"black"、"white"、"yellow"、"orange"、"red"、"purple"、"magenta"、"green"、"teal"、"blue")
例:
# Basic search
./scripts/search.sh "mountain landscape"
# Search with filters
./scripts/search.sh "sunset" 1 5 latest landscape
# Search by color
./scripts/search.sh "flower" 1 10 relevant portrait red
2. ランダムな写真
任意のフィルターを適用して、ランダムな写真を取得します。
./scripts/random.sh [QUERY] [COUNT] [ORIENTATION]
パラメーター:
QUERY(任意):ランダムな写真を絞り込むトピック/キーワードCOUNT(任意、デフォルト:1):写真の枚数(1~30)ORIENTATION(任意):向きで絞り込み("landscape"、"portrait"、"squarish")
例:
# Single random photo
./scripts/random.sh
# Random photos by topic
./scripts/random.sh "architecture" 5
# Random landscape photos
./scripts/random.sh "nature" 3 landscape
3. ダウンロードを記録
ユーザーが写真をダウンロードした際に記録します(Unsplash API のガイドラインで必須です)。
./scripts/track.sh PHOTO_ID
呼び出すタイミング:
- ユーザーが実際に画像ファイルをダウンロード/保存したとき
- 写真を表示または閲覧しただけの場合は呼び出しません
- 写真家がダウンロードに対するクレジットを得られるようにします
例:
./scripts/track.sh "abc123xyz"
出力形式
すべての操作は、写真の完全な情報を含む JSON を返します。
{
"id": "abc123xyz",
"description": "A beautiful sunset over mountains",
"alt_description": "orange sunset behind mountain range",
"urls": {
"raw": "https://...",
"full": "https://...",
"regular": "https://...",
"small": "https://...",
"thumb": "https://..."
},
"width": 6000,
"height": 4000,
"color": "#f3a460",
"blur_hash": "L8H2#8-;00~q4n",
"photographer_name": "Jane Smith",
"photographer_username": "janesmith",
"photographer_url": "https://unsplash.com/@janesmith?utm_source=claude_skill&utm_medium=referral",
"photo_url": "https://unsplash.com/photos/abc123xyz?utm_source=claude_skill&utm_medium=referral",
"attribution_text": "Photo by Jane Smith on Unsplash",
"attribution_html": "Photo by <a href=\"https://unsplash.com/@janesmith?utm_source=claude_skill&utm_medium=referral\">Jane Smith</a> on <a href=\"https://unsplash.com/?utm_source=claude_skill&utm_medium=referral\">Unsplash</a>"
}
画像 URL
urls オブジェクトには、さまざまなサイズの画像が含まれます。
- raw:未加工のオリジナル画像
- full:フル解像度(幅/高さの上限:5472px)
- regular:ウェブ表示用サイズ(幅1080px)
- small:サムネイル(幅400px)
- thumb:小さなサムネイル(幅200px)
推奨: ほとんどのウェブコンテンツでは、urls.regular を使用してください(画質とサイズのバランスが最適です)。
クレジット表記の要件
重要: Unsplash では、すべての画像の使用にクレジット表記が必要です。
クレジット表記を必ず含める
写真をユーザーに提示するときは、次のいずれかを必ず含めてください。
-
attribution_text(プレーンテキストの場合):
Photo by Jane Smith on Unsplash -
attribution_html(HTML/ウェブの場合):
Photo by <a href="...">Jane Smith</a> on <a href="...">Unsplash</a>
配置ガイドライン
- 画像の近く(画像の下またはキャプション内)にクレジット表記を配置します
- 見やすく、読みやすい状態にします
- クレジット表記を削除したり、非表示にしたりしないでください
- クレジット表記は Unsplash API の利用規約で必須です
クレジット表記が重要な理由
- 写真家にクレジットを付与できます
- Unsplash API の利用規約で義務付けられています
- クレジット表記に違反すると、API アクセスが停止される場合があります
よくあるワークフロー
ブログ記事のヒーロー画像
# Search for relevant image
./scripts/search.sh "technology workspace" 1 3 latest landscape
# Present options to user with attribution
# User selects one
# Display image with attribution_html in blog post
ランダム画像のギャラリー
# Get variety of images
./scripts/random.sh "travel" 10
# Display all images with their attributions
特定のカラーパレット
# Search for images matching brand colors
./scripts/search.sh "abstract" 1 5 latest "" blue
エラー処理
API キーがありません:
ERROR: UNSPLASH_ACCESS_KEY not set
→ 上記の「セットアップ(対話形式)」セクションを参照してください。ユーザーにキーを尋ね、.env に保存してから再試行します。
レート制限を超過しました:
ERROR: Rate limit exceeded (50/hour in demo mode)
1時間待つか、制限の高い本番用認証情報を使用してください。
API キーが無効です:
ERROR: Invalid API key
API キーが正しいことを確認してください。
結果がありません:
[]
検索条件に一致する写真がない場合は、空の配列が返されます。
依存関係
必要なツール(macOS/Linux の標準ツール):
bash- シェルインタープリターcurl- HTTP クライアントjq- JSON プロセッサー
jq がない場合はインストールしてください:
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
レート制限
- デモモード:1時間あたり50リクエスト
- 本番モード:1時間あたり5,000リクエスト
本番モードを使用するには、次の手順が必要です。
- Unsplash アプリを作成する
- Unsplash からアプリの承認を受ける
- 本番用アクセスキーを使用する
ベストプラクティス
- 具体的な検索語を使う - 検索語を具体的にすると、より良い結果が得られます
- 向きで絞り込む - レイアウトのニーズ(横向き/縦向き)に合わせます
- 必ずクレジット表記を含める - API の利用規約で必須です
- ウェブでは標準サイズを使う - 品質とパフォーマンスのバランスが最適です
- 実際のダウンロードを追跡する - ユーザーがダウンロードした場合にのみ track.sh を呼び出します
- 結果をキャッシュする - 同じキーワードを再検索しないでください
- レート制限を守る - デモモードでは使用状況を監視します
その他の例
詳しい使用パターンについては、examples/usage-examples.md を参照してください
トラブルシューティング
スクリプトを実行できない場合:
chmod +x scripts/*.sh
jq が見つからない場合:
brew install jq # macOS
API エラーの場合:
- インターネット接続を確認します
- API キーが正しく設定されていることを確認します
- レート制限を超えていないことを確認します
- photo_id が有効であることを確認します(track.sh の場合)
リンク
- Unsplash API ドキュメント:https://unsplash.com/documentation
- API キーを取得:https://unsplash.com/developers
- Unsplash ガイドライン:https://help.unsplash.com/en/articles/2511245-unsplash-api-guidelines