Because of COVID-19, we were frustrated that we couldn't watch videos together with our friends in person like we used to. We decided to face this frustration by creating this website. In this website, users are able to create a private room and sync their YouTube videos with each other, as well as talk in a chat room. While this cannot fully replace watching together in person, it can still help people interact with each other and stay social during the pandemic.
What it does
HOST- The controller of the watch party
CLIENT- A watcher in the party
The first thing that happens is the server initializes the port and then listens for a host to create a room. When they do this, it sends a request to the server with a unique ID. The server then generates a room of that ID. That room has the unique ID, and uses that to access the chat feature, which is private and only seen by that room. Clients are able to join the room by going to the same website url as the host. The WebSocket of the client syncs with that of the host. When the host plays or pauses the YouTube player, the WebSocket tells the client to also play or pause. If the client tries to skip ahead or go out of sync with the host, their player will automatically resync.
How we built it
We used the YouTube API and Socket.io in order to create a network structure that will sync between a host and watcher clients.
Challenges we ran into
It was hard to create the proper structure and logic needed to sync clients and make sure all events were heard and emitted properly.
Accomplishments that we're proud of
We are proud of being able to create the chat room and clients within the allocated timeframe.
What we learned
We learned a lot about how event emitters work and how cross-client communication works.
What's next for Movie Night
Next is to deploy the app on a server and connect it to a domain in order to actually use it over the internet.
Log in or sign up for Devpost to join the conversation.