Youtubeの切り抜きを自動で行いランキング形式で表示するWebサイトを作る part1 --概略--

僕がどんなWebサイトをどうやって実現したのかを簡単に紹介します。

 

1、どんなWebサイトを作ったの?

        Youtubeの切り抜きを自動で行いランキング形式(1〜10位まで)で表示するWebサイトを作りました。(特定のVtuber限定にしています)

 

  • 基本的な機能:

          ランキング対象日を選択して、検索ボタンを押せばその日に盛り上がった動画の上位10位を表示閲覧できる。

 

  • オプション的な機能:

   対象者を追加で指定することで、指定したVtuberの動画の中で盛り上がったところ10箇所を表示することができる。

   1日に複数回動画を投稿している場合は横にフリックすることで複数動画の切り抜きを閲覧できる。

 

 

2、どうやって実現したの?

 Webアプリケーション部分:

  1.   PythonとYoutubeAPIを使用して、特定のVtuberライブ配信チャットなどの情報や公開日などを取得
  2.  取得した情報をデータクレンジングして、盛り上がっている期間を判定し点数化
    (今は単純にコメント量の多さで判断してます;;ホントはカッコよく機械学習とかやりたい)
  3.  点数化したデータをDBに保存
  4.  DBに保存したデータを表示するだけの機能を画面で提供
    上記の処理1〜3は定期バッチ処理でやっているため、画面ではDBの内容をランキング形式にして表示しているだけ

 

 インフラ部分:

  ・サーバはAWSのEC2を利用

    → ちょっと前までここにプログラムとか、ライブラリをそのままぶち込んでましたが、今は面倒なのでやってません。

 

  ・本番環境へのリリースはDocker-ComposeとECS、ECRを使用

    → このDocker-ComposeとAWSを組み合わせるのが結構難しくて泣きそうになりましたが、一度できるようになるとものすごいメリットがあるのでぜひ紹介したい。

 

  ・DBもDBコンテナを使用

    → 一般的にはAWSのRDSを利用すると思いますが、個人でやるにはちょっとお金がかかってしまうので、これも専用のコンテナを立てて管理しています。コンテナにデータを管理する場合は何もしないとデプロイのたびにデータが吹き飛ぶので、とある対策をしています。(別途紹介よてい)

 

※言葉だとわかりづらいと思うので、システムの構成とリリースの流れを以下に図で書きます。なんとなく流れが分かってもらえると思います。

f:id:Baken:20210505190620p:plain

システム構成と本番環境へのリリース手順まとめ