Advertisement
Guest User

Pulling Youtube Videos in iPhone

a guest
Jun 18th, 2010
667
0
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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement