来自播放列表项的YouTube Objective-C API视频网址

时间:2014-01-23 14:41:23

标签: ios objective-c ios7 youtube-api

我无法获取YouTube视频的视频网址。我可以使用缩略图和标题检索播放列表项目,但我无法获得实际的视频网址。

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

service.APIKey = @"API Key";

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;
                                       for (GTLYouTubeSearchResult *item in products)
                                       {
                                           NSLog(@"%@", item.snippet);
                                           NSString *dictionary = [item.snippet JSONValueForKey:@"videoId"];
                                           GTLYouTubeThumbnailDetails *thumbnails = item.snippet.thumbnails;
                                           GTLYouTubeThumbnail *thumbnail = thumbnails.high;
                                           NSString *thumbnailString = thumbnail.url;
                                           if (thumbnailString != nil)
                                           {
                                               [self.thumbnailsArray addObject:thumbnailString];
                                               [self.thumbnailTitleArray addObject:item.snippet.title];
                                               //[self.videos addObject:video];
                                               NSLog(@"id: %@", dictionary);
                                           }

                                       }
                                   }
                                   else
                                   {
                                       NSLog(@"Error: %@", error.description);
                                   }
                                   [self.tableView reloadData];
                               }];

是否有人知道如何使用YouTube API获取视频网址?

2 个答案:

答案 0 :(得分:2)

首先,如果您只想在搜索结果中添加视频,则应设置type =视频。 在您的代码中:

query.playlistId = @"playlist ID";
query.maxResults = 50;
query.type = @"video";

您需要将“id”添加到部分中。您的查询电话将是:

GTLQueryYouTube *query = [GTLQueryYouTube queryForPlaylistItemsListWithPart:@"id,snippet,contentDetails"];

作为回应,您可以使用id.videoId获取视频ID。所以在你的代码中它将是:

NSString *videoId = item.identifier.videoId;

获得ID后,您可以将其插入:

http://www.youtube.com/watch?v={VIDEO ID HERE}

答案 1 :(得分:0)

v3 API中的video resource不提供网址。您可以做的是将视频ID附加到字符串。播放页面网址的格式通常为:

   http://www.youtube.com/watch?v={VIDEO ID HERE}