#作りたいbot
毎日決まった時間にランダムでSCANDALのMVを送るbot
※SCANDALは女性バンドです。
####そのための僕の頭の中の構想(railsで作成)
- まずはWEB上で動く物を作る
- それをLINEbotにする
- そこから機能を追加していく(例えば、ACIDMANとLINEで送るとACIDMANの曲をランダムに返すなど)
※ACIDMANもバンドです。
####ひとまずできたこと
- まずはWEB上で動く物を作る
####参考にした記事
Qiitaの記事を元にYouTube Data APIのリファレンスを参考にしました。
YouTube Data API
https://developers.google.com/youtube/v3/docs?hl=ja
####コード
<% number = 0 %>
<% ran = rand(1..11) %>
<% @youtube_data.items.each do |item| %>
<% number = number + 1 %>
<% if number == ran %>
<% snippet = item.snippet %>
<p><%= snippet.title %></p>
<p><%= snippet.published_at %><%= snippet.channel_title %></p>
<div><iframe width="560" height="315" src="https://www.youtube.com/embed/<%= item.id.video_id %>" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
<% end %>
<% end %>
class YoutubeController < ApplicationController
def find_videos(keyword)
service = Google::Apis::YoutubeV3::YouTubeService.new
service.key = ENV["YOUTUBEKEY"]
next_page_token = nil
opt = {
q: keyword,
type: 'video',
channel_id: 'UCSNX8VGaawLFG_bAZuMyQ3Q',
max_results: 11,
order: :date,
page_token: next_page_token
}
service.list_searches(:snippet, opt)
end
def index
@youtube_data = find_videos('SCANDAL')
end
end
出力結果↓
https://twitter.com/pompom06yutoz/status/1273869183491559425?s=21
####今わかっている課題
1. Viewで11個のデータにアクセスしているので、それを無くしてランダムにチャンネルからデータを一つだけ取り出したい。(助けてくれ〜ww)
2. 今のままだとチャンネルが固定(いったんスルーで)
####次にすること
とりあえずこれをLINEbotにしてみて、課題が浮上したらその時に考える。
####最後に
プログラミング学習始めて約4ヶ月が経過し、今程よく楽しんでいる人間です。
もし、何か良い代替の案があったら気軽にコメントお願いします〜。
後、SCANDALが好きな人もぜひ。
つづく