如何查看YouTube视频上最古老的评论



我试图使用YouTube数据api来获取某个YouTube视频上最古老的评论,但我认为通过api这是不可能的。我必须获得视频上的每一条评论,然后订购它才能完成这项任务吗?除了hadzy.com,还有其他网站可以帮助我吗?

  1. 可以使用YouTube Data API v3检索某个YouTube视频上最旧的评论,但不使用单个查询即可检索AFAIK。

  2. 默认情况下,注释是按时间排序的,最新的第一个,请参阅CommentThreads:list

  3. 我测试了emapc,但它不起作用,或者太慢了。

如果你正在寻找MrBeast上的第一位评论作家,他的挑战赢得了10000美元。然后,据我所知,Beast先生在几分钟内确定Troy Gaines赢了(根据我的说法,他的频道应该是这个频道,并在20:00:01发布了评论$$$(。然而,通过运行以下Python算法,您可以验证他不是第一个,而是Marina Marcon在19:59:59评论了Meu(视频在19:59:99公开(使用视频:列表进行检查(,假设这两个人都没有更改姓名(:

import json, requests
# https://www.youtube.com/watch?v=VIDEO_ID gives the approximate number of comments we have to retrieve
def curl(url):
return requests.get(url).text
API_KEY = 'API_KEY'
VIDEO_ID = '2isYuQZMbdU'
nextPageToken = ''
itemsCounter = 0
while True:
url = f'https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId={VIDEO_ID}&key={API_KEY}&maxResults=100'
if nextPageToken != '':
url += f'&pageToken={nextPageToken}'
responseStr = curl(url)
try:
responseJSON = json.loads(responseStr)
except:
print(url, responseStr)
items = responseJSON['items']
for item in items:
if 'Troy Gaines' == item['snippet']['topLevelComment']['snippet']['authorDisplayName']:
print(item)
ids = [item['id'] for item in items]
itemsCounter += len(items)
print(nextPageToken, itemsCounter, len(items))
if 'nextPageToken' in responseJSON and nextPageToken != responseJSON['nextPageToken']:
nextPageToken = responseJSON['nextPageToken']
else:
print(url, items[-1])
break