无法从我不拥有的流中进行实时聊天
Can't get live chat from stream I do not own
我无法使用 YouTubeService_V3 API 从不属于我的直播流中读取聊天消息。
我想让服务器接收来自我不拥有的实时流的聊天消息。我只打算读取这些数据而不是写入。
如果我将 EventType 设置为 Live 并将 Type 设置为 video,我可以使用 YoutubeService/v3/search/list 来查找直播流,这会在我调试我的视频时提取有效的直播流代码。
为了与 YouTubeService/v3/LiveChatMessages/List.
一起使用,我似乎无法从这些流中获取 LiveChatID
任何帮助都将非常好。聊天消息已经 public,所以我认为没有隐私问题。
归根结底,我希望此服务器采用 broadcastID,例如 "pM4IfHZ5qcY",并且能够读取聊天消息,即使它不是我拥有的频道或流。
我希望有一些方法可以使用 YouTubeService_V3 从 broadcastID 中查找 LiveChatID,然后能够使用该 broadcastID 从中读取消息我不拥有的直播
您必须先发送带有频道 ID 的 youtube/v3/search 请求。当您获得直播的视频 ID 时,您必须发送带有视频 ID 的 youtube/v3/videos 请求,然后您可以获得 liveChatID...这是一个示例在 Python...
API_KEY = 'XXXXXXXXXXXXXXXXX'
channelID = '<Some Channel ID>'
params = {'part': 'id',
'key': API_KEY,
'channelId': channelID,
'eventType': 'live',
'type': 'video',
'order': 'viewCount',
'fields': 'items(id(videoId))'}
url = 'https://www.googleapis.com/youtube/v3/search'
r = requests.get(url, headers=None, params=params).json()
vID = r.get('items')[0].get('id').get('videoId')
params = {'part': 'liveStreamingDetails,statistics,snippet',
'key': API_KEY,
'id': vID,
'fields': 'items(id,liveStreamingDetails(activeLiveChatId,concurrentViewers,actualStartTime),' + \
'snippet(channelId,channelTitle,description,liveBroadcastContent,publishedAt,thumbnails,title),statistics)'}
url = 'https://www.googleapis.com/youtube/v3/videos'
r = requests.get(url, headers=None, params=params).json()
streamData = dict(r.get('items')[0])
chatID = streamData['liveStreamingDetails']['activeLiveChatId']
params = {'part': 'snippet,authorDetails',
'key': API_KEY,
'liveChatId': chatID,
'profileImageSize': 720,
'maxResults': 500}
url = 'https://www.googleapis.com/youtube/v3/liveChat/messages'
messages = requests.get(url, headers=None, params=params).json()
#messages contains chat messages
我希望有更好的方法,因为仅此一项,'search' 会占用您的 100 积分,而 google 只会给您 10,000...
您是否正在寻找一种方法来从您不拥有的实时流中读取聊天消息?
即使知道 liveChatId,也无法获取不属于您的直播的聊天消息。
但我只知道一种方法。
这个方法比较坑爹,但是你可以在网络上调用聊天(url是https://www.youtube.com/live_chat?v=videoId)。
然后,您就可以收到聊天消息了。
我无法使用 YouTubeService_V3 API 从不属于我的直播流中读取聊天消息。
我想让服务器接收来自我不拥有的实时流的聊天消息。我只打算读取这些数据而不是写入。
如果我将 EventType 设置为 Live 并将 Type 设置为 video,我可以使用 YoutubeService/v3/search/list 来查找直播流,这会在我调试我的视频时提取有效的直播流代码。
为了与 YouTubeService/v3/LiveChatMessages/List.
一起使用,我似乎无法从这些流中获取 LiveChatID任何帮助都将非常好。聊天消息已经 public,所以我认为没有隐私问题。
归根结底,我希望此服务器采用 broadcastID,例如 "pM4IfHZ5qcY",并且能够读取聊天消息,即使它不是我拥有的频道或流。
我希望有一些方法可以使用 YouTubeService_V3 从 broadcastID 中查找 LiveChatID,然后能够使用该 broadcastID 从中读取消息我不拥有的直播
您必须先发送带有频道 ID 的 youtube/v3/search 请求。当您获得直播的视频 ID 时,您必须发送带有视频 ID 的 youtube/v3/videos 请求,然后您可以获得 liveChatID...这是一个示例在 Python...
API_KEY = 'XXXXXXXXXXXXXXXXX'
channelID = '<Some Channel ID>'
params = {'part': 'id',
'key': API_KEY,
'channelId': channelID,
'eventType': 'live',
'type': 'video',
'order': 'viewCount',
'fields': 'items(id(videoId))'}
url = 'https://www.googleapis.com/youtube/v3/search'
r = requests.get(url, headers=None, params=params).json()
vID = r.get('items')[0].get('id').get('videoId')
params = {'part': 'liveStreamingDetails,statistics,snippet',
'key': API_KEY,
'id': vID,
'fields': 'items(id,liveStreamingDetails(activeLiveChatId,concurrentViewers,actualStartTime),' + \
'snippet(channelId,channelTitle,description,liveBroadcastContent,publishedAt,thumbnails,title),statistics)'}
url = 'https://www.googleapis.com/youtube/v3/videos'
r = requests.get(url, headers=None, params=params).json()
streamData = dict(r.get('items')[0])
chatID = streamData['liveStreamingDetails']['activeLiveChatId']
params = {'part': 'snippet,authorDetails',
'key': API_KEY,
'liveChatId': chatID,
'profileImageSize': 720,
'maxResults': 500}
url = 'https://www.googleapis.com/youtube/v3/liveChat/messages'
messages = requests.get(url, headers=None, params=params).json()
#messages contains chat messages
我希望有更好的方法,因为仅此一项,'search' 会占用您的 100 积分,而 google 只会给您 10,000...
您是否正在寻找一种方法来从您不拥有的实时流中读取聊天消息?
即使知道 liveChatId,也无法获取不属于您的直播的聊天消息。
但我只知道一种方法。
这个方法比较坑爹,但是你可以在网络上调用聊天(url是https://www.youtube.com/live_chat?v=videoId)。
然后,您就可以收到聊天消息了。