Swift-YouTube-播放器 : Not able to read available videos

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

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

使用 WEB 浏览器时效果很好,但使用该库时,会出现一条消息:

This video is unavailable

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

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

enter image description here

我正在 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"]];
    }

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

“该视频包含来自 FIFA 的内容,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 框架错误,可能不完全是一个错误,但 YT 工作人员应该在他们的政策中添加另一条针对 iOS 内容变化的规则,同样的事情VEVO 和 UMG 内容的一部分(如果我记得的话)(还有其他尚未解决的错误..)

关于Swift-YouTube-播放器 : Not able to read available videos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51344422/

相关文章:

swift - 从一个调度队列调用代码以在另一个调度队列中运行

swift - 粒子效果后如何从屏幕上删除 Sprite 节点

angular - Firebase数据库URL更改

youtube - 是否可以通过API查看或添加到YouTube分析视频组?

ios - 谷歌 API : YouTube video uplaod error = 403

ios - 如何展开 UINavigationBar 以覆盖状态栏?

objective-c - 隐藏标签栏项目但仍显示 Controller

javascript - 如何更改嵌入式 Youtube 视频的速度

javascript - Youtube API v3 对任何请求仅返回 19 NextPageToken

youtube-data-api - YouTube API - 为什么观看次数有时不可用并且收藏数始终为 0?