无法从我不拥有的信息流中获得实时聊天

时间:2019-07-30 01:09:18

标签: youtube-livestreaming-api

我无法使用 YouTubeService_V3 API 从不属于我的实时流中读取聊天消息。

我希望服务器从我不拥有的实时流中接收聊天消息。我只打算读取此数据,而不要写入。

如果我将EventType设置为Live,将Type设置为video,则可以使用 YoutubeService / v3 / search / list 查找实时流,这在调试代码时会提取有效的实时流。 / p>

尽管为了与 YouTubeService / v3 / LiveChatMessages / List 一起使用,我似乎无法从这些流中获取LiveChatID。

任何与此有关的帮助都将非常好。聊天消息已经公开,因此我认为没有隐私问题。

在一天结束时,我希望该服务器采用 broadcastID ,例如“ pM4IfHZ5qcY”,并且即使不是频道或流媒体,也能够读取聊天消息我拥有的。

我希望可以通过某种方式使用 YouTubeService_V3 从广播ID查找LiveChatID,然后能够使用该广播ID从我不拥有的实时流中读取消息< / p>

2 个答案:

答案 0 :(得分:1)

您必须先发送带有频道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

我希望有一种更好的方法,因为仅此一项,“搜索”就占了您的配额的100分,而Google只给了您10,000分。

答案 1 :(得分:0)

您是否正在寻找一种方法来从您不拥有的实时流中读取聊天消息?

即使您知道liveChatId,也无法获得您不拥有的实时流的聊天消息。

但是我只知道一种方式。

这是一个棘手的方法,但是您可以在网络上调用聊天(URL为https://www.youtube.com/live_chat?v=videoId)。

然后,您可以获取聊天消息。