YouTube API“每天查询”超过约 3 小时

Posted

技术标签:

【中文标题】YouTube API“每天查询”超过约 3 小时【英文标题】:YouTube API "Queries per day" exceed in about 3 hours 【发布时间】:2021-05-09 19:13:15 【问题描述】:

我创建了一个使用 YouTube 数据 API 将视频上传到 YouTube 的程序。

我的程序流程是:

    使用网址在谷歌页面登录谷歌账户 https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent&include_granted_scopes=true&client_id=YouTubeAppId&redirect_uri=RedirectURL&response_type=code&scope=Uri.EscapeDataString(https://www.googleapis.com/auth/youtube.readonly https://www.googleapis.com/auth/youtube.upload https://www.googleapis.com/auth/youtube.force-ssl https://www.googleapis.com/auth/userinfo.profile) 获取令牌的交换码:POSThttps://oauth2.googleapis.com/token 获取用户频道ID:GEThttps://youtube.googleapis.com/youtube/v3/channels?part=snippet,statistics&mine=true&access_token=AccessToken。 然后我选择视频并将其拆分为 1Mb 块。 获取上传网址:POSThttps://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable&part=snippet,status,contentDetails&access_token=token 带模型 使用上一步中 Location 标头中的 URL 发送视频块。

我还有 10 分钟的计时器来刷新访问令牌。

foreach (SocialLogin item in logins.Where(x => (x.UpdatedOn.AddSeconds(x.ExpirationSeconds) - DateTime.Now).TotalSeconds < 600))
        
            SocialLogin youModel = await _youtubeService.RefreshTokenAsync(item);
            youModel.UpdatedOn = DateTimeOffset.Now;
            youModel.ExpirationSeconds = 3600;
            await _loginRepository.UpdateAsync(youModel);
        

此函数从数据库中获取所有 YouTube 登录信息,并使用 URL https://oauth2.googleapis.com/token 上的 POST 为那些过期不到 10 分钟的登录刷新令牌。 我上传了几个 15mb 的视频,效果很好,但在它之后,每天的查询配额计算了大约 2500 个查询。我为所有进行 API 调用的方法添加了断点并将它们全部计算在内。总共有大约 50 个请求。几个小时后,我又发送了 2 个 30mb 的视频,这个配额有大约 8000 个查询。这个配额是如何计算的?它计算什么? 现在是 0,但昨天是 8120。

【问题讨论】:

【参考方案1】:

首先,您必须承认 YouTube 数据 API 不会计算您通过其 Videos.insert 端点上传的视频内容的兆字节数。

那么您必须承认 API 没有考虑端点调用的数量。

鉴于每个端点都有attached a quota cost,YouTube 数据 API计算了您在特定日期进行的所有端点调用的配额成本单位的总和

例如,每天分配 10000 个单位的配额,由于一个视频上传的成本是 1600 个单位,因此您最多可以上传 6 个视频,而不管它们的实际大小(如果不考虑其他视频的成本)您进行的 API 调用)。

【讨论】:

我错过了这个页面。现在我觉得很清楚了。也许稍后我必须填写一份表格并派一个 YouTube 团队来扩大这个限制......

以上是关于YouTube API“每天查询”超过约 3 小时的主要内容,如果未能解决你的问题,请参考以下文章

每天查询的 YouTube 数据 API v3 配额设置为 0

youtube data api 3 php,如何从一个频道获取超过 50 个视频?

为啥 Youtube/Google API 不返回超过 5 个回复?

YouTube API 配额 - 多个帐户

Youtube API - 我们需要做啥才能将数据存储超过 30 天?

YouTube数据库如何保存巨量视频文件?