Unsplash

Unsplash APIとPythonで画像収集: 初心者向けガイド

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
デザイン本が読み放題

Figma・UI/UX・配色の深いノウハウを

動画・記事の断片情報より、1冊の体系書籍のほうが圧倒的に速い。Kindle Unlimited対象のデザイン書籍が豊富です。

Kindle Unlimited 30日無料▶ Audible|デザイン発想本を耳で▶

▶ デザイン→エンジニアリングの橋渡しに興味があれば プログラミング / エンジニア転職 もどうぞ。


タイプ別にすぐ選べる

クリエイティブの引き出し、どう増やす?

Figma・UI/UX・配色・タイポグラフィ。"手を動かす"学びと"発想力を磨く"学びは、使うサブスクが違います。

▷ Figma・UI/UX・配色の具体テクニックを体系化したい実務デザイナー

Kindle Unlimited 30日無料|デザイン本読み放題▶

▷ ブランド・発想・ディレクション系のインプットを"耳で"増やしたい人

オーディオブックAudible

※無料期間中の解約で料金発生なし

▶ デザイン→エンジニアリングの橋渡しに興味があれば プログラミング / エンジニア転職 もどうぞ。


スポンサードリンク

Unsplash APIとPythonの連携プロジェクトの概要

Unsplash APIは、高品質な画像を検索・取得できる無料のAPIサービスとして注目されています。特に猫画像データセット作成のような具体的な目的を持つプロジェクトでは、このAPIは効率的な画像収集手段となります。本記事では、Python初心者でも理解しやすい手順でUnsplash APIと連携する方法を解説します。
本記事で達成するゴールとして、APIキーの取得からOAuth認証までの流れ、実際の画像検索コードの作成、および利用規約に沿った使用法までを体系的にご紹介します。


APIキーの取得・管理方法

APIアクセスの前提となるAPIキー(Access Key)はセキュリティにおいて最も重要な要素です。その取得手順や管理方法について詳述します。

Unsplash公式サイトでのAPIキー発行手順

Unsplashでは、アプリケーションごとに一意のAPIキーが発行されます。以下に登録・取得手順を示します。

  1. https://unsplash.com/developersにアクセスし、「Get an API key」をクリック
  2. ユーザー登録(またはログイン)後、「Create New Application」を選択
  3. 必要事項(アプリケーション名、URLなど)を入力し、申請
  4. 承認後、APIキーが表示される

注意:APIキーは個人情報と同様に扱い、ソースコードやリポジトリに直接記載しないようにしてください。

セキュリティ上のベストプラクティス

  • ローカル環境では.envファイルなどに保存し、GitHubなどの外部共有は避ける
  • 環境変数を使用してAPIキーを暗号化する例(Pythonの場合):
    python
    import os
    UNSPLASH_ACCESS_KEY = os.environ.get('UNSPLASH_ACCESS_KEY')

注意:不適切な使用は利用規約に違反し、アカウント停止の原因になります


OAuth認証フローの詳細手順

Unsplash APIでは、一部の機能(ユーザー投稿へのコメントや書き込み)を使用するためにはOAuth認証が必要です。以下に認証フローをステップ形式で解説します。

アプリケーション登録と必要な情報を確認

