YouTubeLiveのチャット
この内容を動画から視線をそらさずに見たい.
というわけでPythonでYoutubeLiveのチャットを某動画サイト風に流すアプリケーションを作りました.
実行例
YouTubeLiveのチャットをniconico風に流すやつを作りましたhttps://t.co/kEJHinSWzR pic.twitter.com/rQFCZ7HIqn
— teahat (@T3ahat) June 14, 2020
基本的にはTiwtterの検索結果をオーバーレイする某動画サイト風にTwitter検索結果を流す【python】を流用しています.
環境
- Windows10
- Python3.7.6
- Youtube Data API v3
-
tkinterの
"-transparentcolor"
がかなり環境依存なため、Linux,Mac環境では別の記法で実現する必要があります。これらの環境の人は適宜ググってください()
コード全体
仕様
- exeファイルはもちろん,ソースコードであるJikkyoAlways_for_YouTube.pyは(今のところ)Windowsしか対応していない.
- GoogleCloudPlatformからYoutubeDataAPIv3にアクセスできるようにする必要がある.
YouTubeDataAPIv3について
YouTubeDataAPIv3 APIキー取得方法
ここをクリック
(1)GoogleCloudPlatformより新しいプロジェクトを作成
(2)適当なプロジェクト名で作成(今回はYouTubeLive2)
(3)"APIとサービスを有効化"に遷移
(4)YouTubeDataAPIv3を選択し,次の画面で"有効にする"よりAPIを有効化する
(5)"認証情報を作成"に遷移
(6)適当に入力
(7)APIキーが発行されます.
このAPIキーをJikkyoAlways_for_YouTube.exeで入力すればこのアプリケーションを利用できます.
ただし,このままでは
不正使用や割り当ての盗用を防止するには、キーを制限してキーの使用方法を限定します。
なので適当にアプリケーションの制限をかけてください.
API上限について
2020/06/15現在,APIの仕様上限は以下のようになっていました.
これはhttps://console.cloud.google.com/apis/api/youtube.googleapis.com/quotas?project=プロジェクトID でAPIの使用状況とともに確認できます.
一度のコメント取得でおおよそ7queries使用していました.
余談ですが,APIを叩く際にどれだけのQuotaを使用するかはhttps://developers.google.com/youtube/v3/determine_quota_cost にて確認できるのですが,今回使用するliveStreamingDetails
は掲載されていません.自分が実験したときは初回9,以降7queries程度となったので参考程度に.
まとめ
TwitterAPIは5秒に一度検索でツイートを取得すれば上限に到達することはありませんでしたが,YouTubeDataAPIv3は厳しいですね.取得周期を短く設定するとあっという間に上限に到達してしまいます.この上限を突破できない限りリアルタイムなチャット取得はなかなか厳しいです(一応,申請すれば上限解放可).