ライブのコメントを全部みてみる
橘ひなのさん(vtuber)の全ての動画のライブコメントを取得しました。
./Thinano/data/0IFEp1Bt3qw.jsonをみてください。
データは、https://github.com/1k-ct/Thinano 全部ここにあります。
nameがコメントした人の名前、messageがコメントです。
:_naa::_noo: ← これは、メンバーの人だけが使えるスタンプです。
- 他の動画のコメントを見る
- ここをクリックする。
- commentをクリックする。
- 見たいファイルを選ぶ
https://www.youtube.com/watch?v=oQmgxXbT8OE は, oQmgxXbT8OE.jsonこんな感じにしてます - View raw を押してファイルをみてみてください。
スーパーチャットの金額
ここはスパチャの各動画の金額です。
スパチャが一番多い動画は、【祝】収益化きちゃ~~!!6000人もありがとう♡【IBG/橘ひなの】この動画で、約40万円でしょうか?
{
"oQmgxXbT8OE": {
"¥": 371203.0,
"PHP ": 500.0,
"₩": 2000.0,
"CA$": 55.0,
"A$": 10.0
}
}
ここからは、調査方法の紹介
今からは、下の2つのURLの一部を紹介です。
https://github.com/taizan-hokuto/pytchat
https://github.com/taizan-hokuto/pytchat/wiki/Home_jp
環境
Python 3.8.5
pytchat 0.4.2
$ pip install pytchat
ライブコメントを取得
公式見てください。
https://github.com/taizan-hokuto/pytchat/wiki/PytchatCore_
import pytchat
import time
# PytchatCoreオブジェクトの取得
livechat = pytchat.create(video_id = "Zvp1pJpie4I")# video_idはhttps://....watch?v=より後ろの
while livechat.is_alive():
# チャットデータの取得
chatdata = livechat.get()
for c in chatdata.items:
print(f"{c.datetime} {c.author.name} {c.message} {c.amountString}")
'''
JSON文字列で取得:
print(c.json())
'''
time.sleep(5)
スーパーチャット
これも、公式見てください。
https://github.com/taizan-hokuto/pytchat/wiki/SuperchatCalculator_
- 進捗バーをインストール
$ pip install tqdm
from tqdm import tqdm
from pytchat import Extractor, VideoInfo, SuperchatCalculator
import signal
'''
進捗状況を表すプログレスバー
'''
class ProgressBar:
def __init__(self,total):
self.total = total*1000
self.pbar = tqdm(total = self.total, ncols = 80, unit_scale = 1,
bar_format='{desc}{percentage:3.1f}%|{bar}|'
'[{n_fmt:>7}/{total_fmt}]{elapsed}<{remaining}')
def callback(self, actions, fetched):
if self.total - fetched < 0:
fetched = self.total
self.total -= fetched
self.pbar.update(fetched)
def close(self):
self.pbar.update(self.total)
self.pbar.close()
def cancel(self):
self.pbar.close()
if __name__ == '__main__':
video_id = "GY-LSsYVpJ4"
info = VideoInfo(video_id)
print('Calculate Superchat: [title] ', info.get_title())
# プログレスバーを用意する。
pbar = ProgressBar(info.get_duration())
# Extractorの生成
ex = Extractor(
video_id,
callback = pbar.callback,
div = 10,
processor = SuperchatCalculator()
)
#Ctrl+Cでキャンセルする
signal.signal(signal.SIGINT,
(lambda a, b: ex.cancel()))
#抽出の実行
result = ex.extract()
#集計結果の表示
pbar.close()
print(result)
引用
おわりに
説明などは、全て上のURLにあります。
紹介だけで記事にして良いか迷いました。
あと、スーパーチャットのjsonが見づらいです。直そうと思います。
なにかあれば連絡お願いします。ありがとうございます。