我一直在尝试使用javascript获取此播放列表中的所有项目,该播放列表中有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?
编辑:现在已修复。
我认为这是一个错误。当我使用api版本3检索您的播放列表(PLSJnFrNoXjX_HlX3JA4NGgxmym1Pj26RB)时,我仅获得50个项目的首页。
另请参阅:当播放列表项计数超过100时,错误地检索youtube播放列表
更新:另请参阅错误报告:https : //code.google.com/p/gdata-issues/issues/detail?id=6162&q=label%3AAPI-YouTube&colspec=API%20ID%20Type%20Status%20Priority%20Stars%20Summary
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句