我一直在尝试使用Youtube JavaScript API v3获取视频时长,这是我的JS的相关部分:
var request = gapi.client.youtube.search.list({
q: 'eminem',
part: 'snippet'
});
request.execute(function(response) {
$('#results').empty()
var srchItems = response.result.items;
$.each(srchItems, function(index, item) {
vidTitle = item.snippet.title;
vidTime = item.contentDetails.duration;
vidThumburl = item.snippet.thumbnails.default.url;
$('#results').append('<pre>' + vidTitle + vidTime +'</pre>');
});
});
问题出在vidTime = item.contentDetails.duration;
,控制台返回以下错误:
未捕获的TypeError:无法读取未定义的属性'duration'
但是,我正在查看请求中返回的JSON结构(See Here)并且它正在工作,我不知道为什么我会收到此错误:(
我已尝试将part
更改为:part: snippet, contentDetails
但是如果发生此更改,我会发现更多错误......
那么,如何解决这个问题?
EDITED
要分析console.log(response);
的返回,我可以看到数组中没有返回contentDetails,但是我怎样才能获得视频持续时间?
答案 0 :(得分:0)
您的请求仅包含part:snippet。您还必须包含contentDetails。
var request = gapi.client.youtube.search.list({
q: 'eminem',
part: 'snippet,contentDetails'
});