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](https://cloud.google.com)より新しいプロジェクトを作成  __(2)__適当なプロジェクト名で作成(今回はYouTubeLive2)  __(3)__"APIとサービスを有効化"に遷移  __(4)__YouTubeDataAPIv3を選択し,次の画面で"有効にする"よりAPIを有効化する  __(5)__"認証情報を作成"に遷移  __(6)__適当に入力  __(7)__APIキーが発行されます.  このAPIキーを[JikkyoAlways_for_YouTube.exe](https://github.com/T3aHat/JikkyoAlways_for_YouTube/blob/master/JikkyoAlways_for_YouTube.exe)で入力すればこのアプリケーションを利用できます. ただし,このままでは不正使用や割り当ての盗用を防止するには、キーを制限してキーの使用方法を限定します。なので適当にアプリケーションの制限をかけてください.
余談ですが,APIを叩く際にどれだけのQuotaを使用するかはhttps://developers.google.com/youtube/v3/determine_quota_cost にて確認できるのですが,今回使用するliveStreamingDetails
は掲載されていません.自分が実験したときは初回9,以降7queries程度となったので参考程度に.
#まとめ
TwitterAPIは5秒に一度検索でツイートを取得すれば上限に到達することはありませんでしたが,YouTubeDataAPIv3は厳しいですね.取得周期を短く設定するとあっという間に上限に到達してしまいます.この上限を突破できない限りリアルタイムなチャット取得はなかなか厳しいです(一応,申請すれば上限解放可).