OAuth認証を利用するには、以下の情報が必須です。

  • Client ID(アプリケーション識別子)
  • Client Secret(秘密鍵。第三者に漏らさない)
  • リダイレクトURL(例:https://example.com/callback

補足redirect_uriは認証後、ユーザーをリダイレクトするためのURLです。

アクセストークン取得の手順

  1. 認可コードを取得するため、以下のようなリクエストを行う
    GET https://unsplash.com/oauth/authorize
    ?client_id=YOUR_CLIENT_ID
    &redirect_uri=YOUR_REDIRECT_URI
    &response_type=code
    &scope=read_write

  2. ユーザーが認証後にリダイレクトされる

  3. codeパラメータからアクセストークンを取得
    python
    import requests

payload = {
'client_id': 'YOUR_CLIENT_ID',
'client_secret': 'YOUR_CLIENT_SECRET',
'grant_type': 'authorization_code', # 認証のタイプ(一時トークンからアクセス権付与)
'redirect_uri': 'YOUR_REDIRECT_URI',
'code': 'RETURNED_CODE'
}

response = requests.post('https://unsplash.com/oauth/token', data=payload)
access_token = response.json()['access_token']

補足grant_typeはOAuth 2.0認証で用いられるパラメータの一つで、このケースでは「Authorization Code」フローを採用しています。


画像検索・ダウンロードのPythonコードサンプル

Unsplash APIと連携する際、requestsライブラリを使用した基本的な構文を把握する必要があります。以下のコード例は、search_cat_images関数を通じて猫画像を取得する方法です。

requestsライブラリを使った基本構文

猫画像取得用のパラメータ設定例

  • query: 'cats'と指定することで猫画像をフィルタリング
  • count: 取得する画像数(最大は30枚)
  • orientation: 'landscape', 'portrait'など指定可能

ヒント:検索結果からURLを取り出す際、urls['regular']を使用すると適切な画質のリンクが取得できます。


URLパラメータによる画像品質制御

Unsplash APIでは、画像の解像度やフォーマットを指定するURLパラメータを使うことで、転送量の削減や処理効率化が可能です。以下に代表的なパラメータとその使い方を表にまとめます。

注意:解像度調整による転送コスト削減率38%という数値は、Unsplash公式ドキュメントに明記されているか確認が必要です。本記事では例として示しています。


利用規約に基づく適切な使用法

Unsplash APIの利用には、利用規約に従うことが不可欠です。特に商用利用や著作権表示に関する以下の事項は注意が必要です。

商業利用時の制限事項

  • フリーの画像を商用目的で使用する場合は、適切な出典表示が必須(例:© [作者名] / Unsplash
  • 許可なしでの再配布や変更は禁止されており、著作権侵害につながる可能性があります

著作権表示義務について

  • 画像に使用許諾を明記していない場合は、利用規約違反とみなされることがあります
  • 配布物(アプリや資料など)でUnsplash画像を使用する際は、必ず出典情報を明記するようにしてください

要点まとめ

本記事の要点を整理します。

  • APIキーの管理
  • セキュリティ確保と不正利用防止が必須です。環境変数や.envファイルを使用して保存しましょう。
  • OAuth認証フローの理解
  • client_id, client_secret, redirect_uriなどのキーワードを理解し、適切に設定してください。
  • 画像取得時のパラメータ設定
  • 解像度やフォーマットを調整することで、転送コストと処理効率の最適化が可能です。
  • 著作権表示義務
  • 商用利用時でも出典表示が必要です。Unsplash™公式ガイドラインに従ってください。

以上が本記事で解説したUnsplash APIとPythonの連携プロジェクトにおける重要なポイントです。記事を参考に、Unsplash APIとの実装プロジェクトを始めてみましょう。

スポンサードリンク

お得なお知らせ

スポンサードリンク
デザイン本が読み放題

Figma・UI/UX・配色の深いノウハウを

動画・記事の断片情報より、1冊の体系書籍のほうが圧倒的に速い。Kindle Unlimited対象のデザイン書籍が豊富です。

Kindle Unlimited 30日無料▶ Audible|デザイン発想本を耳で▶

▶ デザイン→エンジニアリングの橋渡しに興味があれば プログラミング / エンジニア転職 もどうぞ。


タイプ別にすぐ選べる

クリエイティブの引き出し、どう増やす?

Figma・UI/UX・配色・タイポグラフィ。"手を動かす"学びと"発想力を磨く"学びは、使うサブスクが違います。

▷ Figma・UI/UX・配色の具体テクニックを体系化したい実務デザイナー

Kindle Unlimited 30日無料|デザイン本読み放題▶

▷ ブランド・発想・ディレクション系のインプットを"耳で"増やしたい人

オーディオブックAudible

※無料期間中の解約で料金発生なし

▶ デザイン→エンジニアリングの橋渡しに興味があれば プログラミング / エンジニア転職 もどうぞ。


-Unsplash