Flickr APIで著作権フリーの画像を取得
Flickr API Documentation
まずはFlickrAPIについてお勉強。
ドキュメントめちゃ充実してるので必ず確認。
Flickraw Documentation
rubyのgemはいくつかあるが一番メジャーなflickrawを使う。
こちらも各メソッドごとに詳細なドキュメントがあるので便利。
Setup手順
- accounts作成
- api keyを作成
- The App Garden on Flickr
- Non-Commercial/Commercialを選択
- アプリの説明を記入
- key/secretを取得
- The App Garden on Flickr
- Authentication
Authentication
アカウントを作って、api keyを手に入れたら、認証を行います。access_token/access_secret取得のためです。 このまま使わずkey/secretを入れてくださいね。
require 'flickraw' FlickRaw.api_key="-- api key --" FlickRaw.shared_secret="-- secret --" token = flickr.get_request_token auth_url = flickr.get_authorize_url(token['oauth_token'], :perms => 'delete') puts "Open this url in your process to complete the authication process : #{auth_url}" puts "Copy here the number given when you complete the process." verify = gets.strip begin flickr.get_access_token(token['oauth_token'], token['oauth_token_secret'], verify) login = flickr.test.login puts "You are now authenticated as #{login.username} with token #{flickr.access_token} and secret #{flickr.access_secret}" rescue FlickRaw::FailedResponse => e puts "Authentication failed : #{e.msg}" end
これを実行すると
Open this url in your process to complete the authication process : http://www.flickr.com/services/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&perms=delete Copy here the number given when you complete the process.
って言われるのでurlをブラウザで開く。そうすると番号(xxx-xxx-xxx)が出てくるのでそれをターミナルに貼ると
You are now authenticated as dev_grood with token XXXXXXXXXXXXXX-XXXXXXXXX and secret XXXXXXXXXXXXXX
そうすると無事に access_tokenとaccess_secretをゲット。 authenticationについての詳しい内容はこちら
railsでの使用例
flickrawをgemfileに追加&bundle installしたら、
def flickr_search(word) FlickRaw.api_key = Settings.flickr_api_key FlickRaw.shared_secret = Settings.flickr_shared_secret flickr.access_token = Settings.flickr_access_token flickr.access_secret = Settings.flickr_access_secret flickr.test.login @photos = flickr.photos.search(text: word, license:"1,2,3,4,5,6") end
photosの中身は、
[ {"id"=>"4468814441", "owner"=>"10519936@N07", "secret"=>"65580f2645", "server"=>"2752", "farm"=>3, "title"=>"China_12-10-07_273.jpg", "ispublic"=>1, "isfriend"=>0, "isfamily"=>0}, {"id"=>"3930972474", "owner"=>"29925020@N03", "secret"=>"35b2474f29", "server"=>"3446", "farm"=>4, "title"=>"China Backpacking Trip", "ispublic"=>1, "isfriend"=>0, "isfamily"=>0}, ・・・ ]
こんな感じのものがかえってきます。
Flickrは画像のURLがここではかえってこず、パラメータを組み合わせてURLを作ってあげる必要があるのがちょっと面倒。なので
- @photos.each do |photo| - url = "http://farm#{photo.farm}.static.flickr.com/#{photo.server}/#{photo.id}_#{photo.secret}_m.jpg" = image_tag(url)
viewでこんな感じにurlを作ってimage_tag(url)として表示。できたー。
CC = Creative Commonsについて
flickrには写真ごとにライセンスがあって、ブログなどで使う場合には、それを正しく確認しておかないといけません。
{"id"=>"0", "name"=>"All Rights Reserved", "url"=>""} {"id"=>"1", "name"=>"Attribution-NonCommercial-ShareAlike License", "url"=>"http://creativecommons.org/licenses/by-nc-sa/2.0/"} {"id"=>"2", "name"=>"Attribution-NonCommercial License", "url"=>"http://creativecommons.org/licenses/by-nc/2.0/"} {"id"=>"3", "name"=>"Attribution-NonCommercial-NoDerivs License", "url"=>"http://creativecommons.org/licenses/by-nc-nd/2.0/"} {"id"=>"4", "name"=>"Attribution License", "url"=>"http://creativecommons.org/licenses/by/2.0/"} {"id"=>"5", "name"=>"Attribution-ShareAlike License", "url"=>"http://creativecommons.org/licenses/by-sa/2.0/"} {"id"=>"6", "name"=>"Attribution-NoDerivs License", "url"=>"http://creativecommons.org/licenses/by-nd/2.0/"} {"id"=>"7", "name"=>"No known copyright restrictions", "url"=>"http://www.flickr.com/commons/usage/"} {"id"=>"8", "name"=>"United States Government Work", "url"=>"http://www.usa.gov/copyright.shtml"} ↓見難いので整形 0. All Rights Reserved 1. Attribution-NonCommercial-ShareAlike License 2. Attribution-NonCommercial License 3. Attribution-NonCommercial-NoDerivs License 4. Attribution License 5. Attribution-ShareAlike License 6. Attribution-NoDerivs License 7. No known copyright restrictions 8. United States Government Work
商用の場合、4,5,6 商用でなければ、1,2,3,4,5,6
といったところがfreeで使える可能性のあるライセンスとなります。
区分けについて日本語ではこちらにいろいろ書いてあるのでご参考:
Flickrで著作権的に問題のない画像を見つけて公開する方法 - 涙目で仕事しないSE