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

How do I filter out videos non-embeddable videos from Youtube playlist API

我想从 Youtube 播放列表 API 中过滤掉不可嵌入的视频,就像我在搜索 API 中所做的那样。

我正在使用 videoEmbeddable=true 进行搜索 api,例如 "https://www.googleapis.com/youtube/v3/search?part=snippet&q=(searchText)&type=video&maxResults=20&videoEmbeddable=true&key=(YTApiKey)",它正在运行美好的。

但是我如何在播放列表中做同样的事情 API?

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

参数 videoEmbeddable=true 似乎不适用于播放列表项目 API。

请帮助并提前致谢。

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

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

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

  1. 从您对 PlayListItems 的调用中获取所有视频 ID。
  2. 在调用 Videos:List 的部分 'status' 中使用它们,一次最多 50 个视频 ID。

3 个视频 ID 的示例:

GET https://www.googleapis.com/youtube/v3/videos?part=status&id=Ks-_Mh1QhMc%2Cc0KYU2j0TM4%2CeIho2S0ZahI&key={YOUR_API_KEY}
  1. 然后检查每个项目的状态,将 embeddable 字段设置为 true。

    "status": { "uploadStatus": "processed", "privacyStatus": "public", "license": "youtube", "embeddable": 是的, "publicStatsViewable":真 }