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

时间:2018-04-23 11:54:12

标签: ios youtube-api youtube-data-api ytplayerview

我想过滤掉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)”。

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

请帮助&提前谢谢。

2 个答案:

答案 0 :(得分:2)

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

  1. 从您对PlayListItems的调用中获取所有视频ID。
  2. 使用部分“状态”Videos:List拨打电话,一次最多50个视频ID。
  3. 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":"已处理",     " privacyStatus":" public",     " license":" youtube",     " embeddable":是的,     " publicStatsViewable":true }

答案 1 :(得分:0)

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

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