youtubeapi除了snippet之外的任何部分参数都不起作用



我正在使用youtube api,并根据搜索发出api请求。

这一切都有效。你可以在操场上看到它。

在我的代码中,它看起来像这样:

fetch(`https://www.googleapis.com/youtube/v3/search?part=snippet&q=${query}&key=${API_KEY}`)
.then(res => {
return res.json();
}).then(res => {
setResults(res.items);
});
});

我在url中将它作为part传递给snippet。这给了我一些数据,但我想得到更多,比如视频持续时间等。看起来可以通过更多的参数来检索。

如果我添加contentDetails,则api请求失败。有人知道如何获取除片段之外的更多数据吗?

据我所知,您必须进行另一次调用来检索这些详细信息(例如duration),但这一次,您需要videoId并对videos.listAPI进行调用。

因此,使用您在问题中添加的第一个调用(稍作修改),您将获得以下URL:

请求#1-搜索

GET https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=5&q=lfc&fields=items(id%2FvideoId%2Csnippet%2Ftitle)%2CpageInfo&key={YOUR_API_KEY}

您可以在此处测试请求#1。

第一个请求("搜索"请求)的结果为:

{
"pageInfo": {
"totalResults": 1000000,
"resultsPerPage": 5
},
"items": [
{
"snippet": {
"title": "Liverpool FC"
}
},
{
"id": {
"videoId": "a0IrBTg6zcI"
},
"snippet": {
"title": "Bob Paisley: The Humble Genius | Liverpool's most successful manager in his own words"
}
},
{
"id": {
"videoId": "sxMbgeBreJ0"
},
"snippet": {
"title": "Inside Anfield: Liverpool 4-3 Crystal Palace | TUNNEL CAM from the Reds' dramatic win"
}
},
{
"id": {
"videoId": "g4TknSKYG98"
},
"snippet": {
"title": "1000 Premier League Goals at Anfield | Some of our favourite strikes"
}
},
{
"id": {
"videoId": "pMYCN506lXk"
},
"snippet": {
"title": "What Alex Oxlade-Chamberlain return REALLY means for Liverpool midfield? ● LFC News"
}
}
]
}

使用第一个项目videoIda0IrBTg6zcI,创建对videos.listAPI的请求,如下所示。

请求#2-视频

GET https://www.googleapis.com/youtube/v3/videos?part=snippet%2C+contentDetails&id=a0IrBTg6zcI&fields=items(contentDetails%2Fduration%2Csnippet%2Ftitle%2Cstatistics%2Cstatus(embeddable%2CpublishAt))%2CpageInfo&key={YOUR_API_KEY}

您可以在此处测试请求#2。

第二个请求("视频"请求)的结果为:

{
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 1
},
"items": [
{
"snippet": {
"title": "Bob Paisley: The Humble Genius | Liverpool's most successful manager in his own words"
},
"contentDetails": {
"duration": "PT1M47S"
}
}
]
}

您可以在"contentDetails"部分检查"duration"值。

您还可以尝试YouTube数据API(v3)参考文档中提供的(try-it)功能。

上面链接的try-it具有获取视频ID为a0IrBTg6zcI的视频信息的参数,与此答案中使用的参数相同,但是,此请求可能需要更多数据。

相关内容

  • 没有找到相关文章

最新更新