LoginSignup
3
5

More than 3 years have passed since last update.

YouTubeLiveのチャットをniconico風にオーバーレイする【Python】

Last updated at Posted at 2020-06-15

YouTubeLiveのチャット
sample.gif
この内容を動画から視線をそらさずに見たい.
というわけでPythonでYoutubeLiveのチャットを某動画サイト風に流すアプリケーションを作りました.

実行例

基本的にはTiwtterの検索結果をオーバーレイする某動画サイト風にTwitter検索結果を流す【python】を流用しています.

環境

  • Windows10
  • Python3.7.6
  • Youtube Data API v3
  • tkinterの"-transparentcolor"がかなり環境依存なため、Linux,Mac環境では別の記法で実現する必要があります。これらの環境の人は適宜ググってください()

コード全体

ココ

仕様

YouTubeDataAPIv3について

YouTubeDataAPIv3 APIキー取得方法


ここをクリック
(1)GoogleCloudPlatformより新しいプロジェクトを作成
1 0.png
(2)適当なプロジェクト名で作成(今回はYouTubeLive2)
2 0.png
(3)"APIとサービスを有効化"に遷移
スクリーンショット (80).png
(4)YouTubeDataAPIv3を選択し,次の画面で"有効にする"よりAPIを有効化する
スクリーンショット (81).png
(5)"認証情報を作成"に遷移
スクリーンショット (83).png
(6)適当に入力
スクリーンショット (84).png
(7)APIキーが発行されます.
3 0.png
このAPIキーをJikkyoAlways_for_YouTube.exeで入力すればこのアプリケーションを利用できます.
ただし,このままでは

不正使用や割り当ての盗用を防止するには、キーを制限してキーの使用方法を限定します。

なので適当にアプリケーションの制限をかけてください.

API上限について

2020/06/15現在,APIの仕様上限は以下のようになっていました.
これはhttps://console.cloud.google.com/apis/api/youtube.googleapis.com/quotas?project=プロジェクトID でAPIの使用状況とともに確認できます.
スクリーンショット (87).png
一度のコメント取得でおおよそ7queries使用していました.

余談ですが,APIを叩く際にどれだけのQuotaを使用するかはhttps://developers.google.com/youtube/v3/determine_quota_cost にて確認できるのですが,今回使用するliveStreamingDetailsは掲載されていません.自分が実験したときは初回9,以降7queries程度となったので参考程度に.

まとめ

TwitterAPIは5秒に一度検索でツイートを取得すれば上限に到達することはありませんでしたが,YouTubeDataAPIv3は厳しいですね.取得周期を短く設定するとあっという間に上限に到達してしまいます.この上限を突破できない限りリアルタイムなチャット取得はなかなか厳しいです(一応,申請すれば上限解放可).

参考

YouTube Live チャット欄をAPIでリアルタイム取得

3
5
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
3
5