後下達到你的要求使用Python YouTube API:
from gdata.youtube import service
USERNAME = '[email protected]'
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限制了可檢索到條目的數量。這就是我,當我嘗試了微調的版本,用一隻手的錯誤製作GetYouTubeVideoCommentFeed
URL參數:
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={start_index}&max-results={max_results}'
以下限制:start-index <= 1000
和max-results <= 50
。
這回答了[這裏](http://stackoverflow.com/questions/10941803/using-youtube-api-to-get-all-comments-from-a-video-with-the-json-feed)使用PHP的解決方案,因爲YouTube PHP API有一個允許它的調用。我不認爲純Python的答案就在那裏。 –
@KenB我也看到了。這太遺憾了。有問題的視頻有9k條評論,我不認爲製作360'GetNextLink'是最好的方法。 – TankorSmash
「www.youtube.com/all_comments?v = video_id」網址有一個可解析的評論列表,但這是一個很長的加載時間。假設我可以嘗試。 – TankorSmash