【问题标题】:Get YouTube Live Embed Chat On Mobile Devices在移动设备上获取 YouTube 实时嵌入聊天
【发布时间】:2018-11-05 21:26:30
【问题描述】:

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

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

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

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

作为备份,这个关于用户代理的声明,我可以在互联网上找到的唯一其他线程(找到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 的解决方案。

【问题讨论】:

标签: javascript php html youtube youtube-livestreaming-api


【解决方案1】:

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

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

【讨论】:

  • 链接无效。究竟什么是“带有 curl 和一些解析器的 php 代理”?
猜你喜欢
  • 2018-06-23
  • 2023-03-03
  • 2020-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 2016-01-19
相关资源
最近更新 更多