This repository has been archived by the owner on Jan 25, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 48
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辞書形式に変換したものです。