From 306b69198ecc0da3bfb28d4b0ea3ae59c0a35662 Mon Sep 17 00:00:00 2001
From: taizan-hokouto <55448286+taizan-hokuto@users.noreply.github.com>
Date: Tue, 3 Nov 2020 01:59:16 +0900
Subject: [PATCH] Update README
---
README.md | 70 +++++++++++++++++++++----------------------------------
1 file changed, 26 insertions(+), 44 deletions(-)
diff --git a/README.md b/README.md
index 9c2267b..eb634c0 100644
--- a/README.md
+++ b/README.md
@@ -5,9 +5,7 @@ pytchat is a python library for fetching youtube live chat.
## Description
pytchat is a python library for fetching youtube live chat
-without using youtube api, Selenium or BeautifulSoup.
-
-pytchatは、YouTubeチャットを閲覧するためのpythonライブラリです。
+without using Selenium or BeautifulSoup.
Other features:
+ Customizable [chat data processors](https://github.com/taizan-hokuto/pytchat/wiki/ChatProcessor) including youtube api compatible one.
@@ -16,7 +14,7 @@ Other features:
instead of web scraping.
For more detailed information, see [wiki](https://github.com/taizan-hokuto/pytchat/wiki).
-より詳細な解説は[wiki](https://github.com/taizan-hokuto/pytchat/wiki/Home_jp)を参照してください。
+[JP wiki](https://github.com/taizan-hokuto/pytchat/wiki/Home_jp)
## Install
```python
@@ -27,51 +25,45 @@ pip install pytchat
### CLI
One-liner command.
-Save chat data to html, with embedded custom emojis.
+Save chat data to html with embedded custom emojis.
+Show chat stream (--echo option) .
```bash
$ pytchat -v https://www.youtube.com/watch?v=ZJ6Q4U_Vg6s -o "c:/temp/"
# options:
# -v : Video ID or URL that includes ID
# -o : output directory (default path: './')
+# --echo : Show chats.
# saved filename is [video_id].html
```
-### on-demand mode
+### on-demand mode with simple non-buffered.
```python
-from pytchat import LiveChat
-livechat = LiveChat(video_id = "Zvp1pJpie4I")
-# It is also possible to specify a URL that includes the video ID:
-# livechat = LiveChat("https://www.youtube.com/watch?v=Zvp1pJpie4I")
-while livechat.is_alive():
- try:
- chatdata = livechat.get()
- for c in chatdata.items:
+import pytchat
+chat = pytchat.create(video_id="Zvp1pJpie4I")
+while chat.is_alive():
+ chatdata = chat.get()
+ for c in chatdata.sync_items():
print(f"{c.datetime} [{c.author.name}]- {c.message}")
- chatdata.tick()
- except KeyboardInterrupt:
- livechat.terminate()
- break
```
-### callback mode
+### callback mode with bufferd.
```python
from pytchat import LiveChat
import time
def main():
- livechat = LiveChat(video_id = "Zvp1pJpie4I", callback = disp)
+ chat = LiveChat(video_id = "Zvp1pJpie4I", callback = disp)
while livechat.is_alive():
#other background operation.
time.sleep(1)
- livechat.terminate()
+ chat.terminate()
#callback function (automatically called)
def disp(chatdata):
- for c in chatdata.items:
+ for c in chatdata.sync_items():
print(f"{c.datetime} [{c.author.name}]- {c.message}")
- chatdata.tick()
if __name__ == '__main__':
main()
@@ -92,9 +84,8 @@ async def main():
#callback function is automatically called.
async def func(chatdata):
- for c in chatdata.items:
+ async for c in chatdata.async_items():
print(f"{c.datetime} [{c.author.name}]-{c.message} {c.amountString}")
- await chatdata.tick_async()
if __name__ == '__main__':
try:
@@ -104,7 +95,6 @@ if __name__ == '__main__':
pass
```
-
### youtube api compatible processor:
```python
from pytchat import LiveChat, CompatibleProcessor
@@ -130,23 +120,12 @@ If specified video is not live,
automatically try to fetch archived chat data.
```python
-from pytchat import LiveChat
-
-def main():
- #seektime (seconds): start position of chat.
- chat = LiveChat("ojes5ULOqhc", seektime = 60*30)
- print('Replay from 30:00')
- try:
- while chat.is_alive():
- data = chat.get()
- for c in data.items:
- print(f"{c.elapsedTime} [{c.author.name}]-{c.message} {c.amountString}")
- data.tick()
- except KeyboardInterrupt:
- chat.terminate()
-
-if __name__ == '__main__':
- main()
+import pytchat
+chat = pytchat.get("ojes5ULOqhc", seektime = 60*30)
+while chat.is_alive():
+ chatdata = chat.get()
+ for c in chatdata.sync_items():
+ print(f"{c.datetime} [{c.author.name}]- {c.message}")
```
### Extract archived chat data as [HTML](https://github.com/taizan-hokuto/pytchat/wiki/HTMLArchiver) or [tab separated values](https://github.com/taizan-hokuto/pytchat/wiki/TSVArchiver).
```python
@@ -164,7 +143,7 @@ print("finished.")
```
## Structure of Default Processor
-Each item can be got with `items` function.
+Each item can be got with `sync_items()` function.
| name | @@ -298,6 +277,9 @@ Most of source code of CLI refer to: [PetterKraabol / Twitch-Chat-Downloader](https://github.com/PetterKraabol/Twitch-Chat-Downloader) +Progress bar in CLI is based on: + +[vladignatyev/progress.py](https://gist.github.com/vladignatyev/06860ec2040cb497f0f3) ## Author
|---|