使用Youtube JavaScript API v3获取视频时长(contentDetails)

时间:2015-09-10 22:34:21

标签: javascript youtube youtube-api youtube-data-api youtube-javascript-api

我一直在尝试使用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,但是我怎样才能获得视频持续时间?

1 个答案:

答案 0 :(得分:0)

您的请求仅包含part:snippet。您还必须包含contentDetails。

var request = gapi.client.youtube.search.list({
        q: 'eminem',
        part: 'snippet,contentDetails'
});