休日とかに、ちょこちょこプログラムを書いていたら個人的に使えるレベルまでになったので、ご紹介しようと思います(自己満)
本業はC#とwinformで基幹システム作ってるんですが、webの方はまともに触ったことがなかったのでいい勉強になった。
環境
- ruby 2.6.6
- Rails 5.2.6
- Python 3.7.9
- MySQL 8.0.25
何を作ったか
具体的にそれぞれが何をしているかというと
- python → データ取得のバッチとして使用
開発環境はwindowsなので、タスクスケジューラーで.batファイルを毎日午前4時に実行してます。
データの取得はYouTube Data APIを使用、取得するデータは対象チャンネルの登録者, 総再生数, 投稿動画一覧、取得した投稿動画一覧をもとに各動画の再生数を取得しそれらをDBへ格納。
- Ruby on Rails → YouTube Data APIから取得してきたデータの閲覧に使用
スクリーンショットのように、テーブルへ吐き出しています。
ハマった箇所
Rubyをまともに勉強したことない状態でRailsの開発を始めたため、RubyとRailsどっちも調べながらだったので微妙に時間を食った、Ruby自体は他の言語を扱えるのだったらそんなに学習コスト高くないと思うので、基礎くらいは頭に入れておけばよかったと思う。Rubyのエラー(文法とか)なのかRailsのエラーなのかわからんくなったりした。
あとMVCも、「MVCね、ふーん」みたいな具体的なことはなにも答えられない知識しかなかったので設計にすごい悩んだ、てか今も悩んでる。コントローラーとモデルどっちに書けばいいかあやふやなのでご教授願いたい。
今後追加したい機能
-
対象チャンネルの追加削除
現在、対象チャンネルはDBへ直に書きに行ってるので、編集機能が欲しい。 -
データ取得に使用するAPIキーを選べるようにする
YoutubeDataAPIはデータ取得にquotaなるリソースを使用するんですが、デフォルトだと10000quota/日しか割り当てられないので、複数のチャンネルからデータを取得するとquotaが枯渇してデータが途中で切れてしまう。
なのでチャンネルごとに使用するAPIキーを編集できるようにしたい。 -
データの表示のバリエーションを増やす
総再生数の前日比を表示したり、新着動画はこれですよ、みたいなデータとして見やすくなるよう表示周りは拡張したいですね。
あとがき
初めてqitaに投稿するんですが、書き終わった今改めて読み返してみると、やったタスクの整理とToDoリスト書いただけになったような...
それはさておき、最終的にはWebサービスとして公開したいと思っていますので、フィードバックやサービスとして欲しい機能などがあればコメントしていただけると幸いです。
今後もちょくちょく進捗を報告したいと思いますので、よろしくお願いいたします。