Swift-YouTube-Player:无法读取可用视频

Swift-YouTube-Player : Not able to read available videos

我正在使用 https://github.com/gilesvangruisen/Swift-YouTube-Player to read youtube videos in my app such as this one : https://www.youtube.com/watch?v=Bw0tjdBgKBY

在 WEB 浏览器上运行良好,但在使用库时,会出现一条消息:

This video is unavailable

我可以在播放视频之前看到视频预览,但是当视频开始播放时,我的应用程序中会出现消息。

在使用这种库时,是否有视频内容被youtube锁定? FIFATV 发布的每个视频似乎都无法使用此库...

我正在这样设置 youtubePlayer 中的视频:

youtubePlayerView.loadVideoURL(URL(string: "https://www.youtube.com/watch?v=PBTFz-9bozc"))

非来自 FIFATV 的其他视频正在运行。

关于这个问题有什么想法吗?

要了解您的流媒体发生了什么,您应该添加另一个参数,因此按照 Swift-YouTube-Player 示例更正此部分,添加 origin 参数:

Swift-YouTube-Player/YouTubePlayerExample/YouTubePlayerExample/ViewController.swift

@IBAction func loadVideo(sender: UIButton) {
        playerView.playerVars = [
            "playsinline": "1",
            "controls": "0",
            "showinfo": "0",
            "origin": "https://www.youtube.com"
        ]
        playerView.loadVideoID("wQg3bXrVLtg")
    }

如果您添加此参数,框架将避免使用空白页面作为流式传输的来源并使用您的值,事实上,如果您查看官方来源:

YTPlayerView.m

if (![playerVars objectForKey:@"origin"]) {
        self.originURL = [NSURL URLWithString:@"about:blank"];
    } else {
        self.originURL = [NSURL URLWithString: [playerVars objectForKey:@"origin"]];
    }

现在您应该收到如下消息:

"This video contains content from FIFA, who has blocked it from display on this website or application. Watch on YouTube"

阅读 Youtube API docs 您也可以将 http://example.com 作为值:

在搜索 enablejsapi 的地方,您会发现:

不幸的是,说到YT iOS框架你可以搜索这个参数但是你会发现它已经设置为1在文件player.js 如果您尝试将其设置在 playerVars 内,则不会发生任何事情。

所以它仍然(暂时..)是一个 Youtube iOS 框架错误,可能不是正确的错误,但 YT 工作人员应该在他们的政策中添加另一条规则iOS 内容变化,VEVO 和 UMG 内容的一部分,如果我记得的话(还有其他未解决的错误..)