2014-01-23 79 views
2

我無法獲取YouTube視頻的視頻網址。我可以使用縮略圖和標題檢索播放列表項目,但無法獲取實際的視頻網址。來自播放列表項目的YouTube Objective-C API視頻網址項目

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

首先,你應該設置type =視頻。 在你的代碼:

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

您需要添加「身份證」到部分。您的查詢電話是:

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

,並響應你可以得到的視頻ID與id.videoId。因此,在你的代碼將是:

NSString *videoId = item.identifier.videoId; 

一旦你的ID,您可以將它插入:

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

工作很好!我只需要將item.id.videoId更改爲item.identifier.videoId。感謝您的答覆! :d –

0

v3 API中的video resource不提供URL。你可以做的是將視頻ID附加到一個字符串。播放頁面的網址往往是以下格式:

的一切,如果你只想在你的搜索結果視頻
http://www.youtube.com/watch?v={VIDEO ID HERE} 
+0

謝謝你的回答! :D我也無法獲取videoId。它返回null。我可以在resourceId JSON對象中看到videoId。 –

相關問題