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/