Latest 0.0.1
Homepage https://github.com/larcus94/LBYouTubeView
License MIT Copyright (c) 2012 Laurin Brandner

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Platforms ios 5.0, requires ARC
Frameworks MediaPlayer

IMPORTANT

LBYouTubeView has been discontinued. I won’t fix any issues anymore. Although this approach fixes a couple of issues, it does not work reliably enough.
Check out XCDYouTubeVideoPlayerViewController. It’s similar to this project but seems to work better as its way of extracting the video URL is less hacky.

About

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.

Usage

LBYouTubeView is dead simple. Just add an instance as a subview to a UIViewControllers view and tell it, what video it should load.

Installation

  1. Drag the LBYouTubeView folder into your project.
  2. Import the MediaPlayer.framework.
  3. If you need to support iOS 4, add JSONKit to your project and set -fno-objc-arc compiler flag to JSONKit.m.

Example

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];

Requirements

LBYouTubeView requires iOS 4. Also, it is deployed for an ARC environment.

License

LBYouTubeView is licensed under the MIT License.

YouTube EULA

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.

Latest podspec

{
    "name": "LBYouTubeView",
    "version": "0.0.1",
    "license": {
        "type": "MIT",
        "text": "    Copyright (c) 2012 Laurin Brandner nn    Permission is hereby granted, free of charge, to any person obtaining a copyn    of this software and associated documentation files (the "Software"), to dealn    in the Software without restriction, including without limitation the rightsn    to use, copy, modify, merge, publish, distribute, sublicense, and/or selln    copies of the Software, and to permit persons to whom the Software is furnishedn    to do so, subject to the following conditions:nn    The above copyright notice and this permission notice shall be included in alln    copies or substantial portions of the Software.nn    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORn    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,n    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEn    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERn    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,n    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INn    THE SOFTWARE.n"
    },
    "platforms": {
        "ios": "5.0"
    },
    "summary": "A UIView subclass that displays YouTube videos using a MPMoviePlayerController.",
    "homepage": "https://github.com/larcus94/LBYouTubeView",
    "authors": "Laurin Brandner",
    "source": {
        "git": "https://github.com/larcus94/LBYouTubeView.git",
        "commit": "6940a4d1c21a0ba8b056a2077d7362035c7e088f"
    },
    "source_files": "LBYouTubeView/**/*.{h,m}",
    "requires_arc": true,
    "preserve_paths": [
        "Sample"
    ],
    "frameworks": [
        "MediaPlayer"
    ]
}

Pin It on Pinterest

Share This