Rubyでgoogle-api-clientを使ってYouTube Data APIを呼ぶ

使い方例

準備

Gemfile

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

/config/initializers/youtube.rb

require 'google/apis/youtube_v3'

module YouTube
  class Client
    Service = Google::Apis::YoutubeV3::YouTubeService.new
    Service.key = ENV.fetch('DEVELOPER_KEY')
  end
end

呼び出し

res = YouTube::Client::Service.list_channels(
  'statistics',
  id: youtube_channel_id
)
res.items.first.statistics.subscriber_count
res = YouTube::Client::Service.list_playlist_items(
  'snippet',
  playlist_id: playlist_id
)
topic_res = YouTube::Client::Service.list_videos(
  'topicDetails',
  id: youtube_video_id
)
  • メソッドの命名規則はおそらく(list | update | insert ...)_(playlist_items | videos | channels ...)という感じになっていて、公式のドキュメント(https://developers.google.com/youtube/v3/docs?hl=ja)のメニューの第一階層(PlaylistItems, Videos, Channels ...)と第二階層(list, update, insert ...)に対応している。
  • メソッドの第一引数はpart(APIのレスポンスに含める内容を決める値)で、カンマ区切りで複数指定できる。
  • レスポンス内のキーはスネークケース

参考

developers.google.com

google-api-ruby-client/service.rb at master · googleapis/google-api-ruby-client · GitHub

google-api-ruby-client/you_tube.rb at master · googleapis/google-api-ruby-client · GitHub