首页 > 解决方案 > 如何使用 Youtube API v3 按类别过滤视频?

问题描述

我正在尝试在 python 中构建一个 Youtube 查询,以过滤掉例如类别 39 - 恐怖。我正在寻找类似的东西:

searchResults = YouTube.Search.list('id,snippet', {
    maxResults: "10",
    q: "The ring",
    type: "video",
    videoCategoryId: "-10"
  });

或任何一种解决方法。

我什至考虑过不使用过滤器进行搜索,然后尝试从该类别中排除那些,但查询提供的信息不包括视频的类别。它非常难看,因为我真的想要 10 个结果,而且我可能需要进行更多查询才能填写列表。

我发现谷歌搜索的只是如何从指定类别中获取视频。

你能帮助我如何实现这一目标吗?

标签: pythonyoutube-data-api

解决方案


通过使用 YouTube 数据 API,您可以在此处查看现有的 videoCategories。

在 Google API Explorer 中提供的这个演示中,您可以检索 videoCategories。

选择 后videoCategoryId,使用以下搜索请求:

https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=10&q=The+ring&regionCode=US&type=video&videoCategoryId=1&fields=items(id(channelId%2CvideoId)%2Csnippet(channelId%2CchannelTitle%2Cdescription%2Ctitle))%2CnextPageToken%2CpageInfo%2CprevPageToken%2CregionCode&key={YOUR_API_KEY}

在这里,我使用search.list“来自美国地区”的获取视频的请求,其中videoCategoryId1 =(Film & Animation)并从上传视频的频道中检索titleYouTube 视频的 、videoIdchannel titlechannel_id

这是演示

似乎videoCategoryId并非所有地区都支持(这可能是我无法检索videoCategoryId=39“这是美国的恐怖类别”的视频的原因)

有关更多信息,请阅读此答案


推荐阅读