检查 Twitch.tv 流是不是在线并使用 Pircbot 接收观众计数

Posted

技术标签:

【中文标题】检查 Twitch.tv 流是不是在线并使用 Pircbot 接收观众计数【英文标题】:Checking if a Twitch.tv stream is online and receive viewer counts using Pircbot检查 Twitch.tv 流是否在线并使用 Pircbot 接收观众计数 【发布时间】:2014-02-21 05:54:53 【问题描述】:

我正在为 Twitch.tv (pircbot API) 开发我的 IRC 机器人,并希望在直播开始后让机器人自动连接到直播聊天。

我找到了一个 Twitch API (here),但我不知道 我是 Java 新手,如何在我的机器人中实现这一点。

如果有人能告诉我有关如何检索流是否在线以及如何检查现在观看的观众数量的任何提示,那就太棒了。

问候

【问题讨论】:

如果您是 Java 新手,可以使用您更熟悉的语言。 我是从 java 开始的。那么,您能否回答问题或停止发布对我没有帮助的内容?谢谢。 您期待什么? “给我密码?”或“我可以使用什么库来做到这一点?” 任何有用的东西。我现在为零,所以任何可以使用的好库等代码示例都对我有帮助。 【参考方案1】:

我知道这个问题是大约一年前发布的,但我觉得回答这个问题很重要,以防其他人偶然发现这篇文章。 Cam.Stokes 说的很到位。这是问题的答案。但是提问者表示他是 Java 新手,所以我想使用代码 sn-ps 来计算 Cam.Stokes 所说的内容。

在直播时捕捉直播并不难。以下代码是来自我的机器人的 sn-p。我有一个线程定期从 twitch API 接收 JSON 数据,然后将其加载到 JSON 对象中。我正在使用的 JSON 库称为“minimal-json”。如果你问我,优秀的轻量级库。当您查看代码时,您可以看到我在做什么;调用 twitch-api,从目标流中获取 JSON,查看“流”对象是否填充了数据。如果是,则流是直播,否则,不是直播。

import com.eclipsesource.json.JsonObject; // minimal-json specific

private static String TWITCH_STREAM = "https://api.twitch.tv/kraken/streams/$c$";

private static String insertChannel(String url, String channel)

    return url.replace("$c$", channel );


public boolean isStreamLive()

    try 
    
        URL url = new URL(  insertChannel(TWITCH_STREAM, targetChannel) );
        URLConnection conn = url.openConnection();
        BufferedReader br = new BufferedReader( new InputStreamReader( conn.getInputStream() ));
        String inputLine = br.readLine();
        br.close();
        JsonObject jsonObj = JsonObject.readFrom(inputLine);
        return ( jsonObj.get("stream").isNull() )?false:true;
     
    catch (IOException e) 
    
        e.printStackTrace();
     
    return false;

使用 PircBot 连接机器人相当简单。尼古拉回答。确保您拥有来自 twitch 的 Oauth 密钥,该密钥与您的机器人帐户相关联。目标通道是小写的,前面有一个#。你应该很高兴。

祝你好运。

【讨论】:

【参考方案2】:

你需要先获得一个授权密钥

链接:http://twitchapps.com/tmi/

然后你需要在主java文件中设置它

bot.connect("irc.twitch.tv", 6667, "oauth:YOURAUTHKEY");

    bot.joinChannel("#YOURCHANNEL-INLOWERCASE");

如果您还有其他问题,请告诉我

【讨论】:

【参考方案3】:

查看 twitch API 的聊天部分,了解如何使用 PircBot 连接到聊天:

https://github.com/justintv/Twitch-API/blob/master/IRC.md

就获取直播状态而言,这有点困难,但你想要的网址是:

https://github.com/justintv/Twitch-API/blob/master/v2_resources/streams.md#get-streamschannel

我的建议是设置一个定时线程,每隔 10 秒左右检查一次流状态,如果 json 中的“stream:”对象不为空,则建立连接。

一个很好的解析 json 的库(如果你在做 twitch 的东西,你需要从外观上向后和向前解析很多 json)是 gson。

(我显然需要超过 10 个代表来发布超过 2 个链接,但是复制粘贴这个没有空格 http://code.google.com/p/google-gson/)

【讨论】:

以上是关于检查 Twitch.tv 流是不是在线并使用 Pircbot 接收观众计数的主要内容,如果未能解决你的问题,请参考以下文章

XMLHttprequest 无法使用 twitch.tv api

Angular如何在组件中使用嵌入脚本

使用相同的组件模板并更新 API 数据

python 脚本从twitch.tv下载过去的广播

json Twitch.tv API流式传输数组内容

sh Twitch.tv通过VLC媒体播放器直播