We were inspired by the way League of Legends highlights are generated instantaneously after a play during Worlds. We wanted to try and make it something available to all Twitch users.

What it does

The script downloads and analyzes a vod from Twitch, when something exciting happens, it would recognize the spike of chat messages and record that time frame. Then it downloads the top 5 most exciting plays for the user.

How I built it

After a recommendation from a Twitch dev, we started by grabbing the .m3u8 playlist file and the chat log for the vod. Then we started to analyze the logs to find the top 5 highlights. Lastly, we look for these highlights' time frames to download the clips.

Challenges I ran into

  • Chat history wasn't readily available for us to access through the Twitch API, we did find a way through Rechat. Though there was little documentation for that and we had to spend time looking through the example code.
  • The .m3u8 index file was not accessible through the Twitch API, we tried multiple other methods as workarounds, but none of them helped.
  • Chat history file from Rechat was bigger than we anticipated and we had to do some clean up with the data.

Accomplishments that I'm proud of

  • Using the current tools we have from the Twitch API, we got what was not provided from the API originally.

What I learned

  • Using the Twitch API to our advantage even though it wasn't providing us with what we need
  • Figuring out Rechat with little amount of documentation

What's next for TwitchMontage

  • Make each montage customizable with options like length and the amount of highlights in a montage

Built With

Share this project: