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

ChatProcessorのカスタマイズ

taizan-hokuto edited this page Nov 3, 2019 · 19 revisions

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

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

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

拡張

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

from pytchat import LiveChat
import MyProcessor

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

インタフェース

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

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

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

chat_components:List[component:dict]

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

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

Clone this wiki locally