(YouTube API v3)对Search.list的GET请求返回空响应



我正在开发一个python程序,以检索作为搜索结果显示的所有视频的信息(视频id、视频作者等)(q="癌症+vlog")。

我有以下GET请求,它首先运行:

  results = youtube.search().list(
            order="relevance",
            part="snippet",
            publishedAfter="2015-06-01T00:00:00Z",
            maxResults=50,
            type="video",
            q="cancer+vlog"
            ).execute()

在处理了第一批结果(maxResults=50中指定的最多50个视频)后,我检查的结果extPageToken密钥。如果是这样,那么我使用上一次运行中的nextPageToken运行另一个GET请求:

  results = youtube.search().list(
            pageToken = results["nextPageToken"],
            order="relevance",
            part="snippet",
            publishedAfter="2015-06-01T00:00:00Z",
            maxResults=50,
            type="video",
            q="cancer+vlog"
            ).execute()

由于我想从搜索结果中检索所有视频,我使用pageToken重复GET请求,直到结果不包含nextPageToken键。这似乎很好,直到程序达到大约600个视频,然后服务器继续给出200个没有任何视频信息的响应,基本上是一个空的结果["项目"]数组(即使要检索大约600K视频)。我想知道有没有人经历过这种情况?

我不想再写这篇文章了,但如果有人对整个代码库感兴趣,可以在这里:http://pastebin.com/vXeiQ6cz

实际上,你在youtube数据api上进行了服务器加载,官方表示,youtube不使用这个api,它是为像我们这样的其他用户准备的,Python是一种服务器端语言,通过你的脚本,你向api发送了太多的查询,或者得到了请求,这就是为什么它会显示这种类型的错误。我不是python开发人员。我是php的家伙,php中有一个函数sleep可以延迟执行一段时间,如果有类似的东西你可以使用它。希望它能帮助你。

相关内容

  • 没有找到相关文章

最新更新