首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在YouTube直播过程中通过'chat‘框获取输入的评论?

如何在YouTube直播过程中通过'chat‘框获取输入的评论?
EN

Stack Overflow用户
提问于 2014-10-07 14:22:22
回答 3查看 23.7K关注 0票数 15

YouTube应用程序接口使用户能够例如通过https://gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments?orderby=published获得评论提要。

然而,当我尝试对直播流的视频ID执行此操作时,无论提交了多少评论,结果都是空的。实况视频与任何其他视频(或实况流的录制)之间的唯一区别是,“评论”部分被“聊天”框所取代,而“聊天”框的评论似乎无法通过API获得。

当流被停止时,通过聊天框提交的所有评论都将完全“消失”,并且不能再访问。但是,在直播存档(即录制已可用)之后提交的所有评论都会显示在评论提要中。

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

有没有办法做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-23 22:47:39

现在可以使用端点作为YouTube实时流的一部分,为您自己的广播API返回聊天消息。

创建新的liveBroadcast对象时,liveChatId字符串将作为该代码的snippet的一部分返回。将广播的聊天ID传递给LiveChatMessages/list端点的liveChatId参数,并将idsnippetauthorDetails传递给<liveBroadcast>d12snippet>参数。

代码语言:javascript
复制
HTTP GET https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId={liveChatId}&part=id%2C+snippet%2C+authorDetails&key={YOUR_API_KEY}

这将返回一个liveChatMessage资源数组。实际的聊天消息作为messageText键的值包含在textMessageDetails字典中。

代码语言:javascript
复制
"textMessageDetails": {
  "messageText": string
}
票数 10
EN

Stack Overflow用户

发布于 2014-12-08 22:04:54

Ibrahim Ulukaya是谷歌开发人员关系团队的一名成员,专注于YouTube应用编程接口,他在类似的问题(How to get chat content of Youtube live event in Java)上陈述了以下内容:

该接口暂时无法接入实时通话。我们希望尽快将这些内容合并到API中。

通过https://stackoverflow.com/a/26427743/1085891

票数 4
EN

Stack Overflow用户

发布于 2015-09-10 01:26:50

编辑:请注意,这是使用Selenium,这是在youtube的api支持它之前发布的,请查看其他答案以获得更好的支持

我想出了一个基本的脚本

代码语言:javascript
复制
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);

            
            
        }
    }
}

将需要更多的工作时间,使它阅读页面的评论流。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26229728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档