YouTube 数据 API v3:列出过去 24 小时内发布的频道的所有视频,忽略 "placeholders"

YouTube Data API v3: List all videos for a channel published in the last 24 hours, ignoring "placeholders"

我已经将一些代码投入生产 6 个月左右,每 24 小时运行一次,并从过去 24 小时(即自上次检查以来)发布的某些 YouTube 频道中提取所有视频。它一直运行良好。

但是,此代码监控的几个 YouTube 频道会在发布实际视频前一两天发布某种“占位符”或“预告片”,这意味着我的代码会“看到”视频两次:

  1. 占位符发布时;
  2. 实际视频发布时。

我对 #1 不感兴趣,因为还没有实际可用的视频,只是一个“即将推出”的预告片。我只对视频实际发布后的情况感兴趣。有没有办法从我的搜索中过滤掉这些占位符,以便我的代码仅在实际发布时“看到”视频?搜索参数是理想的,但如果这只能通过在我自己的代码中过滤结果(例如通过返回的元数据)来完成,那也可以。

作为参考,这里是 URL 我的代码命中率:

https://youtube.googleapis.com/youtube/v3/search?part=snippet&channelId=[CHANNEL_ID]&order=date&publishedAfter=[NOW_MINUS_24_HOURS]&key=[MY_API_KEY]

Here's an example of a video where this happened,尽管我认为没有任何方法可以知道占位符是在视频发布前一两天发布的。

由于您 can't change a video 在上传后使其变长(仅变短),并且上传新视频会产生新的 URL,我假设他们使用的是“Premiere”上传时的选项。

YouTube 首映选项的视频搜索结果将在实际播出前 json 返回以下 属性:

"liveBroadcastContent": "upcoming",

播出后将改为:

"liveBroadcastContent": "none",

我实际上没有看到将过滤器应用为查询参数的方法。在 search API 页面上列出了 &eventType=none&type=video,但这仅适用于 LIVE/broadcast 事件。这有点像 API 中的 inconsistency/incompleteness,恕我直言。