【问题标题】:(YouTube API v3) GET request to Search.list returns empty responses(YouTube API v3)对 Search.list 的 GET 请求返回空响应
【发布时间】:2016-11-28 09:44:23
【问题描述】:

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

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

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

在处理完第一批 results(maxResults=50 中指定最多 50 个视频)后,我检查 results 是否包含 nextPageToken键。如果是这样,那么我使用上一次运行的 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 请求,直到 results 不包含 nextPageToken 键。这似乎工作正常,直到程序达到约 600 个视频,然后服务器继续提供 200 个响应而没有任何视频信息,本质上是一个空的 results["items"] 数组(即使有大约 600K要检索的视频)。不知道有没有人遇到过这种情况?

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

【问题讨论】:

标签: python youtube youtube-api youtube-data-api


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    相关资源
    最近更新 更多