Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 嵌入式YouTube视频不';无法在本地服务器上工作_Javascript_Html_Iframe_Youtube_Youtube Api - Fatal编程技术网

Javascript 嵌入式YouTube视频不';无法在本地服务器上工作

Javascript 嵌入式YouTube视频不';无法在本地服务器上工作,javascript,html,iframe,youtube,youtube-api,Javascript,Html,Iframe,Youtube,Youtube Api,我在StackOverflow上看到很多这样的问题,但都没有一个有效的答案。我的问题是无法嵌入YouTube视频,因为出现了“此视频不可用”的提示: 以下是迄今为止我所知道并尝试过的: 并非所有视频都会出现此错误。从我所注意到的情况来看,它主要不适用于流行音乐视频 在本地HTML文件中嵌入这些YouTube视频不起作用(file:///C:/path/to/file.html)也不允许在本地Django服务器上播放嵌入式视频(12.345.67.89:8080/页) 它不适用于Youtube

我在StackOverflow上看到很多这样的问题,但都没有一个有效的答案。我的问题是无法嵌入YouTube视频,因为出现了“此视频不可用”的提示:

以下是迄今为止我所知道并尝试过的:

  • 并非所有视频都会出现此错误。从我所注意到的情况来看,它主要不适用于流行音乐视频
  • 在本地HTML文件中嵌入这些YouTube视频不起作用(
    file:///C:/path/to/file.html
    )也不允许在本地Django服务器上播放嵌入式视频(
    12.345.67.89:8080/页
  • 它不适用于Youtube,也不适用于从Youtube粘贴的
    副本:
  • 我尝试了
    /embed/
    /watch?v=
    作为URL
  • 使用iframe时,将
    https://
    更改为
    http://
    //
    不起作用。取出
    www.
    零件也不起作用

  • 有趣的是,当我把代码放进去时,它确实起作用了
  • 它不适用于Chrome和Firefox
  • 控制台中没有错误
  • 从我的手机(不是从我的WiFi连接)或网络代理访问网站也不起作用

由于一些被上帝抛弃的原因,一些视频需要HTTP服务器才能播放,这一点只有YouTube的工程师知道

如果您熟悉npmNode.js,您可以按照说明进行操作,这样您就可以设置一个HTTP服务器并亲自尝试

但是,如果您确实有时间和意愿,请按照说明发送有关此问题的错误报告。这类问题绝对不应该发生


祝你好运

这不是你的错。尝试在本地主机上使用“
python-msimplehttpserver 8080
”运行此程序,并使其轻松运行。因此,我的结论是您没有合适的本地web服务器。另外,“
file:///C:/path/to/file.html
“将永远不起作用,因为要使用任何谷歌API,您需要访问互联网


它在具有域的站点上工作,在IP地址访问的站点上不工作。在“localhost”上使用时工作,在使用“127.0.0.1”时导致“视频不可用”。这真的很奇怪…

帮助我解决了这个问题。我从虚拟机运行web服务器,并通过本地IP地址访问它

似乎您需要通过主机名而不是IP地址访问包含嵌入式youtube播放器的页面

我是如何为我的开发环境解决这个问题的

在更改之前,我是这样访问我的网页的:
http://192.168.x.x:3000/video
对于许多可验证为“可嵌入”的视频,我会收到“视频不可用”错误

我在我的主机文件中为我的虚拟机设置了一个主机名,并将我的IP地址别名为
dev-VM

现在我访问的页面上有我的嵌入式播放器,如下所示:
http://dev-vm:3000/video
现在正在播放以前出现“视频不可用”错误的视频


多奇怪的问题啊。我希望这能帮助一些有类似问题的人。

为那些只想直接从youtube.com/embed观看视频的人注入一些javascript来解决这个问题

document.body.innerHTML = '<iframe id="video" width="560" height="315" src="https://www.youtube.com/embed/_RrA-R5VHQs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><style>body{margin; 0; overflow: hidden;}#video{position:absolute;left:0px;width:100%;top:0px;height:100%;}</style>'
document.body.innerHTML='body{margin;0;溢出:隐藏;}#视频{位置:绝对;左侧:0px;宽度:100%;顶部:0px;高度:100%;}'

console中是否有任何错误?在本地服务器上禁用所有扩展的Firefox中运行时,没有错误。“有趣的是,当我将代码放入JSFIDLE时,它确实起作用。”嵌入JSFIDLE链接到2020年6月21日不再起作用。@Bigyishuan仍然适用于me@MarkedasDuplicate这对我来说并不重要。如果你真的按play,它会显示“视频不可用”。仅在某些视频中失败,例如,但为什么它在使用YouTube域直接访问嵌入页面时不起作用,如:@SergeyMell虽然这可能不是有用的“答案”,但仍然是非常有用的评论/观察。因此,感谢Sergiy Shcherbina添加此“答案”/“评论!!我想我也有同样的问题,但嵌入式视频在iOS应用程序上运行同样的问题也发生在mobile Safari上。我是在尝试使用我的
localhost
dev服务器的直接IP从我的手机测试我的web应用程序时得到它的。因此,MacOS环境中的修复方法是通过
http://.local
方法。计算机名位于系统首选项的共享面板中。我正在使用:
http://localhost:8000/
但它不起作用!有什么想法吗?