2009-11-12 3 views
0

Quelqu'un at-il un moyen d'extraire l'URL du film direct de la page renvoyée par un lien youtube standard?Youtube Et l'iphone sdk

+0

Je pense que je l'ai vu une extension FireFox pour cela. Vous pourriez creuser à travers les sources à l'extension. – wkw

Répondre

2

NSString *pageString = @"www.youtube.com/watch?v=MOST VIDEOS ARE SUPPORTED"; NSString *agentString = @"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1"; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:pageString]]; [request setValue:agentString forHTTPHeaderField:@"User-Agent"]; NSData *data = [ NSURLConnection sendSynchronousRequest:request returningResponse: nil error: nil ];

NSString *page = [[NSString alloc] initWithBytes: [data bytes] length:[data length] encoding: NSUTF8StringEncoding]; 

NSRange range1 = [page rangeOfString:@"ajax?v="]; 
NSRange range2 = [page rangeOfString:@"&action_get_comments"]; 


NSUInteger lok = range1.location + range1.length; 
NSRange finRange = NSMakeRange(lok, range2.location - lok); 
NSString *subString3 = [page substringWithRange:finRange]; 


range1 = [page rangeOfString:@"\"t\": \""];// "t":" 
range2 = [page rangeOfString:@"\", \"rv.6.id\":"];// ", "rv.6.id": 

lok = range1.location + range1.length; 
finRange = NSMakeRange(lok, range2.location - lok); 
NSString *subString4 = [page substringWithRange:finRange]; 


NSString *demoURL = [NSString stringWithFormat:@"http://www.youtube.com/get_video?video_id=%@&t=%@&fmt=18",subString3,subString4]; 

player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:demoURL]]; 
[[NSNotificationCenter defaultCenter] 
addObserver: self 
selector: @selector(myMovieFinishedCallback:) 
name: MPMoviePlayerPlaybackDidFinishNotification 
object: player]; 

[player play]; 

0

S'il n'y a pas d'API standard prise en charge, vous pouvez essayer de la comprendre en regardant comment l'un des nombreux sites (par exemple kipvid) le fait. Mais cela peut changer avec le temps bien sûr.