What I built
A web-based application that provides a platform to watch downloaded .mp4 videos with your peers.
If you have a .mp4 video stored locally on your PC/laptop, and you wanna watch it with your friends, colleagues, or family, you can use this application stream video in a peer to peer fashion.
Category Submission:
Random Roulette
App Link
https://local-video-party-client-w9cuc.ondigitalocean.app/
OR
https://videoparty.tk
Screenshots
Description
Video party is a platform where you can watch pre-downloaded videos with your friends in sync and chat while waiting in the lobby. It uses a peer-to-peer library to stream videos.
Link to Source Code
Client - https://github.com/varungujarathi9/Local-Video-Party-Client
Server - https://github.com/varungujarathi9/Local-Video-Party-Server
Permissive License
MIT License
Background
While I joined my new job in Sept 2020, I made some new friends. Gradually we started playing online games, chatting, etc. One thing that struck my mind was there was no platform where we could watch downloaded video files (.mp4) together. Thus we started working on this app.
How I built it
(How did you utilize DigitalOcean’s App Platform? Did you learn something new along the way? Pick up a new skill?)
I was very new to Digital Ocean's App Platform, slowed a gained a grip on it. It reduces to Ops work and lets developers focus on the important parts. The auto-deployment feature was very helpful.
We learned lots of new technologies such as WebSockets & WebRTC, etc.
Technologies that we used were
- WebSockets
- WebRTC
- ReactJS
- HTML/CSS/JS/Bootstrap
- Python - Flask & Gunicorn
- Docker
- Nginx
Flow:
- An user creates room by entering a username from the home page
- Create room functionality generates a unique room with an I.D. which can be used by other users either by join room option or by opening the invite link in the browser
- All the users can chat while in the lobby
- Original creator has access to select a file that is to be streamed
- All users can watch the streamed media file(.mp4) in sync
Additional Resources/Info
WebRTC - https://www.npmjs.com/package/simple-peer
Python FlaskSocketIO - https://flask-socketio.readthedocs.io/en/latest/
ReactJS - https://reactjs.org/tutorial/tutorial.html
Top comments (0)