检查Twitch.tv流是否在线并使用Pircbot接收查看器计数

时间:2014-02-21 05:54:54

标签: java irc twitch

我正在使用我的IRC Bot for Twitch.tv(pircbot API),并希望在流媒体上线后,机器人自动连接到流的聊天。

我找到了Twitch API(here),但我不知道 我是如何将它实现到我的机器人中的,因为我对Java很新。

如果有人可以告诉我如何在线上线时如何检索任何提示,以及我如何检查现在观看的观众数量,那会很酷。

问候

3 个答案:

答案 0 :(得分:5)

我意识到这个问题是在大约一年前发布的,但我觉得有必要回答这个问题以防万一其他人偶然发现这个帖子。 Cam.Stokes所说的是现实。这是问题的答案。然而,提问者表示他是Java的新手,因此我想使用代码片段来解决Cam.Stokes所说的内容。

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

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连接机器人非常简单。 Nicolai回答。确保你有一个与你的机器人账户链接的抽搐的Oauth密钥。目标频道为小写字母,前面带#。你应该好好去。

祝你好运。

答案 1 :(得分:2)

您需要先获得身份验证密钥

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

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

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

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

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

答案 2 :(得分:1)

查看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秒左右检查一次流状态,以及" stream:" json中的对象不为null,进行连接。

一个用于解析json的好lib(如果你正在做抽搐的东西,你将需要通过外观向前和向前解析大量的json)是gson。

(我需要超过10个代表才能发布超过2个链接,但复制粘贴时请不要使用空格http:// code.google.com/p/google-gson/)