XCDYouTubeVideoPlayerViewController 1.1.2

XCDYouTubeVideoPlayerViewController 1.1.2

LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Dec 2014

Maintained by Cédric Luthi.

  • By
  • Cédric Luthi


XCDYouTubeVideoPlayerViewController is a YouTube video player for iPhone and iPad.

To the best of my knowledge, the only official way of playing a YouTube video on iOS is with a UIWebView and the iframe player API. Unfortunately, this is very slow and quite ugly, so I wrote XCDYouTubeVideoPlayerViewController which gives the user a better viewing experience.

XCDYouTubeVideoPlayerViewController uses progressive download, so remember that some restrictions apply if you submit your app to the App Store, as stated in HTTP Live Streaming — Requirements for Apps:

Warning: iOS apps submitted for distribution in the App Store must conform to these requirements.

If your app delivers video over cellular networks, and the video exceeds either 10 minutes duration or 5 MB of data in a five minute period, you are required to use HTTP Live Streaming. (Progressive download may be used for smaller clips.)


  • Runs on iOS 5.0 and later
  • Must be compiled with ARC


XCDYouTubeVideoPlayerViewController is available through CocoaPods.

Alternatively, you can install it manually:

  1. Copy the XCDYouTubeVideoPlayerViewController.h and XCDYouTubeVideoPlayerViewController.m files in your project.
  2. Add MediaPlayer.framework and AVFoundation.framework in your project.


Use XCDYouTubeVideoPlayerViewController the same way you use a MPMoviePlayerViewController, except you initialize it with a YouTube video identifier instead of a content URL.

Present the video in full-screen

XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:@"9bZkp7q19f0"];
[self presentMoviePlayerViewControllerAnimated:videoPlayerViewController];

Present the video in a non full-screen view

XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:@"9bZkp7q19f0"];
[videoPlayerViewController presentInView:self.videoContainerView];
[videoPlayerViewController.moviePlayer play];

See the demo project for more sample code.


Cédric Luthi


XCDYouTubeVideoPlayerViewController is available under the MIT license. See the LICENSE file for more information.