daily pastebin goal
48%
SHARE
TWEET

Pulling Youtube Videos in iPhone

a guest Jun 17th, 2010 5,842 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //  RootViewController.h
  2.  
  3. #import "GDataYouTube.h"
  4. #import "GDataServiceGoogleYouTube.h"
  5.  
  6.  
  7. @interface RootViewController : UITableViewController {
  8.         GDataFeedYouTubeVideo *feed;
  9. }
  10.  
  11. @property (nonatomic, retain) GDataFeedYouTubeVideo *feed;
  12.  
  13. @end
  14.  
  15.  
  16. ---------------------------------------------------------------------------------
  17.  
  18.  
  19. //  RootViewController.m
  20.  
  21. #import "RootViewController.h"
  22.  
  23. @interface RootViewController (PrivateMethods)
  24.         - (GDataServiceGoogleYouTube *)youTubeService;
  25. @end
  26.  
  27.  
  28. @implementation RootViewController
  29.  
  30. @synthesize feed;
  31.  
  32. - (void)viewDidLoad {
  33.         NSLog(@"loading");
  34.  
  35.         GDataServiceGoogleYouTube *service = [self youTubeService];
  36.  
  37.         NSString *uploadsID = kGDataYouTubeUserFeedIDUploads;
  38.         NSURL *feedURL = [GDataServiceGoogleYouTube youTubeURLForUserID:@"annoyingorange"
  39.                                                                                                                  userFeedID:uploadsID];
  40.        
  41.         [service fetchFeedWithURL:feedURL
  42.                                                           delegate:self
  43.                                          didFinishSelector:@selector(request:finishedWithFeed:error:)];
  44.  
  45.     [super viewDidLoad];       
  46. }
  47.  
  48. - (void)request:(GDataServiceTicket *)ticket
  49.             finishedWithFeed:(GDataFeedBase *)aFeed
  50.                        error:(NSError *)error {
  51.  
  52.         self.feed = (GDataFeedYouTubeVideo *)aFeed;
  53.  
  54.         [self.tableView reloadData];
  55. }
  56.  
  57.  
  58. #pragma mark Table view methods
  59.  
  60. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  61.     return 1;
  62. }
  63.  
  64.  
  65. // Customize the number of rows in the table view.
  66. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  67.     return [[feed entries] count];
  68. }
  69.  
  70.  
  71. // Customize the appearance of table view cells.
  72. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  73.    
  74.     static NSString *CellIdentifier = @"Cell";
  75.    
  76.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  77.     if (cell == nil) {
  78.         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
  79.     }
  80.    
  81.         // Configure the cell.
  82.         GDataEntryBase *entry = [[feed entries] objectAtIndex:indexPath.row];
  83.         NSString *title = [[entry title] stringValue];
  84.         NSArray *thumbnails = [[(GDataEntryYouTubeVideo *)entry mediaGroup] mediaThumbnails];
  85.  
  86.         cell.textLabel.text = title;
  87.        
  88.         NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[[thumbnails objectAtIndex:0] URLString]]];
  89.         cell.imageView.image = [UIImage imageWithData:data];
  90.        
  91.     return cell;
  92. }
  93.  
  94.  
  95. - (void)dealloc {
  96.     [super dealloc];
  97. }
  98.  
  99.  
  100. - (GDataServiceGoogleYouTube *)youTubeService {
  101.         static GDataServiceGoogleYouTube* _service = nil;
  102.        
  103.         if (!_service) {
  104.                 _service = [[GDataServiceGoogleYouTube alloc] init];
  105.                
  106.                 [_service setUserAgent:@"AppWhirl-UserApp-1.0"];
  107.                 [_service setShouldCacheDatedData:YES];
  108.                 [_service setServiceShouldFollowNextLinks:YES];
  109.         }
  110.        
  111.         // fetch unauthenticated
  112.         [_service setUserCredentialsWithUsername:nil
  113.                                                                    password:nil];
  114.        
  115.         return _service;
  116. }
  117.  
  118. @end
RAW Paste Data
Top