javascript - 在移动设备上获取 YouTube 实时嵌入聊天

标签 javascript php html youtube youtube-livestreaming-api

YouTube 直播聊天可在桌面上使用

<iframe src="https://youtube.com/live_chat?v=[LIVE VIDEO ID]"></iframe>

但是,它不会出现在使用相同代码的移动设备上。

我已将问题缩小到似乎是用户代理问题。在桌面上使用 Chrome 测试网站的移动版本时(检查元素 > 手机图标 > iphonex > 刷新),它仍然没有出现。但是当我在 chromes iPhone(检查元素版)版本上更改用户代理并刷新时,它会显示(检查元素>网络条件>用户代理)。

作为备份,这个关于用户代理的声明,我可以在互联网上找到的唯一一个关于这个的其他线程(找到 Here)谈到了它是如何为他修复的(或者可能不是?)。当我尝试实现他的解决方案时,我没有得到任何结果。

我现在尝试使用 PHP 和 JavaScript 更改用户代理,但它们都不能在 iPhone 的 Safari 或 Google Chrome iPhone 上工作(检查元素)。

我也尝试过使用 PHP 重新创建嵌入,但由于多个 404 错误而失败。

这很奇怪,因为当我通过检查元素版本更改用户代理时,它可以工作。

我试过用 JavaScript 改变用户代理
//First Try
Object.defineProperty(navigator, 'userAgent', {
get: function () { return 'Mozilla/5.0 (Windows NT 6.2; WOW64; 
rv:28.0) Gecko/20100101 Firefox/28.0)'; }});

//Second Try
navigator.__defineGetter__('userAgent', function () {
return "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0)"});

//Third Try
var xhr = new XMLHttpRequest(...);
xhr.setRequestHeader("User-Agent","test");

我试过用 PHP 改变它
ini_set('user_agent', 'MyBrowser v42.0.4711');

这让我相信我在所有这些中都设置错了,还有另一个我忘记的因素,或者移动设备无法支持它。

但是,如果手机无法设置它,它会向我显示一条消息。在 PHP 中设置 User-Agent 时,什么也没发生,直到我请求桌面站点,它给了我一条消息
Your browser is too old to use livechat

不确定它是否真的是,或者它只是用户代理。

我对使用 YouTubeLivestreamingChat API 持开放态度,但我无法真正弄清楚如何使用它(特别是部件是什么)。我也对 PHP 或 JavaScript 的解决方案持开放态度。

最佳答案

您必须使用 curl 和一些解析器制作 php 代理。看看我的示例页面。它适用于所有设备。我还在努力。我只能获取聊天流。但我会制定一个解决方案,在聊天中写消息。

http://youtube.rivda.net/live_chat?v=RtU_mdL2vBM

关于javascript - 在移动设备上获取 YouTube 实时嵌入聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50546820/

相关文章:

javascript - 中止 Meteor.js 中的链接重定向

php - 在 IE 中使用 AJAX 渲染问题

javascript - 允许文本段落位于右侧框下方

php - htaccess 规则不适用于本地主机

javascript - 同源策略对 CSS 样式有影响吗?

javascript - 将遗留库迁移到 ES2015 风格的模块

javascript - $(#id).on() 不适用于动态创建的内容

javascript - 创建一个具有异步构造函数的对象数组

php - 如果 FTP 服务器无效,如何收到错误消息?

php - 如何从 Laravel 中的 SQL 注入(inject)中保护此 sql 查询?