gpt4 book ai didi

javascript - 列出来自Youtube channel 的最新视频,代码可以运行,但是Youtube Data API的每日配额过快填满了吗?

转载 作者:行者123 更新时间:2023-12-03 06:09:32 25 4
gpt4 key购买 nike

我的以下代码可以运行,但是为什么它可以很快地填满Youtube Data API的每日配额(10,000个查询)?

我是一个JavaScript新手,无法解决。浏览器的每次刷新似乎都会进行200多个查询。

代码的想法是,刷新浏览器后,它将从youtubeChannels中列出的Youtube channel ID中查找10个最新视频,然后在各自的div中显示每个 channel 的视频(“.youtube1”,“。youtube2” )。

var key = 'XXX';

youtubeChannels = {
"youtube1": "UCnVzApLJE2ljPZSeQylSEyg",
"youtube2": "UCCezIgC97PvUuR4_gbFUs5g",
}

Object.keys(youtubeChannels).forEach(function (item) {
divId = item; // for example "youtube1"
var channelId = youtubeChannels[item]; // for example "UCnVzApLJE2ljPZSeQylSEyg"
var URL = 'https://www.googleapis.com/youtube/v3/search';
var options = {
part: 'snippet',
key: key,
maxResults: 10,
channelId: channelId,
order: 'date'
}

youtubeVideos(URL, options, divId);
});

function youtubeVideos(URL, options, divId) {
$.getJSON(URL, options, function(data){
for (let i = 0; i <= 9; i++) {
var id = data.items[i].snippet.title;
var videoId = data.items[i].id.videoId;
var videoUrl = `https://www.youtube.com/watch?v=${videoId}`;
var titleLink = `<a href='${videoUrl}'>${id}</a>`;
document.querySelector(`.${divId}`).innerHTML += `${titleLink}<br>`;
}
})}

我怀疑这与forEach行有关,但这是我的第一个javascript项目,因此无法完全了解是什么原因造成的。任何帮助将不胜感激,我认为此功能不应很快达到10000个查询限制。谢谢!

最佳答案

发现问题不在于代码本身,而是查询Youtube API的“搜索”端点实际上每个查询的配额成本为100个单位。

我修改了代码以查询API的“playlistitems”终结点,该终结点的成本仅为1个单位,现在问题已解决。

关于javascript - 列出来自Youtube channel 的最新视频,代码可以运行,但是Youtube Data API的每日配额过快填满了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59257441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com