We noticed a need for a way to play videos simultaneously across multiple devices. This could be useful across a range of use cases, from watching shows with friends to teaching through the internet. A single teacher could show students across the world the same video and keep everyone on the same page. Couples or influencers could share special moments with there fans and loved ones, previewing content together.
The simple concept has many intricacies, as these things often do.
First of all is seeking: the host needs to be able to seek in the clients' videos as well. Luckily HTML video makes this easy, the host sends a response to an open socket to the controller, where the controller loops through all connected devices and sends a response to the web-sockets open with each controller instance under the same video ID. We also have to keep track of playing and pausing, and making sure all videos are relatively close to the same time, these requests are identical to how seeking works.
This project runs on a Google Cloud VM, referencing a database also in Google Cloud. The videos are uploaded by users and saved on the server temporarily.