Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】🎥 YouTubeライブのチャットを「15秒ごと × 指定ワード」でリアルタイム集計する最小スクリプト

2025年10月04日に「Qiita」が公開したITニュース「🎥 YouTubeライブのチャットを「15秒ごと × 指定ワード」でリアルタイム集計する最小スクリプト」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

YouTubeライブのチャットから、指定したキーワードを15秒ごとにリアルタイムで数えるプログラムを紹介。これにより、配信中の視聴者の盛り上がり具合を客観的に把握できる。どのタイミングが特に反応が多かったか、一目でわかるようになるため、配信内容の改善に役立てられる。

ITニュース解説

YouTubeライブ配信を見ていると、コメント欄には視聴者の熱い反応がリアルタイムで流れていく。この「コメントの盛り上がり」を数値化して把握できたら、配信者は自分のコンテンツがどこで視聴者の心に響いたのか、あるいはどこが退屈だったのかを客観的に知ることができる。今回紹介するスクリプトは、まさにこの目的を達成するためのもので、YouTubeライブのチャットを一定時間ごとに集計し、特定のキーワードがどれだけ出現したかをリアルタイムで把握できるようにするものだ。システムエンジニアを目指す初心者にとって、外部サービスと連携して情報を取得し、加工・分析する一連の流れを学ぶ良い機会となるだろう。

このスクリプトの核となるのは、Googleが提供する「YouTube Data API V3」という技術である。APIとは、アプリケーション・プログラミング・インターフェースの略で、簡単に言えば、私たちが作ったプログラムとYouTubeのような外部サービスが、お互いに情報をやり取りするための「窓口」のようなものだ。YouTube Data API V3を使うと、YouTubeの動画情報やチャンネル情報、そして今回の主題であるライブチャットのメッセージといった、さまざまな公開データにプログラムからアクセスできるようになる。

スクリプトを動かすためには、まず「APIキー」というものを用意する必要がある。これは、私たちがYouTube Data APIを利用するための「通行証」のようなもので、Google Cloud ConsoleというGoogleのサービス管理画面で発行する。APIキーがあることで、YouTubeは誰がAPIを使っているのかを識別し、利用制限などを管理できるようになる。

次に、Pythonというプログラミング言語を使ってAPIと連携するための特別なツール、つまり「ライブラリ」を準備する。このスクリプトではgoogle-api-python-clientというライブラリが使われる。このライブラリを使うことで、複雑なAPIの通信処理を意識することなく、シンプルな記述でYouTubeのデータにアクセスできるようになる。

実際のチャットメッセージの取得は、「liveChatMessages.list」というAPIの機能を使って行われる。この機能に、どのライブ配信のチャットを集計したいのかを示す「ライブID」や、どのような情報が必要なのかを示すパラメーターを渡すことで、YouTube側から最新のチャットメッセージのリストが返ってくる。

ここで特に重要なのが「nextPageToken」という要素である。YouTubeのライブチャットは常に新しいメッセージが追加されていくため、毎回すべてのチャットを最初から取得し直すのは非常に効率が悪く、APIの利用制限にもすぐに達してしまう可能性がある。nextPageTokenは、前回のAPI呼び出し以降に追加された新しいチャットメッセージだけを取得するための「しおり」のような役割を果たす。スクリプトはこのnextPageTokenを使い回すことで、効率的に最新のチャットだけを継続して取得し続けることができるのだ。

取得したチャットメッセージは、通常「JSON」という形式のデータで返ってくる。これは、コンピューターが扱いやすいように構造化されたテキストデータで、例えば「いつ、誰が、どんなメッセージを投稿したか」といった情報が整理されて含まれている。スクリプトは、このJSONデータの中からメッセージ本文が格納されている「snippet.displayMessage」という部分を取り出し、あらかじめ設定したキーワード(例えば「かわいい」や「草」など)が含まれているかをチェックする。キーワードが見つかれば、そのキーワードの出現回数をカウントアップしていく。

このようなチャットメッセージの取得、キーワードの検索、集計という一連の処理を、記事では「15秒ごと」に繰り返すように設計されている。これはtime.sleep()というPythonの機能を使って、プログラムの実行を一時的に停止させることで実現される。これにより、リアルタイムに近い感覚でチャットの盛り上がりを集計し続けることができるのだ。

このスクリプトは、単にキーワードを数えるだけでなく、その先には無限の可能性が広がっている。例えば、集計したデータを時間経過とともにグラフ化すれば、配信のどのタイミングで視聴者が最も反応したのかを視覚的に把握できる。これは配信者が自分のコンテンツを改善したり、視聴者が求めているものを理解したりする上で非常に貴重な情報となるだろう。

システムエンジニアを目指す皆さんにとって、このスクリプトは「APIを使って外部サービスからデータを取得し、それを自分の目的に合わせて加工・分析する」という、現代のソフトウェア開発において非常に基本的ながらも重要な一連のプロセスを理解する手助けとなるはずだ。プログラミングは、単にコードを書くことだけでなく、このようにして現実世界で「困った」を「解決」する手段を提供するものであることを、この記事は示している。

関連コンテンツ