Skip to content
Get YouTube video stream URL in Swift.
Swift
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
SSYoutubeParser.xcodeproj
SSYoutubeParser
SSYoutubeParserTests
.gitignore
LICENSE
README.md

README.md

##SSYoutubeParser

Create based on HCYoutubeParser.
https://github.com/hellozimi/HCYoutubeParser
Thank you. hellozimi

You can also playback video that can not be played on HCYoutubeParser.
You can not play video There are some.

HCYoutubeParserを元にSwiftで作成しています。
HCYoutubeParserで再生できないビデオも再生出来ます。
一部の再生制限のあるビデオは再生できません。(今後クリアしたい)

//Swift2.0

func setupVideo() {
    SSYoutubeParser.h264videosWithYoutubeID("b2fjU9cmjXg") { (videoDictionary) -> Void in
        //let videoSmallURL = videoDictionary["small"]
        let videoMediumURL = videoDictionary["medium"]
        //let videoHD720URL = videoDictionary["hd720"]
        
        if let urlStr = videoMediumURL {
            if let playerItem:AVPlayerItem = AVPlayerItem(URL: NSURL(string: urlStr)!) {
                self.avPlayerView.player = AVPlayer(playerItem: playerItem)
                playerItem.addObserver(self, forKeyPath: "status", options: [.New,.Old,.Initial], context: nil)
            }
        }
    }
}

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
    if keyPath == "status" {
        let change2 = change!
        let changeOld = change2["old"] as? NSNumber
        let changeNew = change2["new"] as? NSNumber
        let status = object!.status as AVPlayerItemStatus
        
        if changeOld == 0 && changeNew == 1 && status == AVPlayerItemStatus.ReadyToPlay {
            self.avPlayerView.player.play()
        }
    } else {
        super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
    }
}
You can’t perform that action at this time.