如何从 Youtube 播放列表 API 中过滤掉不可嵌入的视频

Posted

技术标签:

【中文标题】如何从 Youtube 播放列表 API 中过滤掉不可嵌入的视频【英文标题】:How do I filter out videos non-embeddable videos from Youtube playlist API 【发布时间】:2018-10-03 11:07:26 【问题描述】:

我想像在搜索 API 中那样从 Youtube Playlist API 中过滤掉不可嵌入的视频。

我正在将 videoEmbeddable=true 用于像 "https://www.googleapis.com/youtube/v3/search?part=snippet&q=(searchText)&type=video&maxResults=20&videoEmbeddable=true&key=(YTApiKey)" 之类的搜索 api,它工作正常。

但是如何在 Playlist API 中做同样的事情呢?

“https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,status&maxResults=50&playlistId=(id)key=(YTApiKey)”。

参数 videoEmbeddable=true 似乎不适用于 playlistItems API。

请提前帮助和感谢。

【问题讨论】:

【参考方案1】:

可以通过一些额外的步骤来完成。如前所述,PlaylistItems 不接受该参数,并且在 status 部分中不包含 embeddable 数据,因此我们必须为此额外调用 Videos:List。

    从您对 PlayListItems 的调用中获取所有视频 ID。 在呼叫Videos:List 时使用它们,并带有“状态”部分,一次最多50 个视频ID。

3 个视频 ID 的示例:

GET https://www.googleapis.com/youtube/v3/videos?part=status&id=Ks-_Mh1QhMc%2Cc0KYU2j0TM4%2CeIho2S0ZahI&key=YOUR_API_KEY

    然后检查每个项目的状态,将 embeddable 字段设置为 true。

    “状态”: "uploadStatus": "已处理", “privacyStatus”:“公共”, “许可证”:“youtube”, “可嵌入”:是的, “publicStatsViewable”:真

【讨论】:

【参考方案2】:

我不认为可以这样做,因为播放列表是视频的集合,并且集合中的一些视频可能是可嵌入的,而有些可能是例如。

从 API 获取播放列表后,您可以查询播放列表中包含的视频,以查看给定视频是否可嵌入...

【讨论】:

以上是关于如何从 Youtube 播放列表 API 中过滤掉不可嵌入的视频的主要内容,如果未能解决你的问题,请参考以下文章

YouTube API:如何使用标签 Y 从频道 X 获取视频?

如何使用 javascript API 和 json 获取 youtube 播放列表

YouTube Api 播放列表视频限制为 50 个。如何获取更多?

YouTube API V3:我在哪里可以找到每个“videoCategoryId”的列表?

在单个页面上嵌入多个 YouTube 播放列表供稿? jQuery/YouTube API v3

YouTube Data v3 API - 如何从频道请求所有视频?