无法嵌入某些YouTube视频,iframe显示“该视频包含来自WMG的内容。在某些网站上禁止播放”
我正在用ClojureScript和试剂构建一个即时YouTube客户端,当我尝试播放大多数音乐视频时,它会显示视频包含X内容的错误。在某些网站上,它被限制播放,但在我的本地服务器上,同样的视频播放得很好,在这两种情况下,iframe发送相同的referer和origin头,当我在这里嵌入视频时,它也可以工作 我不明白问题是什么,这是我的iframe试剂组件无法嵌入某些YouTube视频,iframe显示“该视频包含来自WMG的内容。在某些网站上禁止播放”,iframe,youtube,youtube-api,clojurescript,reagent,Iframe,Youtube,Youtube Api,Clojurescript,Reagent,我正在用ClojureScript和试剂构建一个即时YouTube客户端,当我尝试播放大多数音乐视频时,它会显示视频包含X内容的错误。在某些网站上,它被限制播放,但在我的本地服务器上,同样的视频播放得很好,在这两种情况下,iframe发送相同的referer和origin头,当我在这里嵌入视频时,它也可以工作 我不明白问题是什么,这是我的iframe试剂组件 [:iframe {:class "embed-responsive-item" :allow-full-screen
[:iframe {:class "embed-responsive-item"
:allow-full-screen "allowfullscreen"
:frame-border 0
:auto-play 1
:src (str "https://www.youtube.com/embed/" (if (nil? videoId)
"SW-BU6keEUw" videoId) "?autoplay=1&enablejsapi=1")}]]
这是我使用v3向YouTube搜索API发送的ajax请求
cljsajax
(fn [term]
(ajax/GET
"https://www.googleapis.com/youtube/v3/search"
{:params {:q term
:maxResults 5
:part "snippet"
:type "video,playlist"
:key YOUTUBE_API_KEY}
:handler handle-youtube-resonse
:response-format (ajax/json-response-format {:keywords? true})
:headers {:referer "https://www.youtube.com/"
:x-spf-referer "https://www.youtube.com/"}))
在此过程中也遇到了相关错误 某些视频应用了域级白名单或黑名单 他们这由内容所有者自行决定 如果存在白名单或黑名单,以及 无法确定嵌入位置,可能是因为没有 如果是本机应用程序,则为真正的引用域 默认行为是阻止播放 这篇博文还有更详细的内容: 另一个答案也有一点,即如果您试图从应用程序而不是网页请求列入黑名单的视频,您将收到以下错误消息:
"This video contains content from ___. It is restricted from playback on certain sites."
你被错误地列入黑名单。检查以修复此问题
您需要为Youtube API请求提供源代码
在Youtube视频的请求标头中,将Referer设置为您要从中拨打电话的域,例如,应用程序相应网站的域。如果你没有
一个域,您可以轻松地编写其他域,这可能
我也工作
对于Android Java,您可以看到一个示例。
对于iOS,
对于React Native,您可以使用组件上的origin prop来表示域origin is,但不表示
你知道的太多了。
浏览器中的同一问题,当扩展插件阻止发送Referer头进行良好测量时。
注意:这个答案适用于Youtube的V3API
问题是服务器没有域名,显然,如果referer头是服务器的IP地址,youtube会将应用程序列入黑名单谢谢!这节省了我的时间。你是如何解决这个问题的?我检查了你的网站是否正在播放受限制的视频。我还尝试通过从iframe复制src来单独播放该视频,但它没有播放。你能提供solution@RaghavPatnecha在我的例子中,这个问题在我注册域名时就解决了,如果你尝试通过服务器的公共访问我的网站,它会给你限制视频错误。好的。谢谢你的帮助。但在我的例子中,我想将其用于桌面应用程序