Song Identifier (TwitchAudio)

What it does

With the click of a button, identify the music or audio playing in any stream. An individual history is maintained, as well as a stream history. Think of this extension as Shazam, but for Twitch!

How I built it

Identification service is running in an AWS EC2 micro instance, and currently being moved to AWS Lambda to remove concurrency bottleneck, and maybe even be cheaper. The service is written in C#, and calls endpoints on the website to interact with the MySQL database. Website API is written in PHP. The website is hosted on Namecheap.

Challenges I ran into

Moving to Lambda has been a bit of a challenge due to moving software that records streams to the Lambda execution environment. Achieving some level of load balancing and concurrency for this tool was a bit challenging. Queuing is used if too many requests are sent at once, and the backend automatically detects if a channel is already being identified and merges the requests.

Accomplishments that I'm proud of

Clean UI and a service that identifies a Twitch stream's audio in ~10 seconds. Merging of requests from the same channel to lighten backend load. Slow move to Lambda to completely remove bottleneck.

What I learned

Bottlenecks in C# when it comes to running executables in a cloud environment. Load balancing in C#. Moving service to Lambda, learned a lot about Lambda and its limitations.

What's next for Song Identifier

Built With

Share this project: