我有一个问题,我试图让 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:标签”。
尝试让它打印整个“片段”部分,给我除了“标签”和“类别ID”之外的所有内容
我认为问题归结为: 在数据表中哪里可以找到“tags”元素?
最佳答案
根据 Google 文档 ( https://developers.google.com/youtube/v3/docs/search#resource ),从搜索端点获取的 JSON 对象snippet 没有 tags 成员。因此,收到 KeyError 异常的代码表现出正确的行为。
要访问视频资源 ( https://developers.google.com/youtube/v3/docs/videos#snippet.tags[] ) 的 tags 属性,您必须在视频端点 ( https://developers.google.com/youtube/v3/docs/videos/list ) 上为您感兴趣的每个视频进行单独的 API 调用。
附录:您可以通过将这些视频(仅在一次 API 调用中)指定为参数 id 作为您感兴趣的视频,从而减少在视频端点上多次调用 API 的次数以逗号分隔的视频 ID 列表 ( https://developers.google.com/youtube/v3/docs/videos/list#id )。
关于Python 尝试从 youtube api 获取数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55365769/