无法从我不拥有的流中进行实时聊天

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)。

然后,您就可以收到聊天消息了。