我为此提出了一个基本脚本
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); } } }
将需要更多工作时间使其作为评论流程阅读页面。
现在可以返回聊天消息了 的 你自己的广播 强> 使用 LiveChatMessages 端点作为YouTube直播API的一部分。
LiveChatMessages
创建新的时 liveBroadcast 对象,a liveChatId 字符串将作为其中一部分返回 liveBroadcast 的 snippet 。将您广播的聊天ID传递给 LiveChatMessages/list 端点 liveChatId 参数,和 id , snippet ,和 authorDetails 进入 part 参数。
liveBroadcast
liveChatId
snippet
LiveChatMessages/list
id
authorDetails
part
HTTP GET https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId={liveChatId}&part=id%2C+snippet%2C+authorDetails&key={YOUR_API_KEY}
这将返回一个数组 liveChatMessage 资源。实际的聊天消息包含在 textMessageDetails 字典作为的价值 messageText 键。
liveChatMessage
textMessageDetails
messageText
"textMessageDetails": { "messageText": string }
Ibrahim Ulukaya ,Google开发者关系团队的成员专注于YouTube API,在类似的问题上声明了以下内容( 如何在Java中获取Youtube直播活动的聊天内容 ):
此时,API与实时聊天没有关联。我们是 希望尽快将这些内容纳入API。
通过 https://stackoverflow.com/a/26427743/1085891