YouTube api v3 获取视频类别

Posted

技术标签:

【中文标题】YouTube api v3 获取视频类别【英文标题】:YouTube api v3 get video category 【发布时间】:2015-06-27 11:46:56 【问题描述】:

我正在将 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 实现。

提前致谢

【问题讨论】:

你到底在做什么?上传视频,或更新它们?你看过developers.google.com/youtube/v3/migration-guide吗? 我正在更新网站现有 api 的当前实现。当前的实现,只做 GET 请求。不需要文件或身份验证。是的,我已经看过了。 【参考方案1】:

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 密钥对其进行更新。否则它只会返回一个错误。

【讨论】:

【参考方案2】:

在 V3 中,您不查询提要,而是查询 RESTful 端点。因此,在您的情况下,如果您已经知道所需视频的 videoID,您将点击视频->列表端点,如下所示:

https://www.googleapis.com/youtube/v3/videos?part=snippet&id=comma separated list of video IDs&key=YOUR_API_KEY

生成的 json 数据包将有一个“项目”列表;每个“item”都有一个“categoryId”。

请注意,要获取有关类别 ID 本身的详细信息,您可以使用 videoCategories->list 端点,如下所示:

https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&id=comma separated list of ids&key=YOUR_API_KEY

类别不会经常更改,因此您可能会缓存大量此类数据,但有时让您的应用了解类别详细信息会很有帮助,因为该 API 还会返回自动生成的内容类别的频道 ID、本地化信息(其他语言和其他地区的类别标题是什么)等。

如果您还没有videoID,则不能使用video->list 端点,而必须使用search->list 端点。这使您可以访问使用大量参数来过滤您的搜索......所有都在这里描述:

https://developers.google.com/youtube/v3/docs/search/list

然而,这个问题是搜索端点的结果没有给你 categoryID,所以目前你必须从搜索结果中聚合所有 videoID 并调用 videos->list具有这些 id 的端点以获取类别。

【讨论】:

这更符合我正在寻找的内容。我发现了 videoCategory 端点,但我的问题是,一个视频可以有多个类别吗? @ddrjm 我不这么认为。 我有一个问题,如果你能帮忙,假设我想执行一个 category = "Education" 的查询,我该怎么做?

以上是关于YouTube api v3 获取视频类别的主要内容,如果未能解决你的问题,请参考以下文章

YouTube API V3 - 如何获得规范化的游戏标题?

使用新 API v3 获取 youtube 视频信息

YouTube API V3 - 为新提要获取推荐视频

如何在 YouTube api v3 中获取 YouTube 视频的 cc 字幕

用于获取频道视频的 Youtube api v3

Youtube API v3 - 如何以迭代方式获取视频列表