月曜日までに考えておきます

ITネタとゲームネタ中心に興味のあること色々書きます。

Google画像検索で画像保存するGem作ったけど・・・

キーワードを入れればGoogle画像検索で欲しい画像を引っ張ってきてくれるGemを作りました。

https://rubygems.org/gems/google_image_fetcher

クエリ入れれば画像をとってくれる

$ google_image search "艦これ 時雨”

これで

こうじゃ!

なぜ作ったか

テストとかしてて、会社PCのDLフォルダに有る数枚の画像を使い分けているだけだとバグとか見落としそうだし楽しくないので、 寿司の画像とか焼肉の画像とか検索してたんですがそもそもそんなの一気にガーッと取ってきたいじゃん、的なモチベーションで作りました。

が!!!

APIキーが要ります

APIキーが要ります

画像検索APIの実情

しかもGoogleの画像検索API、1日に100回までという制約があるんですよね。 この辺り、調べてみると画像検索系のAPIはかなりいろいろ厳しくなってるんですよね。

無料で使える画像検索APIとリクエスト数制限まとめ - Qiita

たしかに検索エンジンAPIは便利なので、無料(または定額)で無制限とかやったらビジネス活用でフルに使われて提供側が破綻しそうな気がします。 一定の限度を超えた使われ方をすると急激に運営側にとってコスト効果が悪くなるっていうこの辺りはオンラインストレージサービスなどと似ているのかもしれませんね。

有名なところでいうとNAVERまとめがGoogle画像検索できなくなったという出来事があるようです。あの規模で使われると厳しそうに思えますね。 それで考えると、課金力で検索できるBingはすごい良心的に思えます。

設定

APIキーの取り方

  • Google Developer Consoleに行く

https://console.developers.google.com

  • ここでAPIを有効にする

  • Custom Search API

  • 有効にして認証情報からAPIキーを取得

カスタム検索も作る必要がある

Googleカスタム検索へ

https://cse.google.co.jp/

新規に検索エンジンを作り、以下のように設定

  • 画像検索を「オン」にする
  • 「検索するサイト」は絞らない
  • 検索エンジンID」を取得する

と言った設定を行う必要があります。

APIキーと検索エンジンIDを環境変数

export GOOGLE_API_KEY={your_api_key}
export SEARCH_ENGINE_ID={your_seach_engine_id}

みたいに取得した値を入れてください。

これでようやく

$ google_image search "艦これ 時雨”

ができます(ヽ'ω`)

まとめ

Gemで解決している以上にやらないといけないことがイロイロあるね・・・