【個人開発】Twitch APIを使って人気クリップを閲覧できるサービスを作ってみた
Twitch APIを使ったWebアプリをリリースしたので記事にします。
とにかく欲しくて、ほとんど自分用です!
作ったもの
Twitchで作成されたクリップを閲覧できるサービスです。
作ったきっかけ
ライブ配信サイト「Twitch」には、配信中の注目シーンを1分ほど切り抜ける「クリップ機能」があります。この機能は、過去の面白かったシーンを振り返るのにとても便利です。
私自身、このクリップ機能を特に気に入っていますが、一方で検索性には不満を感じています。
現在、ストリーマーごとの視聴数ランキング(24時間、7日、30日、全期間)でクリップを見ることはできますが、タイトル検索や期間指定といった細かい絞り込みができません。そのため、例えば半年前のクリップを見たい場合、ページを何度も遡りながら探す必要があります。
一方で、TwitchのAPIには、ストリーマー名やゲーム名、期間指定で検索ができる、より充実した検索機能が用意されています。
そこで、自分が使いやすいツールを作ってみようと思い立ちました。
どんなサービス?
「ClipNote」では、お気に入りのクリップを閲覧するために下記の機能を実装しました。
- 閲覧数の多いクリップのランキング
- ストリーマ名やゲーム名での検索
- お気に入りリストの作成
- リストの公開・シェア
毎日一回APIを叩き、過去一週間で閲覧数の多いクリップを取得します。
自分で検索することもでき、気に入ったものはリストに保存することができます。
リストには公開設定を行い、シェアも可能です。
用途として、自分だけのお気に入りリストを作ったり、イベントごとにまとめてみたり、ストリーマーならば自身のおすすめクリップを紹介したりを考えています。
使った技術
テーマはとにかくコストを抑えることを重視しています。
- Python(Django)
- GAE
- Twitch api
デプロイ先のスペックを限界まで下げているので、ランニングコストはほぼ0円です。
収益化ができなくても無限に楽しむことができます。
また、せっかくなのでXのアカウントも作りました。
こちらは、Google Apps Scriptで実装しています。
コストを抑えるための工夫
完全に趣味ですのでランニングコストは低いほど嬉しいです。多少構成が汚くても安くすることを重視しました。
ホスト先
GAEを採用しています。
個人的に慣れているのと、スペックを詳細に設定できるため何かの奇跡で流行ったとしても柔軟に対応ができます。
現在は毎月20円くらいかかっています。
DB
当初はPlanetScaleを検討していました。
ただ、以前は無料でも使えましたが有料化されたので断念。
今はTiDBを使っています。
無料枠があるため初めて採用してみました。
それほど多くの人が使うわけではないと思うので安心です。
定期更新について
ClipNoteに表示されるクリップは毎日更新されます。
本来であれば、Cloud Schedulerなどを使用するのが一般的かもしれませんが、今回はあえてApps Scriptを使って更新処理を行っています。
XのBotを動かすためにApps Scriptを活用したので、更新処理をまとめた形です。
Botに関しては、スプレッドシートでツイート内容を柔軟に管理したかったのが理由です。
Twitch APIを利用してツイート用のクリップを取得し、Apps Scriptのタイマーを使ってツイートを自動投稿しています。その際、ClipNoteも同時に更新するようにしています。
Cloud Schedulerを使用する方法も検討しましたが、料金が発生する可能性があったため、無料で利用できるApps Scriptのタイマーを選びました。
まとめ
- 自分のためにサービスを作るのは楽しい
- 想像以上にコストを抑えられた
- その分サイト速度は速くないので、もっと良い方法は模索したい
個人的には満足のいく出来なので、ぜひ遊びに来てください!
Discussion