Youtube API V3 - 使用playlistItems.list请求播放列表时缺少播放列表中的项目

时间:2014-03-24 09:41:48

标签: javascript youtube-api

我一直在尝试使用javascript获取this playlist中包含64个项目的所有项目。

这是我一直使用的功能获取响应并显示响应中的项目:

function getPlaylistItems( playlistId, maxResults, pageToken ) {

    var requestOptions = {
        playlistId: playlistId,
        part: 'snippet',
        maxResults: maxResults,
        fields: "items,nextPageToken"
    };

    if ( pageToken ) {
        requestOptions.pageToken = pageToken;
    }

    var request = gapi.client.youtube.playlistItems.list( requestOptions );
    request.execute( function( response ) {

        var playlistItems = response.items;

        console.log( playlistItems.length, playlistItems );
        $.each( playlistItems, function( index, item ) {
            displayResult( item.snippet.title );
        } );

        if ( response.nextPageToken ) {
            console.log( response.nextPageToken );
            getPlaylistItems( playlistId, maxResults, response.nextPageToken );
        }
    } );
    displayResult( "---" );
}

如果maxResults = 25则第一次迭代返回视频01-25,这是您所期望的。

但是第二次迭代从31-55开始。第三个没有任何项目。所以我错过了26-30和56-64。

With maxResults = 10 I am missing 31-40. 
With maxResults = 20 I am missing 41-60.
With maxResults = 30 I am missing 31-40. 

(这不是代码^^ Stackoverflow不允许我发布其他内容:S)

我做错了什么或者我没有得到正确的nextPageToken?

编辑:现在已修复。

1 个答案:

答案 0 :(得分:1)

我认为这是一个错误。 当我使用api版本3检索你的播放列表(PLSJnFrNoXjX_HlX3JA4NGgxmym1Pj26RB)时,我只获得了50个项目的第一页。

另见: Retrieve youtube playlist wrong when playlist items count over 100

更新: 另见bug报告: https://code.google.com/p/gdata-issues/issues/detail?id=6162&q=label%3AAPI-YouTube&colspec=API%20ID%20Type%20Status%20Priority%20Stars%20Summary