1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

YouTube Data APIで取得したデータを閲覧できるwebアプリケーションをRailsで作った話

Last updated at Posted at 2021-06-25

休日とかに、ちょこちょこプログラムを書いていたら個人的に使えるレベルまでになったので、ご紹介しようと思います(自己満)
本業はC#とwinformで基幹システム作ってるんですが、webの方はまともに触ったことがなかったのでいい勉強になった。

環境

  • ruby 2.6.6
  • Rails 5.2.6
  • Python 3.7.9
  • MySQL 8.0.25

何を作ったか

まず構成図はこちら
dev.png

具体的にそれぞれが何をしているかというと

  • python → データ取得のバッチとして使用

開発環境はwindowsなので、タスクスケジューラーで.batファイルを毎日午前4時に実行してます。
データの取得はYouTube Data APIを使用、取得するデータは対象チャンネルの登録者, 総再生数, 投稿動画一覧、取得した投稿動画一覧をもとに各動画の再生数を取得しそれらをDBへ格納。

  • Ruby on Rails → YouTube Data APIから取得してきたデータの閲覧に使用

スクリーンショットのように、テーブルへ吐き出しています。

データ取得対象チャンネル一覧
channels.png

チャンネル情報履歴
channelInfo.png

投稿動画一覧
VideoList.png

動画情報履歴
VideoInfo.png

ハマった箇所

Rubyをまともに勉強したことない状態でRailsの開発を始めたため、RubyとRailsどっちも調べながらだったので微妙に時間を食った、Ruby自体は他の言語を扱えるのだったらそんなに学習コスト高くないと思うので、基礎くらいは頭に入れておけばよかったと思う。Rubyのエラー(文法とか)なのかRailsのエラーなのかわからんくなったりした。

あとMVCも、「MVCね、ふーん」みたいな具体的なことはなにも答えられない知識しかなかったので設計にすごい悩んだ、てか今も悩んでる。コントローラーとモデルどっちに書けばいいかあやふやなのでご教授願いたい。

今後追加したい機能

  • 対象チャンネルの追加削除
    現在、対象チャンネルはDBへ直に書きに行ってるので、編集機能が欲しい。

  • データ取得に使用するAPIキーを選べるようにする
    YoutubeDataAPIはデータ取得にquotaなるリソースを使用するんですが、デフォルトだと10000quota/日しか割り当てられないので、複数のチャンネルからデータを取得するとquotaが枯渇してデータが途中で切れてしまう。
    なのでチャンネルごとに使用するAPIキーを編集できるようにしたい。

  • データの表示のバリエーションを増やす
    総再生数の前日比を表示したり、新着動画はこれですよ、みたいなデータとして見やすくなるよう表示周りは拡張したいですね。

あとがき

初めてqitaに投稿するんですが、書き終わった今改めて読み返してみると、やったタスクの整理とToDoリスト書いただけになったような...
それはさておき、最終的にはWebサービスとして公開したいと思っていますので、フィードバックやサービスとして欲しい機能などがあればコメントしていただけると幸いです。
今後もちょくちょく進捗を報告したいと思いますので、よろしくお願いいたします。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?