gpt4 book ai didi

python - 如何使用 Python 的 gdata 模块获取所有 YouTube 评论?

转载 作者:太空狗 更新时间:2023-10-30 00:46:00 26 4
gpt4 key购买 nike

希望从给定视频中获取所有评论,而不是一次翻一页。

from gdata import youtube as yt
from gdata.youtube import service as yts

client = yts.YouTubeService()
client.ClientLogin(username, pwd) #the pwd might need to be application specific fyi

comments = client.GetYouTubeVideoComments(video_id='the_id')
a_comment = comments.entry[0]

上面的代码让您可以获取单个评论,可能是最近的评论,但我正在寻找一种方法来一次获取所有评论。这可以用 Python 的 gdata 模块实现吗?


comments 的 Youtube API 文档, 评论提要 docs和 Python API docs

最佳答案

以下使用 Python YouTube API 实现了您的要求:

from gdata.youtube import service

USERNAME = 'username@gmail.com'
PASSWORD = 'a_very_long_password'
VIDEO_ID = 'wf_IIbT8HGk'

def comments_generator(client, video_id):
comment_feed = client.GetYouTubeVideoCommentFeed(video_id=video_id)
while comment_feed is not None:
for comment in comment_feed.entry:
yield comment
next_link = comment_feed.GetNextLink()
if next_link is None:
comment_feed = None
else:
comment_feed = client.GetYouTubeVideoCommentFeed(next_link.href)

client = service.YouTubeService()
client.ClientLogin(USERNAME, PASSWORD)

for comment in comments_generator(client, VIDEO_ID):
author_name = comment.author[0].name.text
text = comment.content.text
print("{}: {}".format(author_name, text))

遗憾的是,API 将可检索的条目数限制为 1000。这是我在尝试使用手工制作的调整版本时遇到的错误 GetYouTubeVideoCommentFeed网址参数:

gdata.service.RequestError: {'status': 400, 'body': 'You cannot request beyond item 1000.', 'reason': 'Bad Request'}

请注意,同样的原则也适用于检索 API 的其他提要中的条目。

如果您想手工制作GetYouTubeVideoCommentFeed URL参数,其格式为:

'https://gdata.youtube.com/feeds/api/videos/{video_id}/comments?start-index={sta‌​rt_index}&max-results={max_results}'

以下限制适用:start-index <= 1000max-results <= 50 .

关于python - 如何使用 Python 的 gdata 模块获取所有 YouTube 评论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12826680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com