【发布时间】:2019-09-28 18:23:11
【问题描述】:
我正在创建一个 tampermonkey 脚本,该脚本将从网页读取包含艺术家和歌曲标题的文本行,并将创建一个链接,该链接将打开一个新选项卡,指向从 youtube api 返回的第一个结果。我的问题是,当页面加载并说这个特定页面上有 5 首歌曲时,根据我的 youtube api 仪表板,我对该单个页面发出大约 1200 个 api 请求。我猜这是因为当我查询单个艺术家/歌曲时,它会在其服务器上获得所有结果。我尝试将我的 maxResults 限制为 1,但这无济于事。由于 youtube 减少了单个 API 获得的查询数量,我想知道是否有办法减少它发出的查询数量。实际上,我只需要 GET 请求的第一个结果,因为这很可能是正确的视频。
这是我的代码的 sn-p 解析 json 数据:
function getLink(artist, song){
// API Key
var key = "MY_KEY";
// Setup url for api
var url = 'https://www.googleapis.com/youtube/v3/search?part=id&q=' + artist + "-" + song + '&maxResults=1&key=' + key;
// call api and get videoId
var xhReq = new XMLHttpRequest();
xhReq.open("GET", url, false);
xhReq.send(null);
var id = JSON.parse(xhReq.responseText);
return id.items[0].id.videoId;
}
【问题讨论】:
-
尝试用
maxResults=1替换maxResults:1 -
刚刚对其进行了更改和测试,它仍在为 7 次搜索拉出大约一千次查询
标签: javascript jquery api youtube-data-api