itunes search apiを使ってみる
最近作っているもので、itunesから映画や音楽の情報を取得したいと思い何か良い物がないかなーと思っていたら、これがあったので使いました。
※これ使わなくても、ここみたら自分でも出来たなと思いましたが、あえて同じのを作らなくても良いかなと思いました。
で、早速Gemfileに追加してbundle install
gem 'itunes-search-api'
bundle install --path vendor/bundle/
で、railsで作っているアプリに組み込むためにlib/apiに実装
require 'itunes-search-api' module Api class ItunesSearch def initialize(term, country , category) @term = term @country = country @category = category end def search ITunesSearchAPI.search(term: @term , country: @country, media: @category) end end end
で、テストをrspecで書く
require 'spec_helper' require 'api/itunes_search' describe Api::ItunesSearch do describe "APIをたたいて映画情報がとれるか" do context "映画一覧を取得" do before do @api = Api::ItunesSearch.new('star', 'JP', 'movie') @result = @api.search p @result end it { expect(@result).not_to be_nil } end end end
では実際テストを実行してみると、データ取得出来るのが確認できますー
s_nakamura% bundle exec rspec spec/lib/api/itunes_search_spec.rb
/Users/s_nakamura/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:222: warning: Insecure world writable dir /usr/local/libs in PATH, mode 040777
/Users/s_nakamura/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler.rb:301: warning: Insecure world writable dir /usr/local/project in PATH, mode 040777Api::ItunesSearch
APIをたたいて映画情報がとれるか
映画一覧を取得
[{"wrapperType"=>"track", "kind"=>"feature-movie", "trackId"=>689699581, "artistName"=>"J・J・エイブラムス", "trackName"=>"スター・トレック イントゥ・ダークネス Star Trek Into Darkness (字幕版)", "trackCensoredName"=>"スター・トレック イントゥ・ダークネス Star Trek Into Darkness (字幕版)", "trackViewUrl"=>"https://itunes.apple.com/jp/movie/suta-torekku-into-u-dakunesu/id689699581?uo=4", "previewUrl"=>"http://a261.v.phobos.apple.com/us/r1000/029/Video/v4/ca/63/f1/ca63f188-d406-5b94-7b2c-fdf60aedca77/mzvf_6397799913598167856.640x354.h264lc.D2.p.m4v", "artworkUrl30"=>"http://a5.mzstatic.com/us/r30/Video4/v4/3b/01/38/3b0138b3-3b1c-5df5-2064-2d01e09b244f/mza_8119760109411861093.30x30-50.jpg", "artworkUrl60"=>"http://a4.mzstatic.com/us/r30/Video4/v4/3b/01/38/3b0138b3-3b1c-5df5-2064-2d01e09b244f/mza_8119760109411861093.60x60-50.jpg", "artworkUrl100"=>"http://a4.mzstatic.com/us/r30/Video4/v4/3b/01/38/3b0138b3-3b1c-5df5-2064-2d01e09b244f/mza_8119760109411861093.100x100-75.jpg", "collectionPrice"=>2000.0, "trackPrice"=>2000.0, "collectionHdPrice"=>2500.0, "trackHdPrice"=>2500.0, "releaseDate"=>"2013-08-23T07:00:00Z", "collectionExplicitness"=>"notExplicit", "trackExplicitness"=>"notExplicit", "trackTimeMillis"=>7932391, "country"=>"JPN", "currency"=>"JPY", "primaryGenreName"=>"Sci-Fi & Fantasy", "contentAdvisoryRating"=>"G", "shortDescription"=>"宇宙艦隊司令官ジョン・ハリソン(カーン)(ベネディクト・カンバーバッチ)が復讐を誓い、たった一人でスターフリートに戦争を仕掛けた。", "longDescription"=>"宇宙艦隊司令官ジョン・ハリソン(カーン)(ベネディクト・カンバーバッチ)が復讐を誓い、たった一人でスターフリートに戦争を仕掛けた。カークとスポックはエンタープライズ号のクルーたちとともに生死を賭けた闘いへと旅立つ。全てを尽くして地球と人類を守る姿をJ・J・エイブラムス監督が“身体ごと引き込まれるほど素晴らしいアクション・アドベンチャー”として作り上げた。"}, {"wrapperType"=>"track", "kind"=>"feature-movie", "trackId"=>689625806, "artistName"=>"J・J・エイブラムス", "trackName"=>"スター・トレック イントゥ・ダークネス Star Trek Into Darkness (日本語吹替版)", "trackCensoredName"=>"スター・トレック イントゥ・ダークネス Star Trek Into Darkness (日本語吹替版)", "trackViewUrl"=>"https://itunes.apple.com/jp/movie/suta-torekku-into-u-dakunesu/id689625806?uo=4", "previewUrl"=>"http://a238.v.phobos.apple.com/us/r1000/016/Video6/v4/b1/86/44/b1864474-509b-863a-9a3b-ebf46a847c39/mzvf_5066410743238355188.640x354.h264lc.D2.p.m4v", "artworkUrl30"=>"http://a3.mzstatic.com/us/r30/Video4/v4/de/70/06/de7006bc-4002-fb08-9019-72573c182e03/mza_7921473002914409587.30x30-50.jpg", "artworkUrl60"=>"http://a2.mzstatic.com/us/r30/Video4/v4/de/70/06/de7006bc-4002-fb08-9019-72573c182e03/mza_7921473002914409587.60x60-50.jpg", "artworkUrl100"=>"http://a4.mzstatic.com/us/r30/Video4/v4/de/70/06/de7006bc-4002-fb08-9019-72573c182e03/mza_7921473002914409587.100x100-75.jpg", "collectionPrice"=>2000.0, "trackPrice"=>2000.0, "collectionHdPrice"=>2500.0, "trackHdPrice"=>2500.0, "releaseDate"=>"2013-08-23T07:00:00Z", "collectionExplicitness"=>"notExplicit", "trackExplicitness"=>"notExplicit", "trackTimeMillis"=>7941920, "country"=>"JPN", "currency"=>"JPY", "primaryGenreName"=>"Sci-Fi & Fantasy", "contentAdvisoryRating"=>"G", "shortDescription"=>"宇宙艦隊司令官ジョン・ハリソン(カーン)(ベネディクト・カンバーバッチ)が復讐を誓い、たった一人でスターフリートに戦争を仕掛けた。", "longDescription"=>"宇宙艦隊司令官ジョン・ハリソン(カーン)(ベネディクト・カンバーバッチ)が復讐を誓い、たった一人でスターフリートに戦争を仕掛けた。カークとスポックはエンタープライズ号のクルーたちとともに生死を賭けた闘いへと旅立つ。全てを尽くして地球と人類を守る姿をJ・J・エイブラムス監督が“身体ごと引き込まれるほど素晴らしいアクション・アドベンチャー”として作り上げた。"}, {"wrapperType"=>"track", "kind"=>"feature-movie", "trackId"=>511821903, "artistName"=>"瀧本智行", "trackName"=>"星守る犬", "trackCensoredName"=>"星守る犬", "trackViewUrl"=>"https://itunes.apple.com/jp/movie/xing-shouru-quan/id511821903?uo=4", "previewUrl"=>"http://a
・・・・・
・・・・
よし、これ使って次進もうっと