LBYouTubeView is just a small view that is able to display YouTube videos in a MPMoviePlayerController
. You even have the choice between high-quality and standard quality stream.
How does it work? It just loads the HTML code of YouTube's mobile website and looks for the data in the script tag. LBYouTubeView doesn't use UIWebView
which makes it faster and look cleaner.
LBYouTubeView is dead simple. Just add an instance as a subview to a UIViewControllers view and tell it, what video it should load.
- Drag the
LBYouTubeView
folder into your project. - Import the
MediaPlayer.framework
. - If you need to support iOS 4, add
JSONKit
to your project and set-fno-objc-arc
compiler flag toJSONKit.m
.
LBYouTubePlayerViewController* controller = [[LBYouTubePlayerViewController alloc] initWithYouTubeURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=1fTIhC1WSew&list=FLEYfH4kbq85W_CiOTuSjf8w&feature=mh_lolz"] quality:LBYouTubeVideoQualityLarge];
controller.delegate = self;
controller.view.frame = CGRectMake(0.0f, 0.0f, 200.0f, 200.0f);
controller.view.center = self.view.center;
[self.view addSubview:self.controller.view];
You can also only extract video URL without to use LBYouTubePlayerViewController
directly:
LBYouTubeExtractor* extractor = [[LBYouTubeExtractor alloc] initWithURL:URL quality:quality];
extractor.delegate = self;
[extractor startExtracting];
LBYouTubeView requires iOS 4. Also, it is deployed for an ARC environment.
LBYouTubeView is licensed under the MIT License.
As stated in Google's Monetization Guidelines that attempting to play a YouTube video outside of either the YouTube embedded, custom or chromeless player is strictly prohibited by the API Terms of Service. LBYouTubeView most likely does violate those guidelines. However, it seems like Apple lets your app pass through their review. Anyway, use it on your own risk.