最近,我正在研究在线聊天消息模式。我选择YouTube和Twitch.tv作为聊天消息的来源。
因此,我找到了用于实时实时流的聊天记录器,但是我还需要已播出的实时流的日志/历史记录,以允许实时聊天重播。 (如https://www.youtube.com/watch?v=1JfohG5a8y8)
有用于Twitch.tv(RechatTool from jdpurcell)的工具,但我在YouTube上找不到类似的工具。
因此,我检查了 YouTube API for livestream messages,但找不到实时聊天重播的任何说明或提示。有没有可能的解决方案?
答案 0 :(得分:11)
我知道这是一个很晚的回应,但它可能会对其他人有所帮助。我开发了一种工具,可以检索YouTube / Twitch聊天消息以获取过去的广播/ VOD。这是源代码的链接:
https://github.com/xenova/chat-replay-downloader
可以从命令行或python中的模块访问程序。 我还提供了指定开始时间和/或结束时间的功能-如果您不想下载整个聊天记录,该功能很有用。
对于每个消息,将检索以下数据:timestamp
(unix微秒,例如1590865172190236),time_text
(人类可读文本,例如4:00:00),time_in_seconds
(时间(以秒为单位,例如14400),author
(发送方的用户名)和message
(实际消息)。
这是我的用法示例:
(1)给定URL的所有聊天消息的输出文件
python chat_replay_downloader.py <video_url> -output <file_name>
如果文件名以.json结尾,则数组将以JSON格式写入文件。否则,聊天消息将以以下格式输出到文件:
[<time>] <author>: <message>
(2)聊天消息的输出文件,从一定时间(以秒为单位)开始直到结束
python chat_replay_downloader.py <video_url> -start_time <time_in_seconds> -output <file_name>
(3)聊天消息的输出文件,从开始到特定时间(以秒为单位)结束
python chat_replay_downloader.py <video_url> -end_time <time_in_seconds> -output <file_name>
(4)聊天消息的输出文件,在某些时间(以秒为单位)开始和结束
python chat_replay_downloader.py <video_url> -start_time <time_in_seconds> -end_time <time_in_seconds> -output <file_name>
示例输出:
python chat_replay_downloader.py https://www.youtube.com/watch?v=pMsvr55cTZ0 -start_time 14400 -end_time 15000 -output example.json
python chat_replay_downloader.py https://www.youtube.com/watch?v=pMsvr55cTZ0 -start_time 14400 -end_time 15000 -output example.csv
python chat_replay_downloader.py https://www.youtube.com/watch?v=pMsvr55cTZ0 -start_time 14400 -end_time 15000 -output example.txt
导入模块:
import chat_replay_downloader
或
from chat_replay_downloader import get_chat_replay, get_youtube_messages, get_twitch_messages
以下示例将使用第二种导入方式。
示例:
(1)返回给定视频URL的所有聊天消息的列表:
youtube_messages = get_chat_replay('https://www.youtube.com/watch?v=xxxxxxxxxxx')
twitch_messages = get_chat_replay('https://www.twitch.tv/videos/xxxxxxxxx')
(2)返回给定视频ID的所有聊天消息的列表
youtube_messages = get_youtube_messages('xxxxxxxxxxx')
twitch_messages = get_twitch_messages('xxxxxxxxx')
以下示例使用了所有三种方法(get_chat_replay, get_youtube_messages,get_twitch_messages)。以下两个参数都是可选的:
(3)返回从特定时间(以秒为单位)开始的聊天消息列表
messages = get_chat_replay('video_url', start_time = 60) # Start at 60 seconds and continue until the end
(4)返回聊天消息列表,该列表在特定时间(以秒为单位)结束
messages = get_chat_replay('video_url', end_time = 60) # Start at 0 seconds (beginning) and end at 60 seconds
(5)返回聊天消息列表,在某些时间(以秒为单位)开始和结束
messages = get_chat_replay('video_url', start_time = 60, end_time = 120) # Start at 60 seconds and end at 120 seconds