如何使用YouTube Data API v3中的“relatedTopicIds”?

时间:2016-05-10 13:19:23

标签: google-api youtube-api freebase wikidata-api google-knowledge-graph

如本文档所述:" Search with Freebase Topics"在可用的video中,当使用topicDetails作为part的参数时,YouTube Data API v3会提供某些Freebase MID。

我的问题是如何将这些返回的主题用于获取与该主题相关的所有视频(在视频中也作为示例提供),考虑到Freebase API目前不可用(它将来会被关闭)?

例如/m/0410tth,Google知识图在向我们发出请求时不会返回任何内容:

GET https://kgsearch.googleapis.com/v1/entities:search?ids=%2Fm%2F0410tth

对于维基数据,我还没有找到一种简单的方法来使用他们的数据。

我知道并非Freebase中的所有信息都已包含在GK图表中,而且我也知道Freebase的MIDs和维基数据{{{}之间存在一个映射文件。 1}},但他们现在似乎没有帮助我。

我应该如何利用YouTube为我提供的QIDs,以及如何将其与其他YouTube视频相关联?

这个问题不是关于如何使用Freebase MID进行维基数据搜索,而是关于Google官方如何利用其API所提供的topicIDs的官方回复并没有提供任何见解。

1 个答案:

答案 0 :(得分:2)

我不确定您的实际问题是什么,但目前的情况如下:Freebase已被弃用,但YouTube Data API v3仍然引用它,视频的topicDetails部分以Freebase标识符的形式返回相关主题。虽然我知道自Freebase关闭以来没有一致的标记方式,但您仍然可以使用它们根据标识符单独查找相关的YouTube视频。例如:

GET https://www.googleapis.com/youtube/v3/videos?part=id%2Csnippet%2CtopicDetails&id=hBoCRYX6Vq0&key={YOUR_API_KEY}

返回:

"topicDetails": {
    "topicIds": [
     "/m/0qsc46_",
     "/m/0gs0nr"
    ],
    "relevantTopicIds": [
     "/m/03hdbf",
     "/m/03cz_9n",
     "/m/0403l3g",
     "/m/025zzc",
     "/m/06zm8z",
     "/m/0bzvm2",
     "/m/0403l3g",
     "/m/025zzc",
     "/m/06zm8z"
    ]
}
(...)

我碰巧知道/m/0qsc46_是The Witcher 3游戏的主题,我想要其他视频,所以我只使用YouTube搜索方法:

GET https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&topicId=%2Fm%2F0qsc46_&type=video&key={YOUR_API_KEY}

不幸的是,AFAIK无法构建包含多个主题的查询。

我希望Freebase topicIds的一些替代品可以在几个月内出现在YTD API中。