I found a way to stream / play youtube videos inside the iphone app, but I don’t know that the apple will recognize him or him under the terms and conditions of youttube. Bellow, I attach my .h and .m file plz files and tell you how it works.
YoutubePlayerViewController.h
#import<UIKit/UIKit.h>
#import<MediaPlayer/MediaPlayer.h>
@interface YoutubePlayerViewController : UIViewController
{
UITextField *yurl;
NSMutableData *responseData;
NSString *cacheLink;
MPMoviePlayerController *moviePlayer;
}
@property(nonatomic,retain)IBOutlet UITextField *yurl;
@property(nonatomic,retain)NSString *cacheLink;
-(IBAction)Play:(id)sender;
-(IBAction)removeKeyboard;
@end

// --------------------------------------------- --- --------------------------------
//YoutubePlayerViewController.m
#import "YoutubePlayerViewController.h"
@implementation YoutubePlayerViewController
@synthesize yurl,cacheLink;
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"view did load");
}
-(IBAction)removeKeyboard
{
[yurl resignFirstResponder];
}
-(IBAction)Play:(id)sender
{
NSString *url=yurl.text;
responseData = [[NSMutableData data] retain];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"did receving response");
[responseData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[responseData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"Connection failed: %@", [error description]);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"%d",responseData.length);
NSString* strServerResponse= [[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding];
NSLog(@"%@",strServerResponse);
NSLog(@"\n***********************************************\n");
NSArray *temp=[strServerResponse componentsSeparatedByString:@"swfConfig"];
strServerResponse=[temp objectAtIndex:1];
temp=[strServerResponse componentsSeparatedByString:@".c.youtube.com,18|"];
strServerResponse=[temp objectAtIndex:1];
temp=[strServerResponse componentsSeparatedByString:@"||"];
strServerResponse=[temp objectAtIndex:0];
strServerResponse=[strServerResponse stringByReplacingOccurrencesOfString:@"\\" withString:@""];
NSLog(@"%@",strServerResponse);
self.cacheLink=strServerResponse;
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"link" message:self.cacheLink delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alert show];
[alert release];
NSURL *url=[[NSURL alloc] initWithString:self.cacheLink];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
[self.view addSubview:moviePlayer.view];
moviePlayer.view.frame = CGRectMake(5,150,310,230);
moviePlayer.view.backgroundColor=[UIColor blackColor];
[moviePlayer play];
[connection release];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)viewDidUnload {
}
- (void)dealloc {
[super dealloc];
}
@end
source
share