我一直在尝试使用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?
编辑:现在已修复。
答案 0 :(得分:1)
我认为这是一个错误。 当我使用api版本3检索你的播放列表(PLSJnFrNoXjX_HlX3JA4NGgxmym1Pj26RB)时,我只获得了50个项目的第一页。
另见: Retrieve youtube playlist wrong when playlist items count over 100