如何嵌入 youtube 直播聊天

新手上路,请多包涵

我正在尝试将 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 许可协议

阅读 742
1 个回答

在我看来, YouTube 禁用了在外部网站上嵌入实时聊天的功能,但后来忘记更新文档了。或者,可能存在破坏此功能的未修复错误。

2021 年更新:聊天嵌入再次运行。 使用与以前相同的语法。根据 下面的有用评论

细节

YouTube 知识库仍然表示将实时聊天 iframe 嵌入外部网站仍然是可能的,使用类似于您发布的 URL( 参见此处,在“嵌入实时聊天”部分)。

但是,当尝试这样做并查看浏览器的控制台时,您会看到如下消息:

拒绝在框架中显示“https://www.youtube.com/live_chat?v=12345&embed_domain=example.com”,因为它将“X-Frame-Options”设置为“sameorigin”。

在查看对 https://www.youtube.com/live_chat?… 请求的响应时,您还可以在浏览器开发人员工具的“网络”选项卡中看到 x-frame-options: SAMEORIGIN 标头。

这意味着 YouTube 不希望浏览器将其嵌入到 iframe 中,除非嵌入到 youtube.com 本身。 (在 YouTube 本身,这个嵌入代码仍然有效:当你检查 YouTube 上任何当前流式直播视频的源代码时,你会发现那里的实时聊天窗口是用相同的 /live_chat?… 请求制作的,在一个 iframe。)

此功能已被删除的其他迹象:

  • YouTube 文档提到:

实时聊天模块仅存在于 YouTube 观看页面上——它不关注嵌入式播放器。 ( 来源

我相信这是文档的新部分,下面的“嵌入实时聊天”部分已经过时了。

  • 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 标头。看到 这个问题

原文由 tanius 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