【问题标题】:How to get the current view count of all videos on a channel from the youtube API?如何从 youtube API 获取频道上所有视频的当前观看次数?
【发布时间】:2025-11-23 00:30:01
【问题描述】:

而订阅计数在

www.googleapis.com/youtube/v3/channels?part=statistics

似乎是即时更新的,浏览量每天都会更新。

我发现的一种解决方法是使用

列出“已上传”播放列表中的所有视频
www.googleapis.com/youtube/v3/playlistItems?part=contentDetails

并遍历它们,调用

www.googleapis.com/youtube/v3/videos?part=statistics

对于每个。这似乎得到了最准确的结果,虽然它需要为每个上传的视频超过 3 个学分,因此使用我的配额相对较快。

有没有更快的方法解决这个问题?
我想在 ESP8266 上实现它,因此最好不需要大量存储或处理能力。

【问题讨论】:

    标签: youtube youtube-api youtube-data-api


    【解决方案1】:

    您可以通过获取liveStreamingDetails 来获取观看次数,liveStreamingDetails 对象包含有关实时视频广播的元数据。仅当视频是即将到来的、实况的或已完成的实况广播时,该对象才会出现在视频资源中。然后,在此之下,您将获得concurrentViewers。它将显示当前观看广播的观众人数。如果广播有当前观众并且广播所有者没有隐藏视频的观看次数,则该属性及其值将存在

    编辑

    具体到您的用例,我相信由两部分组成的 API 将有助于您的查询。

    我正在考虑您调用search 查询来检索频道的所有视频。 Search 资源将具有 id.videoId,您将在 list 调用中将其连接起来。这将为您提供每个视频的 statistics.viewCount,您需要将其相加以获得总频道观看次数。

    希望这对您的询问有所帮助。

    编码愉快!

    【讨论】:

    • 我问的不是如何获取某个直播的观看次数,而是如何获取当前所选频道所有视频的总观看次数。
    • 更改了标题以更好地反映它。
    • 请查看我的更新答案,希望它足以满足您的需要。
    • "除了指定资源部分的成本外,对该方法的调用还有 1 个单位的配额成本。"因此,每 50 个视频的总成本将是 3(列出播放列表中的视频)+ 3(从 ID 获取统计信息),对吗?并且所有未来的调用都可以使用缓存的视频 ID?
    • Videos:list 调用只需要你 3 分,因为你只需要statistics 部分(search 调用并不表明是否有配额成本,我是假设没有)。但是,未来的调用可能仍会产生配额费用。