如何通过YouTube API获取指定频道下一个Premiere首播的日期时间
YouTube API 查询频道下一个Premiere首播时间的实现方案
目前YouTube官方没有提供独立的专用接口直接返回指定频道下一个待上线Premiere的信息,但是可以通过YouTube Data API v3的现有公开接口组合调用拿到准确数据,具体操作逻辑如下:
- 第一步:拉取频道下所有即将上线的公开视频
调用Search.list接口,传入以下核心参数:part:赋值为snippetchannelId:填入你要查询的目标频道IDtype:赋值为videoeventType:赋值为upcoming,用于筛选所有待上线的直播、首播类内容order:赋值为date,让返回结果按排期时间从近到远排序maxResults:建议设为5-10,避免因排序误差漏过最近的排期内容
该接口调用单次消耗100单位API配额,返回结果包含所有公开状态的待上线视频条目,混合了普通直播和Premiere首播内容。
- 第二步:拉取视频详情提取首播时间、筛选Premiere内容
把第一步返回结果里的所有视频ID拼接成逗号分隔的字符串,传入Videos.list接口,核心参数如下:part:赋值为snippet,liveStreamingDetails,contentDetailsid:填入上一步收集到的视频ID列表
该接口调用单次仅消耗1单位配额,对返回的每个视频条目按以下规则判断:
- 先确认
snippet.liveBroadcastContent字段值为upcoming,排除已经开播、取消排期的内容 - 如果需要过滤普通直播、仅保留Premiere首播内容,可通过
contentDetails.duration字段区分:普通直播开播前没有固定时长,该字段返回值为PT0S;Premiere是提前上传完成的固定时长视频,该字段会返回具体的视频时长值 - 筛选出的Premiere条目中排序最靠前的,就是该频道下一个即将上线的首播内容,它的
liveStreamingDetails.scheduledStartTime字段就是官方预定的首播时间,为标准ISO 8601格式,可直接转换为对应时区的日期时间使用。
注意:如果频道将待上线的Premiere设置为私有、未列出状态,API无法获取到对应内容,只有公开状态的排期内容可以被查询到。
内容的提问来源于stack exchange,提问作者Seb
相关产品推荐
相关产品推荐

