2013-09-12 2 views
0

Мне дается список идентификаторов youtube. Для каждой из этих IDS я хочу использовать API YouTube, чтобы получить заголовок, продолжительность и миниатюру. Затем я хочу, чтобы пользователь мог щелкнуть эти миниатюры, которые переносят их в UIWebView, где они могут смотреть видео.Objective-C API YouTube - создание видеообъекта из URL

Я действительно зациклился на том, как я могу создать видеообъект из ID. Я действительно не понимаю процесс, указанный в Google's sample code, они получают заголовок на основе плейлиста. Я не хочу его на основе плейлиста, я хочу его на основе автономного идентификатора или 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 Я не могу видеть все, что имеет отношение к одному видео. Есть ли у кого-нибудь идеи? Благодаря!

ответ

0

В конце концов я использовал:

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]; 
           }]; 

Так создали queryForVideosListWithPart, используя список идентификаторов видео, разделенных запятой

+0

Можете ли вы мне помочь, я добавляю fileDetails по запросу, но по-прежнему item.fileDetails ответа return nil –

Смежные вопросы