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

Posted

技术标签:

【中文标题】嵌入的 YouTube 视频在本地服务器上不起作用【英文标题】:Embedded YouTube video doesn't work on local server 【发布时间】:2019-01-28 20:34:40 【问题描述】:

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

这是我迄今为止所知道和尝试过的:

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

【问题讨论】:

控制台是否出现任何错误? 在 Firefox 中运行并在本地服务器上禁用所有扩展时,不会出现错误。 “有趣的是,当我将代码放入 JSFiddle 时,它​​确实有效。”自 2020 年 6 月 21 日起,JSFiddle 链接中的嵌入不再起作用。 @bigyihsuan 仍然适合我 @MarkedasDuplicate 它不在我的尽头。如果你真的按下播放键,它会显示“视频不可用”。 i.imgur.com/Z680hpK.png 【参考方案1】:

Sergiy Shcherbina's answer 帮我解决了这个问题。我正在从 vm 运行我的 Web 服务器并通过我的本地 IP 地址访问它。

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

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

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

Hacky wordaround:我在 hosts 文件中为我的虚拟机设置了一个主机名,并将我的 IP 地址别名为dev-vm。 How to edit your host file

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

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

【讨论】:

我想我有同样的问题,但嵌入的视频在 ios 应用程序上运行 移动版 Safari 也会出现同样的问题。当我尝试使用我的localhost 开发服务器的直接 IP 从我的手机测试我的网络应用程序时,我得到了它。因此,MacOS 环境中的修复是通过http://<name>.local 方法访问开发服务器。计算机名称位于“系统偏好设置”的“共享”面板中。 我正在使用 http://localhost:8000/ 访问我的 Django 网站,但它不起作用!有什么想法吗?【参考方案2】:

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

【讨论】:

但是为什么使用 YouTube 域直接访问嵌入页面时它甚至不起作用,如下所示:youtube.com/embed/9bZkp7q19f0 @SergeyMell 虽然这可能没有作为“答案”有用,但它仍然是一个非常有用的评论/观察。所以感谢 Sergiy Shcherbina 添加这个“答案”/评论!!【参考方案3】:

出于某种被上帝遗忘的原因,只有 YouTube 的工程师才知道,有些视频需要 HTTP 服务器才能播放。

如果您熟悉 npmNode.js,您可以按照说明here 设置 HTTP 服务器并尝试一下自己。

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

祝你好运!

【讨论】:

【参考方案4】:

这不是 Youtube API 的错误。尝试使用“python -m SimpleHTTPServer 8080”在我的本地主机上运行它并让它轻松运行。所以,我的结论是你没有合适的本地网络服务器。此外,“file:///C:/path/to/file.html”永远不会起作用,因为要使用任何 Google API,您需要能够访问互联网。

【讨论】:

仅对某些视频失败,例如youtube.com/watch?v=8EzdmE4Ewqk

以上是关于嵌入的 YouTube 视频在本地服务器上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Youtube嵌入在Firefox中不起作用

Youtube 嵌入视频:自动播放功能在 iphone 中不起作用

Youtube 嵌入视频在 webview 中不起作用。这段代码有啥问题?

Phonegap / Cordova Youtube 在 iOS 上嵌入视频不起作用

Wordpress 5.2 YouTube 视频自动嵌入帖子不起作用

android webview youtube嵌入视频自动播放不起作用