jus*_* k. 11 youtube youtube-api
我正在尝试让我的客户端应用程序过滤掉不允许嵌入的视频.我的理解是,没有办法限制feed(即格式= 5不足)来做这个,我必须自己检查条目的属性,<yt:accessControl>标签和<app:control>和<yt:state>标签.
这不适合我.
例如,此视频:https: //www.youtube.com/watch?v = waxat-_tRH8
没有嵌入:https: //www.youtube.com/embed/waxat-_tRH8
即使API返回数据表明(据我所知)它应该能够嵌入:https: //gdata.youtube.com/feeds/api/videos/waxat-_tRH8?v = 2
该条目不包含任何<yt:noembed>标签(参见前一个问题),<media:restriction type='country' relationship='deny'>ME DE RS</media:restriction>因为我在美国( 见前一个问题),所以不解释这个(参见前一个问题).
我在这里错过了什么?
编辑:上面的嵌入链接在我的网络浏览器中工作,但不在我的客户端应用程序的WebView ....!
正如杰夫波斯尼克所指出的,一些视频有黑名单.如果您尝试从应用程序而非网页请求带有黑名单的视频,您将看到以下错误消息:
"此视频包含来自___的内容.限制在某些网站上播放."
您的应用可能不会被列入黑名单,并且您被错误地列入黑名单.要解决此问题,您需要提供带有原点的Youtube API请求(如atulkhatri指出的那样).
在Youtube视频的请求标头中,设置Referer为您打算从中进行呼叫的域(例如,您应用的相应网站的域).如果您没有域,则可以轻松编写其他域,这也可能有效.
这个答案适用于Youtube的V3 API.
某些视频应用了域级白名单或黑名单.这是由内容所有者自行决定的.
如果存在白名单或黑名单,并且无法确定嵌入网站的域(可能是因为在本机应用程序中没有真正的引用域),则默认行为是阻止回放.
这篇博文还有更多细节:http://youtube-eng.blogspot.co.uk/2011/12/understanding-playback-restrictions_28.html
实际上,如果你在这里嵌入你的视频:
http://www.w3schools.com/html/tryit.asp?filename=tryhtml_default
像这样:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<iframe width="420" height="315" src="https://www.youtube.com/embed/waxat-_tRH8" frameborder="0" allowfullscreen></iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它实际上是可玩的.所以这个问题实际上回归到它为什么在网站上工作而不是iOS移动应用?
然后我发现了这篇文章:
http://support.metacdn.com/hc/en-us/articles/204513985-Video-Player-Embed-Restriction
它解释了由于缺少HTTP头"Referer"字段,嵌入可能会受到限制.
因此,在设置引荐字段后,此视频将在iOS应用中播放:
let youtubeURL = NSURL(string: "https://www.youtube.com/embed/YQHsXMglC9A?autoplay=1")
let youtubeRequest = NSMutableURLRequest(URL: youtubeURL!)
youtubeRequest.setValue("https://www.youtube.com", forHTTPHeaderField: "Referer")
webView.loadRequest(youtubeRequest)
Run Code Online (Sandbox Code Playgroud)
Wala,它现在有效!
你快乐吗?因为我很开心 :)
| 归档时间: |
|
| 查看次数: |
42356 次 |
| 最近记录: |