PHP提取youtube在线聊天

时间:2015-10-21 04:38:21

标签: php youtube-api

当你在YouTube上进行直播时,总是在视频播放器的右边聊天。我正在尝试将聊天中的消息下载到我的PHP页面,以便过滤掉它们,因为它们滚动得非常快,我无法赶上它们。

我注意到当您使用实时聊天打开YouTube页面时,它每10秒运行一次GET到此网址

https://www.youtube.com/live_comments?action_get_comments=1&video_id=<video_id>&lt=<timestamp of last recorded message>&format=proto&pd=10000&rc=26&scr=true&comment_version=1

如果我这样做

$xml= file_get_contents('https://www.youtube.com/live_comments?action_get_comments=1&video_id=<video_id>&lt=<timestamp of last recorded message>&format=proto&pd=10000&rc=26&scr=true&comment_version=1');
echo "<textarea>{$xml}</textarea>";

我得到了以下

<?xml version="1.0" encoding="utf-8"?>
<root>
    <latest_time>
        <![CDATA[1445398692]]>
    </latest_time>
    <return_code>
        <![CDATA[0]]>
    </return_code>
    <likes_data>
        <![CDATA[{"percent_dislikes":7,"num_likes":"1,383","num_dislikes":"91","percent_likes":93}]]>
    </likes_data>
    <comments>
        <![CDATA[EOcKGFsgkE4=]]>
    </comments>
</root>

我认为这会给我带来新的消息但是我正在测试的聊天中没有人,我无法确认。

还有每10秒的POST请求,但我不想发布只是下载。

我的问题是,如何在最初打开页面时使用聊天时显示的PHP现有消息进行下载?

1 个答案:

答案 0 :(得分:0)

这不是一个足够的答案(没有PHP,没有代码...),但是如果您对一个肮脏而简单的解决方案(将YouTube实时视频聊天功能转换为JSON)感兴趣,则可以使用浏览器来实现。 在Firefox中:

  1. 在视频聊天窗口顶部的Firefox浏览器中加载视频URL。
  2. 选择“实时聊天重播”以获取所有聊天消息。
  3. 暂停视频。
  4. 在FF菜单上,转到“ Web开发人员工具”,然后转到“网络”。
  5. 标记“永久注册”复选框(可选)
  6. 仅选择“ XHR”,然后按“ live_chat_replay”过滤结果。
  7. 播放视频并让其继续...
  8. 最后,再次暂停视频,然后在“网络”控制台的右上角找到并单击“ HAR”选择器。
  9. 选择“将所有内容另存为HAR”
  10. 选择文件目的地并保存。
  11. 在文本/代码编辑器中打开“ HAR”文件(这是JSONS的JSON)
  12. 使用您喜欢的语言对它进行解析。
  13. 干杯!