Tracking our Twitch success in real time

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

Since we started the development of Immortal Redneck we knew we wanted to make a big focus on Twitch. Twitch has become one of the leading platforms for gaming, and chat/viewers interaction with games is starting to get very popular.

While you play Immortal Redneck you can find Scrolls. Scrolls act as in-game perks and can alter your current run in many ways: basic things like increasing your attack or decreasing enemies health and also more unique and crazy ones like turning your enemies into chickens, swapping all your weapons randomly or make the floor slippery so you can't be still anymore.

We decided to work further on the Scrolls idea and create a customized game mode for Twitch. Instead of finding the Scrolls in chests or getting them dropped from enemies, now your audience is the responsible for giving you the Scrolls. While the streamer is playing, the game starts making votes between three random scrolls and chat can vote for any one of them just by writing the number (#1, #2, #3). When the vote ends, the streamer is shown the result and then he can thank (or curse) his audience for the scroll given.

We've managed to organically appear on a lot of big channels (LIRIK, sodapoppin, MOONMOON, AdmiralBahroo, CobaltStreak, DansGaming...). The game has been featured on almost 1000 different channels and it has an accumulated view time of almost 55 years. That's insane! We spent zero dollars on Twitch promotion, we just send a few keys to small channels to try and gather some interest around the game but we weren't expecting this at all. We even managed to appear several times on the Twitch featured games list.

But Twitch has a problem for us developers. How do you track your game appearances? On Twitter, you could always have a custom search for your game and read it in real time, on youtube/press you could always use the search and filter hours/days. With Twitch there's rarely a notification, most twitchers don't announce on Twitter (or anywhere) and it's not really reasonable to stay up all 24h and keep refreshing your game's page to see if there's a new stream or not. And also not every streamer upload the video after the streaming so you could totally miss the stream.

That's why we decided to create a bot that does the dirty job for us. Thanks to the Twitch API we can query Twitch directly and see if our game is being streamed in real-time. Since we're in love with Telegram and use it constantly we also integrated the bot with Telegram so it could send us the new channels there.

With this, we've been able to stay up-to-date with new channels and even participate in real time with the streamers, help them if they manage to find a new bug or just helping/punishing them with the scrolls. It's been a blast!

Since we couldn't find anything similar, we've decided to open-source the bot in case there are any other developers out there with the same problem. You can find the source on GitHub. Please take note that this is our first Python script every so it's probably not the best or the tidiest way to do it, but at least it works and it should be a good base if you want to improve it or adapt it to your own situation.

Basically, the bot will connect to Twitch every 2 minutes and to Youtube every 15 minutes (yeah, we also added a youtube notifier for new videos too). The bot will gather new streamers/videos and send them to you over Telegram. You can also filter out small streamers or channels based on the number of followers/subscribers in case you're getting a lot of spam. You'll need to configure all your API keys and the game name on config.py and then you're ready to go!