Edited at

railsでYoutube data APIを使ってみた


概要


  • youtube data APIを叩いてみたので書いてみました

  • ruby on railsを使っています

  • rubyのversionは以下に示します

$ ruby -v

ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]


はじめに

gem 'google-api-client', '~> 0.11.1'

gem 'trollop'

google-api-clientのバージョンを指定しないとエラーがでてた気がします.....


  • trollopとは


    • 気になったのでコマンドを叩いてみました



[1] pry(main)> opts = Trollop::options do

[1] pry(main)* opt :foo, 'option foo'
[1] pry(main)* opt :bar, 'option bar', :default => true
[1] pry(main)* opt :hoge, 'optioh hoge', :default => 2
[1] pry(main)* opt :fuga, 'option fuga', :type => :float
[1] pry(main)* opt :piyo, 'option piyo', :default => '3'
[1] pry(main)* end
=> {:foo=>false, :bar=>true, :hoge=>2, :fuga=>nil, :piyo=>"3", :help=>false}
[2] pry(main)> opt
NameError: undefined local variable or method `opt' for main:Object
Did you mean? opts
from (pry):8:in `__pry__'
[3] pry(main)> opts
=> {:foo=>false, :bar=>true, :hoge=>2, :fuga=>nil, :piyo=>"3", :help=>false}
[4] pry(main)> opts[:foo]
=> false
[5] pry(main)> opts[:bar]
=> true
[6] pry(main)> opts[:hoge]
=> 2


youtube data api の叩きかた(一例)


  • 下のコードをコントローラーで呼び出せるようにhelper.rbなどに書いておきましょう。(直接コントローラーに書いてもいいと思う。)

    require 'rubygems'

require 'google/apis/youtube_v3'
require 'trollop'

API_KEY = '得たAPI_KEYをここに入力'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'
def get_service
youtube = Google::Apis::YoutubeV3::YouTubeService.new
youtube.key = API_KEY
return youtube
end


  • 下のコードをコントローラーに書きましょう.

  • list_serchesのパラメーターはこれを見ましょう(https://developers.google.com/youtube/v3/docs/search/list?hl=ja


    • qは検索ワードだったり、max_resultsが取得できるアイテムの最大数であることがわかります



     youtube = get_service

@youtube = youtube.list_searches("id,snippet", type: "video", q: "日本サッカー", max_results: 5)


  • 下のようなコードをビュー側で呼ぶと得たい情報を得ることができます。

@youtube.items.first.id


最後に

やってみたのは一例に過ぎないので、興味のある方は公式リファレンスを読んでみましょう(https://developers.google.com/youtube/v3/docs/?hl=ja )

この記事にかなりお世話になりました(https://qiita.com/ta-k/items/42b168465e9660a46f70

ありがとうございます。