[C#]YouTubeLiveチャットに特定の文字列が書き込まれたことを検知する
試作ソフト動作時の様子 APIキー及び対象配信のURLを入力し、チャットを取得する。取得したチャットに対し、特定文字列が含まれているものを抽出して表示する。 上記GIF右側にあるソフトのコードは以下に置いている。 実装内容の詳細 YouTubeLiveチャットの取得 YouTubeLiveチャットはYouTube Data APIを利用して取得する。YouTube Data APIは、YouTubeが公開している、YouTube上の情報を参照及び変更できるAPIである。コードサンプルページを見ると、以下の言語向けのクライアントライブラリがあることを確認できる。 Go Java JavaScript .NET PHP Python Ruby 今回は.NET用のGoogleAPIクライアントライブラリを使う。 APIキーの準備 YouTube Data APIを利用するために、APIキーを作成する必要がある。APIキーの作成方法はここでは詳しく記載しない。以下のサイト等を参考にしてほしい。 プロジェクトへのライブラリーの追加 プロジェクトにGoogle.Apis.YouTube.v3をインストールする。以下手順の説明はVisual Studio 2022の利用を想定している。 Visual Studio 2022のタブから プロジェクト > NuGetパッケージの管理 を選択する。 Google.Apis.YouTube.v3を検索し、最新バージョンをインストールする。 プログラムの実装 チャットを取得するコードを実装する。チャットを取得するまでの流れは以下のような形にしている。 配信URLからVideo IDを取得する。 Video IDからData APIを使って対象配信のChat IDを取得する。 Chat IDからLive Streaming APIを使ってチャットのデータを取得する。 配信URLからVideo IDを取得する Video IDは配信URLのクエリパラメータ中のvパラメータに相当する。例えば、配信URLがhttps://www.youtube.com/watch?v=fLM31tHrD5MであればfLM31tHrD5MがVideo IDである。 Video ID抽出のための処理はSystem.Web.HttpUtility.ParseQueryString()を利用した。以下に実装のサンプルを記載する。なお、下記サンプルはvパラメータがない場合を想定していない。 var uri = new Uri(stringUrl); // stringUrlには配信URLが入る var query = System....