我正在尝试将 youtube 直播聊天嵌入到我网站的网页上,
<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/live_chat?v=hHW1oY26kxQ&embed_domain=localhost" width="480"></iframe>
我正在尝试这个,但是如果尝试使用我拥有的真实域来嵌入域,那么聊天根本不会出现,但这也不起作用。
原文由 user10365430 发布,翻译遵循 CC BY-SA 4.0 许可协议
在我看来, YouTube 禁用了在外部网站上嵌入实时聊天的功能,但后来忘记更新文档了。或者,可能存在破坏此功能的未修复错误。
2021 年更新:聊天嵌入再次运行。 使用与以前相同的语法。根据 下面的有用评论。
细节
YouTube 知识库仍然表示将实时聊天 iframe 嵌入外部网站仍然是可能的,使用类似于您发布的 URL( 参见此处,在“嵌入实时聊天”部分)。
但是,当尝试这样做并查看浏览器的控制台时,您会看到如下消息:
在查看对
https://www.youtube.com/live_chat?…
请求的响应时,您还可以在浏览器开发人员工具的“网络”选项卡中看到x-frame-options: SAMEORIGIN
标头。这意味着 YouTube 不希望浏览器将其嵌入到 iframe 中,除非嵌入到 youtube.com 本身。 (在 YouTube 本身,这个嵌入代码仍然有效:当你检查 YouTube 上任何当前流式直播视频的源代码时,你会发现那里的实时聊天窗口是用相同的
/live_chat?…
请求制作的,在一个 iframe。)此功能已被删除的其他迹象:
我相信这是文档的新部分,下面的“嵌入实时聊天”部分已经过时了。
2016 年的 本教程 使用记录的 URL 格式在底部附近嵌入一个示例实时聊天,它现在显示相同的“拒绝在框架中显示 […],因为它将 ‘X-Frame-Options’ 设置为 ‘sameorigin’。 “假设这在 2016 年奏效,那么 YouTube 方面一定发生了一些变化。
这个 Reddit 帖子 讲述了某人的嵌入式实时聊天是如何在 2018 年 9 月初突然停止工作的——就在这个问题被问到之前不久。
备择方案
您可以使用 YouTube 直播 API(尤其是 LiveChatMessages 端点)来获取和创建聊天消息。周围可能有开源库可以帮助解决这个问题。到目前为止,我找到 了这个(能够显示但不能创建聊天消息)。
您可以嵌入自己的聊天,可以安装在您自己的服务器上,也可以安装在 云托管的直播聊天解决方案中。该解决方案还可以提供 YouTube 实时聊天不提供的功能,例如允许匿名访问者发帖。
您可以反向代理
https://www.youtube.com/live_chat?…
URL,转发 YouTube 的响应,但删除 X-Frame-Options 标头。如果您只需要一台或几台计算机的解决方案,您可以使用浏览器扩展程序从 YouTube 的响应中删除 X-Frame-Options 标头。看到 这个问题。