尝试从YouTube API获取数据的Python错误

时间:2019-03-26 20:33:22

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

我遇到了一个问题,我正在尝试让Python通过Youtube API搜索视频,部分代码无法正常工作。当我尝试获取视频标签时,它给了我一个错误。

到目前为止,我已经使用了Google的示例“ search_by_keyword”。 运行良好。但是,我已对其进行了一些更改。 我想要的是Python给我提供带有该视频中标签的视频ID。 我尝试调试,方法是打印表的整个“片段”部分,似乎在“片段”中根本找不到“标签”

仅添加了一部分代码,其余代码都可以找到。

for search_result in search_response.get("items", []):
 if search_result["id"]["kind"] == "youtube#video":
   videos.append("%s (%s)" % (search_result["snippet"]["tags"],
                              search_result["id"]["videoId"]))
print ("Videos:\n", "\n".join(videos), "\n")

videos.append("%s (%s)" % (search_result["snippet"]["tags"]

我希望它在这里为我提供视频的标签,但只会出现回溯错误“ keyerror:标签”。

试图使它打印整个“代码段”部分,除了“标签”和“类别”之外,给了我一切

我认为问题归结为: 我在数据表的哪里找到“标签”元素?

1 个答案:

答案 0 :(得分:2)

根据Google的文档(https://developers.google.com/youtube/v3/docs/search#resource),从Search端点获取的JSON对象片段没有 tags 成员。因此,您的代码遇到KeyError异常时,表现出正确的行为。

要访问视频资源(https://developers.google.com/youtube/v3/docs/videos#snippet.tags[])的 tags 属性,您必须为在视频端点({{3} }。

附录:您可以通过在参数 id 中将这些视频(仅在一次API调用中)指定为相应视频,从而减轻在视频端点上针对感兴趣视频的API的调用次数视频ID s(https://developers.google.com/youtube/v3/docs/videos/list)的逗号分隔列表。