获得视频持续时间(contentDetails)与Youtube JavaScript API v3

Get video duration (contentDetails) with Youtube JavaScript API v3

本文关键字:Youtube JavaScript API v3 contentDetails 视频 持续时间      更新时间:2023-09-26

我一直在尝试与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;,控制台返回以下错误:

Uncaught TypeError: Cannot read property 'duration' of undefined

但是,我正在寻找请求中返回的JSON结构(见这里),它是工作的,我不知道为什么我得到这个错误:(

我试图将part更改为:part: snippet, contentDetails,但随着此更改,我有更多错误…

那么,如何解决这个问题呢?

分析console.log(response);的返回,我可以看到contentDetails在数组中没有返回,但是我怎么能得到视频持续时间?

您的请求只包含部分代码片段。你还必须包含contentDetails.

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