🦔

Youtube Data API + Rubyで動画を検索する

に公開

前提

Google Cloud Console でYoutube Data APIの認証情報をあらかじめ払い出しておく。

コード

古い情報だと google-api-client を使っているケースが多いが廃止予定なので google-apis-youtube_v3 を使う。
認証情報は YOUTUBE_API_KEY として .env に書いて、 direnv allow で環境変数に反映する。

Gemfile
gem 'google-apis-youtube_v3'
require 'google/apis/youtube_v3'

service = Google::Apis::YoutubeV3::YouTubeService.new
service.key = ENV['YOUTUBE_API_KEY']

res = service.list_searches('id,snippet', q: '柴犬', type: 'video')
res.items.each do |item|
  puts [
    item.id.video_id,
    "https://www.youtube.com/watch?v=#{item.id.video_id}",
    item.snippet.title,
    item.snippet.description,
    item.snippet.thumbnails.default.url,
].join(',')
end
  • part
    • 取得するリソース
    • ここでは id,snippet を指定
  • q
    • 検索キーワード
  • type
    • コンテンツの種別(channel, video, playlist)

詳細については Youtube Data API リファレンス を参照。

実行結果

wo0R6HkDVfs,https://www.youtube.com/watch?v=wo0R6HkDVfs,仕事復帰の母へ、超絶可愛い癒しパワーを送る柴犬,柴犬#家族#可愛い#サモエド Tiktok【しばわんこ生活】はこちら https://www.tiktok.com/@shibawankoseikatu?lang=ja-JP 2ed【 ...,https://i.ytimg.com/vi/wo0R6HkDVfs/default.jpg
smcdaUlwfWw,https://www.youtube.com/watch?v=smcdaUlwfWw,可愛すぎて困っちゃいます🥰 #shorts #柴犬 #犬 #dog,,https://i.ytimg.com/vi/smcdaUlwfWw/default.jpg
8JVkwv907WI,https://www.youtube.com/watch?v=8JVkwv907WI,うちの柴犬は16歳でヨボヨボだけどある日リードを持ってきて…【2ch感動】,,https://i.ytimg.com/vi/8JVkwv907WI/default.jpg
d6m8yY_k3ME,https://www.youtube.com/watch?v=d6m8yY_k3ME,#高速道路 を逃走する #柴犬 を「御用」  #GW の #第三京浜 で 捕物劇 #毎日新聞 #shorts,大型連休前半の29日、神奈川県の高速道路上を走り回った柴犬が、逃走劇の末に警察に捕まった。行楽に出向くドライバーらも ...,https://i.ytimg.com/vi/d6m8yY_k3ME/default.jpg

Discussion