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

时间:2018-07-15 00:39:16

标签: swift youtube youtube-data-api youtube-javascript-api

我正在使用https://github.com/gilesvangruisen/Swift-YouTube-Player在我的应用中读取YouTube视频,例如:https://www.youtube.com/watch?v=Bw0tjdBgKBY

使用WEB浏览器可以很好地运行,但是使用该库时,会出现一条消息,提示:

  

该视频不可用

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

使用此类库时,是否存在YouTube锁定的视频内容? 该库似乎无法提供FIFATV发布的每个视频...

enter image description here

我正在youtubePlayer中设置视频,如下所示:

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

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

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

1 个答案:

答案 0 :(得分:2)

要了解流媒体发生了什么,您应该添加另一个参数,因此,在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"]];
    }

现在,您应该收到类似以下消息:

“该视频包含FIFA的内容,该内容已被阻止在此网站或应用上显示。在YouTube上观看”

阅读Youtube API docs时,您还可以将http://example.com用作值:

enter image description here

在搜索enablejsapi的地方会发现:

enter image description here

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

因此,它仍然是(暂时)一个Youtube iOS框架错误,可能不是一个适当的错误,但是YouTube员工应在其政策中增加有关iOS内容变化的另一条规则,我记得VEVO和UMG内容的一部分(还有其他错误尚未解决。。)