Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

ChatProcessorのカスタマイズ

taizan-hokuto edited this page Jan 11, 2020 · 19 revisions

ChatProcessorは、LiveChatオブジェクトから定型的なデータ(chat_components:後述)を受け取り、
任意の形式に加工したデータを返すオブジェクトです。

pytchatには組み込みのChatProcessorとして以下のクラスを同梱しています。

  • DefaultProcessor : チャットデータへのアクセスを容易に行うための標準的なProcessor
  • CompatibleProcessor : Youtube APIが返すjsonデータと互換性のあるProcessor
  • JsonfileArchiveProcessor : チャットデータを辞書形式でファイルに保存するProcessor
  • SpeedCalculator : チャットの勢いを算出するProcessor

拡張

自作したChatProcessorは、LiveChatオブジェクトのコンストラクタのprocessorパラメータで指定することができます。

from pytchat import LiveChat
import MyProcessor

chat = LiveChat("video_id", processor = MyProcessor())


ChatProcessorを複数使用する場合は、タプルで指定します

chat = LiveChat("video_id", processor = Processor1(), Processor2())

インタフェース

ChatProcessorは、1個のリスト(chat_components)を引数にとるprocessという関数を持たなければなりません。

class MyProcessor:
    def process(self, chat_components:List[dict]):
        #...process chatdata...

chat_components は、video_id、timeout、chatdataをキーに持つ辞書(chat_component)のリストです。

chat_components:List[chat_component:dict]

chat_component = {
    "video_id" : "xxxxxxxxxxx",  #動画ID
    "timeout"  : 7.5231,              #チャットデータのタイムアウト時間
    "chatdata" : {"addChatItemAction":{"item":{"liveChatTextMessageRenderer":[......}}} #Youtubeから取得したチャットデータ
}

chatdata は Youtubeから取得したjson形式のチャットデータをpython辞書形式に変換したものです。

Clone this wiki locally