嵌入的 YouTube 视频在本地服务器上不起作用

Mar*_*ate 13 html javascript youtube iframe youtube-api

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

在本地服务器上运行

这是我目前所知道和尝试过的:

  • 并非所有视频都出现此错误。据我所知,它主要不适用于流行音乐视频。
  • 嵌入这些 YouTube 视频在本地 HTML 文件 ( file:///C:/path/to/file.html) 中不起作用,当嵌入的视频位于我的本地 Django 服务器 ( 12.345.67.89:8080/page)时也不起作用。
  • 它不适用于 Youtube 的IFrame API和简单的<iframe>从 YouTube 复制粘贴的内容:在此处输入图片说明
  • 我尝试了两者/embed//watch?v=作为 URL。
  • 使用 iframe 时,更改https://http:////不起作用。把那www.部分去掉也行不通。
  • 有趣的是,当我将代码放入JSFiddle时它确实有效。
  • 它不适用于 Chrome 和 Firefox。
  • 控制台中没有错误。
  • 从我的手机(不是从我的 WiFi 连接)或网络代理访问网站也不起作用。

小智 21

Sergiy Shcherbina 的回答帮助我解决了这个问题。我从虚拟机运行我的 Web 服务器并通过我的本地 IP 地址访问它。

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

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

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

一个骇人听闻的说法:我在我的主机文件中为我的虚拟机设置了一个主机名,并将我的 IP 地址别名为dev-vm. 如何编辑您的主机文件

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

多么奇怪的问题。我希望这可以帮助一些遇到类似问题的人。


小智 11

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


TKD*_*D21 5

出于某些只有 YouTube 工程师知道的天方夜谭的原因,某些视频需要 HTTP 服务器才能播放。

如果您熟悉npmNode.js,则可以按照此处的说明设置 HTTP 服务器并亲自试用。

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

祝你好运!