如何从 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”的列表?