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