As for the previous events broadcasted on Twitch.tv ( US DNC Convention 2016 , EVO Championship 2016 ), I looked at some Twitch.tv data during the launch of ROI, to have an idea of the game popularity.
Using Twitch.tv API, we can get some informations about the number of viewers (as the sum of the number of viewers pers treamer) for a given game, the number of people actually streaming the game, the rank of the game (= most popular) in the Twitch.tv directory. Per streamer, we can get the number of viewer, his name, his title/status.
Especially, I was interesting in:
What I was expecting :
Some important dates :
My script ran from Monday,19th (afternoon) until Monday,26th (noon). For some critical days/hours (launch, Raid), the script was run every minute in order to capture the granularity of the data. Othersise it ran every 5 minutes. I also tracked the data of other games for comparison. I choose the games because they were at the top of the Twitch directory at that time :
## Using date as id variables
## Using date as id variables
I also tracked the 100 top streamers from the Destiny channels and plotted the related curves for the 2 most popular : KingGothalion and ProfessorBroman. Plots are below.
For launch day, KingGothalion topped at ~33k viewers and as mentioned before, the sharp decrease in the number of viewers at 5:30pm is due to him stopping his broadcast. One thing interesting also is to see the shift of KG’s viewers to ProfessorBroman broadcast. This shift helped to maintain Destiny on top of the Twitch directory.
We also notice some structure for KG around 5 to 6:00am. I knew later that there was some issues and that you (Bungie) introduced a queue system because of the servers overload. This may explain why the number of viewers of KG decrease then re-increase ; people either stopped watching Twitch or either moved to another streamer.
The same conclusion can be done during the Raid day : KingGothalion drived a lot of the Destiny viewers.
To illustrate the ranking, an example of the Twitch webpage is below
In this example, Counter-Strike : GO is on top of the Twitch directory because of its higher number of viewers, hence having rank 1.
To calculate the rank, I just loop over the JSON file that gives the top games streamed ; the rank is the index of the game in that list. Below is a code snippet of the python script I used :myUrl = 'https://api.twitch.tv/kraken/games/top?limit=30' allChan = requests.get(myUrl,headers = headers) allList = allChan.json() count=0 channels=['World%20of%20Warcraft','Destiny','Overwatch','League%20of%20Legends','Dota%202'] for chan in channels : tempoUrl= 'https://api.twitch.tv/kraken/streams/summary?game='+ str(chan) ++count timeFormat = '%Y-%m-%d %H:%M:%S' response = requests.get(tempoUrl,headers = headers) tempo = response.json() if(chan == 'Destiny'): destiny_viewers = tempo['viewers'] destiny_channels = tempo['channels'] #print allList['top'][i]['game']['name'] for i in range(0,30): if(allList['top'][i]['game']['name'] == 'Destiny'): destiny_rank = i+1
The ranking plot for the full week as well as the plots for the launch and Raid days are below.
These plots show the mean and sum of the number of viewers during the week.
As for the plots of the number of viewers in real time, the summary plots show also that :
Using the R-shiny package, I wrote an application to show these data. It is available on the R-shiny server
Comments
For Destiny :
Compared with the other games:
A closer look at these 2 particular days show indeed a fast increase in the number of viewers that stays few hours, then a slowly decreasing curve. The launch day is interesting because Destiny remained close to 50k viewers for a large amount a time. There is a sharp decrease around 5:30pm which is due to streamer KingGothalion stopping his broadcast