YouTube Objective-C API 视频 maxResults

Posted

技术标签:

【中文标题】YouTube Objective-C API 视频 maxResults【英文标题】:YouTube Objective-C API video maxResults 【发布时间】:2014-02-25 12:08:21 【问题描述】:

我想知道通过视频 maxResults 的最佳方式。我无法将其设置为超过 50。我现在需要获取大约 207 个视频。随着时间的推移,这个列表将继续增长。

您对我将如何做到这一点有任何建议吗?

GTLServiceYouTube *service = [[GTLServiceYouTube alloc] init];

service.APIKey = @"API Key";
service.shouldFetchInBackground = YES;


GTLQueryYouTube *query = [GTLQueryYouTube queryForPlaylistItemsListWithPart:@"snippet,contentDetails"];
query.playlistId = @"Playlist ID";
query.maxResults = 50;

GTLServiceTicket *ticket = [service executeQuery:query
                               completionHandler:^(GTLServiceTicket *ticket, id object, NSError *error) 
                                   // This callback block is run when the fetch completes
                                   if (error == nil)
                                   
                                       GTLYouTubeSearchListResponse *products = object;
                                       GTLYouTubePlaylistItemListResponse *playlistItems = object;
                                       for (GTLYouTubeSearchResult *item in products)
                                       
                                           GTLYouTubeThumbnailDetails *thumbnails = item.snippet.thumbnails;
                                           GTLYouTubeThumbnail *thumbnail = thumbnails.high;
                                           NSString *thumbnailString = thumbnail.url;
                                           if (thumbnailString != nil)
                                           
                                               [self.thumbnailsURL addObject:thumbnailString];
                                               [self.thumbnailsArray addObject:thumbnailString];
                                               [self.thumbnailImages addObject:@"120x120@2x.png"];
                                               [self.thumbnailTitleArray addObject:item.snippet.title];
                                           

                                       
                                       for (GTLYouTubePlaylistItem *playlistItem in playlistItems)
                                       
                                           GTLYouTubePlaylistItemContentDetails *details = playlistItem.contentDetails;
                                           [self.videos addObject:details.videoId];
                                       
                                   
                                   else
                                   
                                       NSLog(@"Error: %@", error.description);
                                   
                                   self.loading.hidden = YES;
                                   [self.tableView reloadData];
                               ];

提前感谢您的宝贵时间! :D

【问题讨论】:

【参考方案1】:

您将使用分页获得其余结果。

YouTube API 支持分页。您需要将 nextPageToken 作为 pageToken 放入下一个请求中,以获取下一页(在您的情况下为 50)的结果。

我的这两个答案应该可以帮助你:

page tokens use youtube api v3

Retrieve all videos from youtube playlist using youtube v3 API

【讨论】:

感谢您的回复! :D

以上是关于YouTube Objective-C API 视频 maxResults的主要内容,如果未能解决你的问题,请参考以下文章

使用 Youtube API 获取视频的隐私设置

IOS - 使用 Youtube API 检查 Youtube 视频是不是存在

是否有适用于 iOS 的 RESTful YouTube API?

Objective-C:在 App 上播放 Youtube 视频

如何从 Python 中的 Youtube URL 流式传输音频(无需下载)?

更新 Node.js 后,Node 项目停止工作