LoginSignup
70
51

YouTuber/VTuberの切り抜きデータベースを作成できるwebサービスを作りました!

Last updated at Posted at 2022-03-20

こんにちは。
趣味でWebサービスの個人開発をしている、2z(Twitter: @2zn01 )です。

これまでに開発したサービスは、「 これまでに個人開発で作ったサービス 」にまとめていますので、興味がある方はぜひご覧ください。

今回作ったもの

今回はYouTubeの配信・動画の話題、見どころをデータベース化し、タイムライン上で検索できるようにする「切り抜きDB」というサービスを作りました!

何ができるの?

「切り抜きDB」の主な機能としては、以下の通りです。

  • チャンネルを探す

YouTuberやVTuberなど様々なジャンルからチャンネルを探すことができます。
チャンネル名などから検索することも可能です。

チャンネル一覧

  • 動画のタイムテーブルを見る

動画のコメント欄からタイムスタンプ付きのコメントを収集し、動画をタイムテーブルにまとめています。

動画タイムテーブル

  • 動画の話題・見どころを検索して探す

動画のタイムテーブルから話題・みどころを検索することができます。

動画の話題・見どころを検索

何で作ったの?

2022年1月からひろゆきさんの切り抜きが解禁(黙認)され、YouTubeの切り抜き動画自体がとても話題になりました。もともとVTuber界隈などでは切り抜き動画の文化はありましたが、ひろゆきさんを筆頭に世の中でどんどん話題になっていったように思います。
そこで、切り抜きに関するサービスを作ろうと思い立ちました。

切り抜きをするにあたって、動画内の切り抜きポイントを探すのはとても重要です。

ただ、動画内の切り抜きポイントを探すには、普通にやろうとすると、すべての動画を一通り見て、面白かったところをピックアップせねばならず、とても大変です。
そこで、動画内の話題や見どころをタイムテーブル化・検索できるようにし、切り抜きポイントを簡単に探せるサービスを作ることにしました。

切り抜きポイントの選定

とはいえ、切り抜きポイントを自動で探すのはとても大変です。
機械学習を使って、動画内の音声や映像を解析したりなどの方法はあるかもしれませんが、そのための学習データを用意してモデルを作って解析するなんていうのは、お金も時間もかけてやらなければならず、とても現実的ではありません。

そこで、僕が目をつけたのは、YouTubeのコメント欄です。
YouTubeのコメント欄にはタイムスタンプ付きのコメントをつけている方がいます。
さらには、有志の方が長時間の配信の話題をタイムテーブルとしてまとめ、コメント欄にまとめていることもあります。

コメント欄にわざわざタイムスタンプ付きのコメントを残すということは、その箇所が面白かったり、重要な話題だったり、人に伝えたい(共有したい)内容であるはずです。

そこで、YouTubeの動画のコメント欄のタイムスタンプ付きのコメントをYouTube Data APIを使って収集し、時系列順にし、動画のタイムテーブルとしてまとめればよいのでは!? と考えました。

使用技術

Linux

クラウドのホスティングはGoogle Cloud Platformで、Google Compute Engine(GCE)でサーバを立てています。

Apache

webサーバはApacheを使っています。 Nginxもありますが、Apacheは普段から使っており、設定も把握していたため、いつも通りの安定の選択としました。

MySQL

GCPのCloud SQLを使ってMySQLを立てています。

PHP

サーバ側のプログラムはPHPを使って実装しました。

YouTube Data API

YouTubeのチャンネル、動画、コメント情報を取得するために使用しています。
使い方については、後述させて頂きます。

cron

cronを使って定期的にバッチを走らせてチャンネル、動画、コメントの情報を収集し、動画をタイムテーブルにまとめています。

YouTube Data APIを使った動画のタイムテーブル化

チャンネル、動画、コメントの情報はYouTube Data APIを使って取得・収集しています。
基本的には、以下の順に取得しています。

  1. チャンネル情報の取得
     ↓
  2. チャンネルのプレイリスト情報の取得
     ↓
  3. プレイリストから動画情報の取得
     ↓
  4. 動画のコメント情報を取得
     ↓
  5. タイムスタンプ付けのコメントを正規表現で抽出し、動画をタイムテーブル化

以上の処理の流れをチャンネルごとに(現時点では)1日1回のペースでデータを収集しています。

YouTube Data API

YouTube Data APIのうち、切り抜きDBで使用しているAPIをご紹介します。
パラメータについては、使用しているもののみ掲載しておりますので、詳細は公式ドキュメントの方をご覧ください。

チャンネル情報の取得(Channels: list)

エンドポイント

GET
https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&key={APIキー}&id={チャンネルID}

リクエストパラメータ

パラメータ 説明
part 取得する情報を指定。"snippet,statistics"を指定した場合、チャンネル情報、統計情報を取得
key APIキーを指定
id チャンネルIDを指定

プレイリスト情報の取得(Playlists: list)

エンドポイント

GET
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&maxResults=50&key={APIキー}&playlistId={プレイリストID}

リクエストパラメータ

パラメータ 説明
part 取得する情報を指定。"snippet,contentDetails"を指定した場合、再生リスト情報、コンテンツ情報を取得
key APIキーを指定
playlistId プレイリストIDを指定
maxResults 取得件数を指定

ちなみに、チャンネルの動画一覧を取得したい場合、チャンネルIDの「UU~~~」の部分を「UC~~~」に置き換え、プレイリストIDとして指定することでチャンネルの動画一覧を取得することが可能です。

動画情報の取得(Videos: list)

エンドポイント

GET
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&key={APIキー}&id={動画IDのカンマ区切りリスト}

リクエストパラメータ

パラメータ 説明
part 取得する情報を指定。"snippet,contentDetails,statistics"を指定した場合、動画情報、動画コンテンツ情報、統計情報を取得
key APIキーを指定
id 動画IDをカンマ区切りで指定

コメント情報の取得(CommentThreads: list)

エンドポイント

GET
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&order=relevance&textFormat=plainText&maxResults=100&key={APIキー}&videoId={動画ID}

リクエストパラメータ

パラメータ 説明
part 取得する情報を指定。"snippet"を指定した場合、コメント情報を取得
order 取得するコメントの並び順を指定。"relevance"を指定した場合、評価順
textFormat 取得するフォーマットを指定。"plainText"の場合、プレーンテキストで取得
key APIキーを指定
videoId 動画IDを指定
maxResults 取得件数を指定

最後に

今回はYouTubeの配信・動画の話題、見どころをデータベース化し、タイムライン上で検索できるようにする「切り抜きDB」について、ご紹介しました。
以下のURLよりぜひご活用頂ければ嬉しいです!

切り抜きOKを出されている方で、切り抜きDBに追加して欲しいYouTubeチャンネルがありましたら、以下のGoogleフォームからご連絡頂ければ幸いです。
https://forms.gle/rQEVYyXwbvDFT1Jr6

また、このサービスに少しでも興味をもって頂けましたら、ぜひともフォローやいいね、リツイートで応援お願いします!

他には以下のようなサービスを開発・運営していますので、興味があるものがございましたら、ぜひとも使ってみて頂けると嬉しいです!

これまでに開発したサービスは、「 これまでに個人開発で作ったサービス 」にまとめていますので、興味がある方はぜひご覧ください。

70
51
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
70
51