如何获取通过';聊天';在YouTube现场直播的时候用盒子?

如何获取通过';聊天';在YouTube现场直播的时候用盒子?,youtube,youtube-api,youtube-livestreaming-api,Youtube,Youtube Api,Youtube Livestreaming Api,YouTube API允许用户获取评论源,例如通过https://gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments?orderby=published 然而,当我试图用一个直播流的视频ID来做这件事时,无论提交了多少评论,结果总是空的。直播视频和任何其他视频(或直播流的录制)之间的唯一区别在于,“评论”部分被替换为“聊天”框,其评论似乎无法通过API获得 当流停止时,通过聊天框提交的所有评论将完全“消失”,无法再访问。但是,现场广播存档后(

YouTube API允许用户获取评论源,例如通过
https://gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments?orderby=published

然而,当我试图用一个直播流的视频ID来做这件事时,无论提交了多少评论,结果总是空的。直播视频和任何其他视频(或直播流的录制)之间的唯一区别在于,“评论”部分被替换为“聊天”框,其评论似乎无法通过API获得

当流停止时,通过聊天框提交的所有评论将完全“消失”,无法再访问。但是,现场广播存档后(即录音可用)提交的所有评论都会显示在评论提要中

对于实时应用程序,我需要在直播时访问“聊天”评论,以检索用户提交的问题

有什么办法可以做到这一点吗?

是谷歌开发人员关系团队的一名成员,专注于YouTube API,他在一个类似的问题()中陈述了以下内容:

API目前没有与live chat的连接。我们是 希望尽快将这些内容纳入API


通过

我想出了一个基本的脚本

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Starting();
        }

        public void Starting()
        {
            IWebDriver driver = new ChromeDriver();
            driver.Navigate().GoToUrl("https://www.youtube.com/watch?v=Yu5Om0SH3No");

            Thread.Sleep(10000);

            //Find Comments
            IWebElement element = driver.FindElement(By.ClassName("comment-text"));
            Console.WriteLine("Text: " + element.Text);

            //Find User names
            IWebElement element2 = driver.FindElement(By.XPath(".//*[@class='g-hovercard yt-uix-sessionlink yt-user-name']"));
            Console.WriteLine("Username: " + element2.Text);



        }
    }
}

将需要更多的工作时间才能使其在评论流中阅读页面。

现在可以使用端点作为YouTube直播API的一部分,为自己的广播返回聊天信息

创建新的
liveBroadcast
对象时,将返回一个
liveChatId
字符串,作为
liveBroadcast
片段的一部分。将广播的聊天ID传递给
LiveChatMessages/list
endpoint的
liveChatId
参数,并将
ID
snippet
authorDetails
传递给
部分
参数

HTTP GET https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId={liveChatId}&part=id%2C+snippet%2C+authorDetails&key={YOUR_API_KEY}
这将返回一个资源数组。实际的聊天信息作为
messageText
键的值包含在
textMessageDetails
字典中

"textMessageDetails": {
  "messageText": string
}

你能给我一个C方法吗???@DarkPh03n1X你有什么问题吗?网络请求?也许你应该问一个新问题。为什么不是所有的广播都可用?没有私人广播,对吗?答案公布已经五年了。情况改变了吗?我们还必须坚持使用Selenium来获取其他人的实时流的聊天记录吗?为什么你要像Jaden Smith那样写句子?但说真的,这并不是最好的方法。它很慢,当他们更改任何标记时,它很可能会中断,它不会得到所有的评论,只有那些可见的评论,等等。我实际上是用谷歌的api做的。几个月前,当谷歌的api支持它时。至于你的第一个问题,我不知道你在说什么。在很短的时间内,你可以使用它一段时间,但第二天它们就消失了