Until recently to display YouTube videos in iOS or Android you need to use or an external player or some kind of Web view. The first approach made users leave your app and the second one normally was slow and buggy.
Recently Google finally launched an YouTube Player API for Android.
Unfortunately there isn’t a version for iOS but some nice fellows developed LBYouTubeView. This component is a MPMediaPlayerController subclass that is capable of displaying YouTube videos URL. It manages this by requesting information of the video from YouTube and then getting an URL to the media stream that can be played using a MPMediaPlayerController. Not sure if it’s 100% reliable and legal but it does the job!