フリー画像のAPI 〜pixabay API〜を使ってみる(まだ使っていない)
フリー画像のAPIってどんなのがあるのかな〜と思ってなんとなくウエブサーフィンしていたら、pixabay
というのがあるということを知ったので、そのAPIを試しに使ってみようと思ったけどまだ使っていないはなし。
pixabayの概要
pixabay(ピクサベイ)というのは、無料画像サイトで、画像だけではなくて、フリーの動画(ショートムービー)もある。
フリーというのは、著作権フリーのこと。
つまり自由に使うことができる素材が置いてあるサイト。
ただし、中にはpixabayのスポンサー(iStock)の画像が含まれていたり、画像の中に商標登録されているようなものが含まれていたりすると、著作権が生じる可能性も出てくるので、素材の取捨選択もある程度必要かと思われる。
pixabay APIの概要
サービス全体の説明は日本語だが、APIの説明は英語。
https://pixabay.com/ja/service/about/api/
簡単にここのページを要約すると、
- 200万以上の素材にアクセス可能(2020年7月現在)
- 素材の種類は写真、イラスト(+ベクター画像)、ビデオ。
- リクエストは無制限(5000件/時間という時間制限はある)。
- セットアップは簡単。
- AndroidとiOSの公式アプリの中でも使われている。1895のdeveloperがPixabay APIを使っているとのこと。
- 利用するときは必ずpixabayの素材であることを明記すること。それから、その際は、pixabayのロゴを使ってもいいですよ。
- APIを使った大量ダウンロードは禁止。クエリに対する一時的なURLsが生成されるので、そこから素材をダウンロードして使うように。
とのこと。
pixabay APIをどうやって使うか
無料だが、まずは登録が必要(まだ登録していない)。
pixabay.com/api/
動画は、
pixabay.com/api/videos/
にGETをリクエストする。
この際、上のURLの末尾にパラメータ(引数)をつける。
画像のリクエストにつけるパラメータは以下の通り(詳細は公式ページを参照)。
key (required), q, lang, id, image_type, orientation, category, min_width, min_height, colors, editors_choice, safesearch, order, page, per_page, callback, pretty
必須のパラメータは、「key」。これは、サービスに登録すると得られるAPI key。
qは検索文字。花を探したければ、「flower」を指定。and検索は「+」
あとは、langでjaを指定すると日本語で検索した結果を得ることもできる。
image_typeで写真(photo)かイラスト(illustration)かベクター画像(vector)かを選ぶ。
categoryでカテゴリーを指定することができる。指定できる値は、backgrounds, fashion, nature, science, education, feelings, health, people, religion, places, animals, industry, computer, food, sports, transportation, travel, buildings, business, music。
リクエストの例
https://pixabay.com/api/?key={KEY}&q=yellow+flowers&image_type=photo
{KEY}にAPI keyを入れる。これで、黄色、花、に一致する写真を検索できる。
videoもほぼ同じような感じでリクエストできる。
pixabay APIを使うと何が戻ってくるのか
画像ではなく、JSON形式のテキストがレスポンスとして返される。
Headerにリクエストのリミット(5000リクエスト/時間)までどれくらいかなどの情報が含まれる。
”hits”キーの値が検索結果で、リストの形で含まれている。
個々の検索結果としていろんな形式の画像の一時URLが帰ってくるので、必要なサイズの画像をリクエストGETでダウンロードすれば後は自由に使える。
”userImageURL”は画像の直リンクだが、これを直接使うあるいは改変してオリジナル画像に直接アクセスすることは避けるべし。
Openweathermapなどの気象情報系のAPI, はてなブログAPI, はてなフォトライフAPIと合わせて使えば、その日の天気などに合わせて画像を自動ではてなブログに貼り付けるボット(アプリ?)が簡単にできそう。