我得到了一个youtube ID列表。对于每个 IDS,我想使用 YouTube API 来获取标题、持续时间和缩略图。然后,我希望用户能够单击这些缩略图,从而将它们带到UIWebView,在那里他们可以观看视频。
我真的坚持如何从 ID 实际创建视频对象。我真的不明白谷歌示例代码中给出的过程,他们根据播放列表获得标题。我不希望它基于播放列表,我希望它基于独立的 ID 或 URL。
使用播放列表查询,代码使用:
if ([playlistID length] > 0) {
GTLServiceYouTube *service = self.youTubeService;
GTLQueryYouTube *query = [GTLQueryYouTube queryForPlaylistItemsListWithPart:@"snippet,contentDetails"];
query.playlistId = playlistID;
query.maxResults = 50;
_playlistItemListTicket = [service executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
GTLYouTubePlaylistItemListResponse *playlistItemList,
NSError *error) {
// Callback
_playlistItemList = playlistItemList;
_playlistFetchError = error;
_playlistItemListTicket = nil;
[self updateUI];
}];
}
我理解这一点,但是通过GTLQueryYouTube,我看不到与单个视频相关的任何内容。有人有什么想法吗?谢谢!
最终我使用了:
GTLServiceYouTube *service = [[GTLServiceYouTube alloc] init];
// Services which do not require sign-in may need an API key from the
service.APIKey = @"myKey";
GTLQueryYouTube *query = [GTLQueryYouTube queryForVideosListWithPart:@"id, snippet, fileDetails"];
query.identifier = @"xxxxxxxxxx, yyyyyyyyyy";
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;
// iteration of items and subscript access to items.
for (GTLYouTubeSearchResult *item in products) {
//NSMutableDictionary *dictionary = [item JSONValueForKey:@"id"];
GTLYouTubeThumbnailDetails *thumbnails = item.snippet.thumbnails;
GTLYouTubeThumbnail *thumbnail = thumbnails.high;
[imageArray addObject:thumbnail.url];
[titleArray addObject:item.snippet.title];
//NSLog(@"id: %@", [dictionary objectForKey:@"videoId"]);
//NSLog(@"Title: %@", item.snippet.title);
}
}else{
NSLog(@"Error: %@", error.description);
}
[self.thumbnailView reloadData];
}];
因此,使用逗号分隔的视频ID列表创建了一个查询视频列表与部分