YouTube API 配额激增

YouTube API Quota Blowing Up

所以,我完全被难住了。我不明白为什么我要用尽 YouTube API 配额。根据我的记录,我每天只发出大约 1000 个获取请求。但是当谈到 YouTube 配额时,我达到了 20k 的限制。

但是,当我查看实际方法时,我只记录了 709 个对播放列表项的获取请求(每约 20 分钟扫描 YouTube 播放列表以获取新评论)和 249 个搜索请求(在 YouTube 上搜索新游戏预告片)。

我正在使用 nodejs api / 包。

我上周刚刚刷新了 API 密钥,并删除了所有未使用的 API 密钥。我非常有信心那里没有恶意 API 密钥。

代码示例...

const yt = google.youtube({version: 'v3', auth: 'XXXXXXXXX-my-api-key-XXXXXXXXX'});

function searchByVideoTitle (title, order, token, channelId) {
    let req = {
        part:'snippet',
        q: title,
        maxResults: 10,
        order: order || "relevance",
        pageToken: token || null
    };
    if (channelId) {
        req.channelId = channelId;
    }

    return new Promise(function (resolve, reject) {
        loggly.log('info', 'BlackWidow searching by video title: ' + title);
        fileLog.info('BlackWidow searching by video title: ' + title);
        yt.search.list(req, function (err, response) {
            if (err) reject(err);
 ...
        });
    });
}

function getPlaylistVideos (channelId) {
    currentPlaylistRequests++;
    if (currentPlaylistRequests > playlistLimit) {
        return Promise.reject(' too many requests ' + channelId);
    }
loggly.log('info', 'BlackWidow searching playlist: ' + channelId);
        fileLog.info('BlackWidow searching playlist: ' + channelId);
    return yt.playlistItems.list({part: "snippet", playlistId: channelId, maxResults: 10}).then(results => {
        
        return results.data.items.map(item => {
            return {
                title: item.snippet.title,
                description: item.snippet.description,
                publishedDate: item.snippet.publishedAt,
                externalUrl: "https://www.youtube.com/watch?v=" + item.snippet.resourceId.videoId
            }
        })
    })
}


根据官方文档,任何给定的 Search.list API endpoint call has a quota cost of 100 units; respectively, any given PlaylistItems.list API 端点调用的配额成本为 1 个单位。

因此,通过初等算术:249 次搜索调用 100 个单元 plus 709 次播放列表项调用 1 个单位 等于 25609 个配额单位。