我正在努力将v2实现迁移到v3,但是我很难理解API v3是如何分段的。我正在尝试从API获取视频详细信息,但是,例如,我无法找到视频类别名称的存储位置。
在v2实现中,我有:
$title = $info->entry->title->{'$t'};
$content = nl2br($info->entry->{'media$group'}->{'media$description'}->{'$t'});
以及
$info->entry->category
我如何将其转换为v3实现?
目前api(v2)正在查询:
http://gdata.youtube.com/feeds/api/videos/
什么是v3等价物? 这是一个PHP实现btw。
提前致谢
答案 0 :(得分:3)
在V3中,您不会查询供稿,而是查询RESTful端点。因此,在您的情况下,如果您已经知道所需视频的视频ID,则可以点击视频 - >列表端点,如下所示:
https://www.googleapis.com/youtube/v3/videos?part=snippet&id={comma separated list of video IDs}&key={YOUR_API_KEY}
生成的json数据包将包含一个'项目'列表;每个项目'有一个' categoryId'。
请注意,要获取有关类别ID本身的详细信息,您可以使用videoCategories->列表端点,如下所示:
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&id={comma separated list of ids}&key={YOUR_API_KEY}
这些类别不会经常更改,因此您可能会缓存大量此类数据,但有时候您的应用可以跟上类别详细信息,因为该API也会返回类似自动的内容 - 生成的类别的频道ID,本地化信息(该类别的标题在其他语言和其他地区的内容)等。
如果您已经拥有视频ID,则无法使用videos->列表端点,而必须使用search->列表端点。这使您可以使用大量参数来过滤搜索...所有内容都在这里描述:
https://developers.google.com/youtube/v3/docs/search/list
然而,问题在于搜索端点的结果没有为您提供categoryID,因此目前您必须汇总搜索结果中的所有视频ID并拨打视频电话 - >列出具有这些ID的端点以获取类别。
答案 1 :(得分:0)
V3需要API密钥,即使对于GET请求也是如此。看看V3 Quota
除此之外,V3 API在以下位置查询:
https://www.googleapis.com/youtube/v3/
获取视频的类别将类似于:
https://www.googleapis.com/youtube/v3/videos?id=R90v8-Vea-Q&part=categoryID&key=[api-key]
您需要使用API密钥更新它。否则它只会返回一个错误。