通过 Youtube API 查找首映

Alb*_*pez 5 youtube-api youtube-data-api

首映是直播和传统 YouTube 视频的混合。详细说明:https : //wersm.com/youtube-makes-premieres-available-to-everyone/

有没有办法通过 Youtube API 查找频道的首映?,是否有任何播放列表,类似于自动生成的直播播放列表(https://www.youtube.com/channel/UC4R8DWoMoI7CAwX8_LjQHig),只有首映?

YouTube 搜索:列表端点 ( https://developers.google.com/youtube/v3/docs/search/list ) 不包括此类视频的事件类型过滤器。仅包括“即将到来”和“现场”事件过滤器,但它们不适用于首映。仅使用实时内容。

提前致谢。

此致。

Ali*_*nes 1

我发现的唯一方法是:

  1. liveBroadcastContent使用带有频道 ID 过滤器的搜索端点来构建频道中已设置为的所有视频的列表upcoming。这将为您提供所有首映视频以及直播视频的列表。

  2. 将搜索端点与通道 id 过滤器eventType和upcoming. 这将为您提供所有直播的列表。

  3. 取两组 id 的差值。

我刚刚测试过,它适用于我的频道,但我承认它在配额消耗方面相当昂贵。这不是一个很好的答案,但却是唯一的答案。:)

或者,如果可以对您的内容上传者施加一些限制,那么我建议您要么要求他们 1) 在视频描述中添加哈希标签,要么 2) 将视频添加到特殊的、公开的但未列出的播放列表。这样,您的应用程序就可以搜索该哈希标签或从该播放列表中读取,后者的配额消耗要便宜得多。

更新

另一种方法:

  1. liveBroadcastContent使用带有频道 ID 过滤器的搜索端点来构建频道中已设置为的所有视频的列表upcoming。这将为您提供所有首映视频以及直播视频的列表。

  2. 将视频端点与您从上面收集的 ID 列表一起使用,并确保将其contentDetails作为参数的一部分part。您可以在此处查看视频的时长。它会类似于这样的东西

     "contentDetails": {
        "duration": "P0D",
        "dimension": "2d",
        "definition": "sd",
        "caption": "false",
        "licensedContent": false,
        "contentRating": {},
        "projection": "rectangular"
      },
Run Code Online (Sandbox Code Playgroud)

该视频绝对是即将推出的直播,因为它的持续时间为零P0D。即将到来的首映已经有固定的非零持续时间。

  1. 保留任何时长非零的视频。

那也可以。