我想通过逗号分隔的视频ID字符串仅根据其ID搜索视频。可行的是,API Explorer通过...提供了带逗号分隔ID的样本。
GET https://www.googleapis.com/youtube/v3/videos?part=snippet&
id=JFex915ZebY%2CVGvHnDeS12o%2CYxHnNdZMngk&key={YOUR_API_KEY} // %2C = comma
...但没有关于如何以友好的GUI格式显示(笨蛋!)。使用一个ID,下面的代码可以工作,但是有多个ID都会失败。我想知道我必须添加/修改什么才能使下面的代码示例工作?我在控制台中收到此错误:
TypeError:response.items未定义
. . .
function searchvideo(vq, pageToken) {
$('ol').empty();
gapi.client.setApiKey('API-KEY');
gapi.client.load('youtube', 'v3', function(){
var vIDquery = $('#ytquery').val();
var vrequestOptions = { // Anything missing here?
q: vIDquery,
part: 'snippet'
};
. . .
var vrequest = gapi.client.youtube.search.list(vrequestOptions);
vrequest.execute(function(response) {
. . .
(TypeError: response.items is undefined)
for(var i=0;i<response.items.length;i++) {
var rvideoID = response.items[i].id.videoId; // or snippet.videoId
var rchannelID = response.items[i].snippet.channelId;
var rchannelTitle = response.items[i].snippet.channelTitle;
var rTitle = response.items[i].snippet.title;
var rDescription = response.items[i].snippet.description;
var rthumbnail = response.items[i].snippet.thumbnails.default.url;
. . .
有点在这里使用API v3,仍然试图抓住新的东西,看起来像items.length thingy可能是罪魁祸首,我错过了一个数组? Thx,非常感谢任何提示。 - Koolness
答案 0 :(得分:0)
找到答案,在回答其他问题时,我就落在了这个问题上: How do I retrieve a Video by ID with Youtube API v3?
我只需要正确指定所需的参数,我发誓我尝试了所有LOL!
具体代码现在看起来像这样:
. . .
function searchvideo(vIDquery, pageToken) {
$('ol').empty();
gapi.client.setApiKey('YOUR-API-KEY');
gapi.client.load('youtube', 'v3', function(){
var vIDquery = $('#ytquery').val(); // Video Id input box
var requestOptions = {
id: vIDquery, // Changed q: to id:
part: 'id,snippet' // Changed 'snippet' to 'id,snippet'
};
. . .
// Changed youtube.search.list to youtube.videos.list
var request = gapi.client.youtube.videos.list(requestOptions);
. . .
在Data API v2中,我必须编写一个复杂的方法来覆盖错误响应,以便在找到丢失或错误的ID时gdata调用不会失败。我还必须处理无序的视频列表,这些列表必须使用数组应用完成方法重新排序。现在我看到API 3工作奇迹没有代码膨胀!迷死!
希望这有助于他人。 - Koolness