如何通过YouTube API获取频道Shorts数量?相关技术咨询
YouTube API 获取频道Shorts数量相关问题解答
1. Shorts的官方定义
Shorts并非仅以时长≤60秒判定,官方标准是时长≤60秒的竖屏(宽高比9:16)视频,且通常由创作者标记为Shorts发布。但YouTube Data API中没有直接标记视频是否为Shorts的字段,实际统计时一般以「时长≤60秒」为核心筛选条件,再结合宽高比进一步精准过滤。
2. API能否直接获取Shorts数量?
目前YouTube Data API没有提供直接返回频道Shorts总数的接口,必须通过间接方式统计:
可行的统计方法
方法一:用Search.list接口筛选短时长视频
调用Search.list接口,指定目标频道ID,设置关键参数后分页遍历结果统计总数:channelId:目标频道IDtype=video:仅返回视频结果videoDuration=short:筛选时长≤60秒的视频(API官方定义该参数对应0-60秒的视频)maxResults=50:单次请求返回最大数量(上限50)
示例PHP代码(基于官方库):
$client = new Google\Client(); // 完成客户端授权、API密钥配置(此处省略) $youtube = new Google\Service\YouTube($client); $channelId = "目标频道ID"; $totalShorts = 0; $pageToken = ""; do { $searchResponse = $youtube->search->listSearch("id", [ 'channelId' => $channelId, 'type' => 'video', 'videoDuration' => 'short', 'maxResults' => 50, 'pageToken' => $pageToken ]); $totalShorts += count($searchResponse['items']); $pageToken = $searchResponse->getNextPageToken(); } while ($pageToken); echo "Shorts数量:" . $totalShorts;方法二:先获取全量视频再过滤短时长
先通过PlaylistItems.list接口获取频道「上传」列表的所有视频ID,再调用Videos.list接口批量获取视频的contentDetails.duration字段,解析时长后统计≤60秒的数量。这种方式配额消耗更低,但适合视频数量较少的频道。
3. 注意事项
- API配额限制:
Search.list单次调用消耗100单位配额,视频量大的频道容易耗尽配额,需合理规划调用频次。 - 精准度优化:
videoDuration=short会包含部分非Shorts的短时长横屏视频,若要更精准,可在获取视频ID后调用Videos.list获取contentDetails.dimension字段,筛选宽高比为9:16的视频(如维度值为"1080x1920")。
内容的提问来源于stack exchange,提问作者Oksana Gritsjuk
相关产品推荐
相关产品推荐

