Social Distancing means friends can't get together and binge Netflix like they used to. Current tools like NetflixParty, Rabbit, etc work very unreliably and people often give up. None of these tools allow for video calls while watching netflix together either - and I have personally seen the need for a tool like this as I have tried to watch Netflix with friends.

What it does

StreamTogether allows users to watch Netflix in sync with each other while seeing each other's faces on video call. It is a chrome extension that adds a sidebar to your Netflix player's window and shows the video call streams in that sidebar.

How I built it

Started by learning all about WebRTC. The biggest difference between this and all other plugin is that all the communication happens completely Peer-to-peer! This app is architected completely serverlessly - taking away the headache of vertical scaling by throwing in too many servers.

It uses the WebRTC media channels (video & audio streams) and data channels (play/pause data). It uses firestore to perform the initial WebRTC signaling.

Challenges I ran into

It was my first time building a Chrome Extension - they have really weird architecture decisions that need to be made. And all that sandboxing leads to more complexity and interesting runtime-related challenges.

What I learned

Picked up a lot of WebRTC knowledge and skills. Distributed, decentralized, peer-to-peer communication is the future!

What's next for StreamTogether

Cleaning up some code and making the UI more robust - followed by a launch on the chrome extension store!

Share this project: