ios - 如何从 REST API search.list 结果中过滤掉 YouTube 的内容屏蔽视频

标签 ios swift iframe uiwebview youtube-api

我正在用 Swift 制作一个 iOS 应用程序,允许用户使用 youtube 的 rest API 搜索和播放 youtube 视频。为此,我使用了 UIWebView 和 YouTube iFrame。问题是许多视频已被阻止播放,例如 VEVO 和某些唱片公司的视频。我想知道是否有办法过滤掉搜索结果,使被屏蔽的视频不显示?我曾尝试将 videoSyndicated 和 videoEmbeddable 设置为 true 但没有成功。或者,有没有办法绕过内容 block ?

这是我用来搜索的代码:

var searchUrl = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=20&q=\(video)&type=video&videoEmbeddable=true&videoSyndicated=true&key=MYAPIKEY"
let url = NSURL(string: searchUrl)
var request = NSURLRequest(URL: url!)
var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)

if data != nil {
    var json = JSON(data: data!)

    for i in 0..<20 {
        if let videoId = json["items", i, "id", "videoId"].string {
            videoIds.append(videoId)
        }
    }
}

这是我用来加载视频的代码:

let embededHTML = "<html><body style='margin:0px;padding:0px;'><script type='text/javascript' src='http://www.youtube.com/iframe_api'></script><script type='text/javascript'>function onYouTubeIframeAPIReady(){ytplayer=new YT.Player('playerId',{events:{onReady:onPlayerReady}})}function onPlayerReady(a){a.target.playVideo();}</script><iframe id='playerId' type='text/html' width='200' height='200' src='http://www.youtube.com/embed/\(videoID)?enablejsapi=1&rel=0&playsinline=1&autoplay=1' frameborder='0'></body></html>"

webView.loadHTMLString(embededHTML, baseURL: NSBundle.mainBundle().resourceURL)

最佳答案

您无法在搜索请求中对此进行过滤,但是一旦您获得与您的请求匹配的 ID 列表,您就可以使用 videos.list 调用查看它是否被阻止。您可以检查它是否是 rejected (通过查看状态)或 blocked (通过查看 contentDetails)。

视频可能被拒绝的一些可能原因:

  • claim
  • copyright
  • termsOfUse
  • trademark

关于ios - 如何从 REST API search.list 结果中过滤掉 YouTube 的内容屏蔽视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31687156/

相关文章:

ios - 在 UITableView 中使用带有 [UIImage resizableImageWithCapInsets] 的 UIImageView 会导致延迟

ios - 使用 xib 自定义 UITableViewCell

ios - 如何在 collectionView 的单元格之间放置 View ?

php - 错误域=NSCocoaErrorDomain 代码=3840 "No value."

iframe - 我可以将自定义视频 iframe 引入 Jekyll markdown 博客吗?

javascript - 没有 .html 源时如何在 iframe 中保留域?

ios - 从 plist 创建 Excel 工作表,反之亦然

ios - 处理网络异常IOS

swift - 在 Swift 字典中重置值时崩溃

javascript - 为什么 forEach() 在 IE11 的 iframe 中不起作用?