Give your viewers a voice
Sometimes while watching a Twitch stream, you just need to be heard. Maybe inspiration bonked you on the head with a joke or a catchphrase, or maybe you attempted a battle cry that sounded like a cross between a shrieking mountain goat and the majestic mating calls of a manitoban elk. And you immediately think, "I gotta share this to everyone in the stream. 723 times, in fact."
We want to empower viewers with a voice, and that's why we started Voicemail.
What it does
Voicemail lets Twitch viewers record a short audio clip (5 to 10 seconds) and blast it to everyone in the stream. Typing out words isn't enough anymore--you gotta audio-comment it out!
Let your fellow viewers hear your thoughts; mesmerize them with your sultry voice; regale them with the songs of your people! I'm sure it'll be a fun time for their ears.
(Pixels Gaming is not responsible for any angry mob in the comments section that will be after you. Pitch fork and torch extension to follow.)
How we built it
We utilized some great tools (thank you Twitch and AWS) to build Voicemail.
Here are some tools we used to build Voicemail:
- Web servers: AWS EC2, Golang
- UserID / VoicemailID mapping: AWS RDS
- Voicemail audio storage: AWS S3
- Security: HTTPS using LetsEncrypt (three cheers for voicemail security!)
- Voicemail sharing: Twitch Extension broadcast API
- Extension development: Twitch Developer Rig
Challenges we ran into
The first challenge we ran into was recording. We realized that the Twitch iFrame would not allow recording. To work around this, we built a 3rd party site for people to generate a recording and be given a code. They can enter this code back in the Twitch extension to pull the mp3 data from our backend.
Next, we wanted to have the ability for voicemails to be sent to everyone in the stream. However, we ran into some interesting limitations with iFrames, and we discovered that after a broadcast was received, audio would not play unless a user had already clicked on the extension. This still remains a current limitation of our extension. However, we realized this may actually work out in a positive way, and realized that not everyone may want to participant in sending and receiving voice messages. This gives users and streamers the control over whether or not they will receive voicemails.
Accomplishments that we're proud of
We are extremely proud that we were able to work through some technical hurdles to provide a working tool on Twitch. This application makes use of many APIs and technologies, but we've strived to make it simple and easy for a user to understand. We have also given users the control over whether they want to engage in.. well.. we'll find out!
What we learned
We learned a lot about iFrames, and what can and cannot be done inside the context of a Twitch page. We learned about the Twitch broadcast API, which we plan to make use of for future ideas. We learned that there are always ways to move past technical hurdles, even if it means changing your initial idea -- and sometimes it might even turn out better! We learned how to use the development Rig,
What's next for Voicemail
This is just the beginning. We are releasing Voicemail initially as a free extension, so we can get it out there and learn from actual users. We plan to refine the design, features, and customizability, and eventually release a Bits-enabled version of Voicemail, which will help streamers earn money from their viewers.. creativity ;D
We look forward to working more closely with Twitch to discuss future ideas and continue pushing the boundaries of what extensions can do and provide for communities.