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 49
LiveChatAsync
taizan-hokuto edited this page Jan 17, 2021
·
21 revisions
LiveChatAsync object
- fetches chat data and stores them in buffer with aiohttp on asyncio context.
- responds to user inquiries of get().
- invokes a callback function with processed chat data.
- can replay archived chat data (when the specified video is not live broadcasting).
from pytchat import LiveChatAsync
import asyncio
async def main():
livechat = LiveChatAsync("uIx8l2xlYVY", callback = func)
while livechat.is_alive():
await asyncio.sleep(3)
#other background operation.
# If you want to check the reason for the termination,
# you can use `raise_for_status()` function.
try:
livechat.raise_for_status()
except pytchat.ChatDataFinished:
print("Chat data finished.")
except Exception as e:
print(type(e), str(e))
#callback function is automatically called periodically.
async def func(chatdata):
for c in chatdata.items:
print(f"{c.datetime} [{c.author.name}]-{c.message} {c.amountString}")
await chatdata.tick_async()
if __name__=='__main__':
try:
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
except asyncio.exceptions.CancelledError:
pass
name | type | required | remarks | default value |
---|---|---|---|---|
video_id | str | * | ID of youtube video, or youtube URL that includes ID. | - |
processor | ChatPrcessor | DefaultProcessor | ||
buffer | Buffer | buffer of chat data fetched background. | Buffer(maxsize=20) | |
interruptable | bool | Allows keyboard interrupts. Set this parameter to False if your own threading program causes the problem. | True | |
callback | func | function called from _listen() periodically. | None | |
done_callback | func | function called when listener ends. | None | |
exception_handler | func | function called when exceptions occur. | None | |
direct_mode | bool | If True, invoke specified callback function without using buffer. | False | |
seektime | int |
|
0 | |
force_replay | bool | force to fetch archived chat data, even if specified video is live. | False | |
topchat_only | bool | If True, get only top chat. | False | |
replay_continuation | str | continuation parameter(archived chat only) | None |
The continuation parameter of recent chat data.
This parameter can be used for retrieving chat data of any timing by specifying in the constructor as replay_continuation
.
(This parameter is valid only archived chat data.)
description | return value |
---|---|
Get processed chat data from buffer. | processed chat data |
description | return value |
---|---|
Check if livechat stream is alive. | bool |
pause fetching chat (*callback mode only)
resume fetching chat (*callback mode only)
Finish getting the chat.
Raise internal excetion after is_alive() becomes False. By this function, you can check the reason for the termination.