Make Video Sharing Web App — Part I — Intro

Shun Yao
4 min readApr 8, 2018

--

This is a journal of my first web application development using Django framework. I’m going to explain the process of the development as I build this app. So far, as I am writing this entry, I have already completed about 70% of the application. In this first entry, I will explain what this web app does and technologies that I use.

Here is a list of entries for this journal series.

Part I — Intro

Part II — Sync Mode

Part III — Comment

Part IV — Deployment with HTTPS, PostgreSQL, Nginx

Part V — Video Chat

Part VI — UI/UX

Part VII — Misc and Conclusion

VidU — Video With You

Intimate Video Sharing with Your Friends

VidU Dashboard

This application is all about sharing YouTube video with your friends and watch it together while you can comment, chat, video-chat, and even sync the playback. I aim it to be simple and intuitive to use.

First, I will explain key features of the web application. Then, I will talk about technologies that I use to build.

Key Features

1. Create Room

From navigation bar on top, you can create your room in which you share YouTube video with your friends to watch it together.

Create Room is so simple. You just copy paste YouTube video url.

2. Invite Friends

In your room, invite friends by adding there username. Once Your friend accepts your invitation, your friend can enter the room and make comments on the video.

Room. You can invite your friend to the room to watch it together.

3. Comments Flow on Top of Video

If you have ever used NicoNico, a video service popular in Japan, or BiliBili, a video sharing service in China, you know how the comments user made flow on top of the video. This web app also does the same thing. It’s quite easy to read comments without interfering watching the video.

Comments flow on top of the video

By clicking the comments sidebar, you can see all comments on the video. You can click on the comment to jump to position where the comment is posted. The comments are updated real time as another user posts on the video.

4. Sync Mode So You Can Be Intimate

This is one of the coolest features in this app. You can sync the playing state with your friend so that you can watch the video “together”. It’s as if you are watching the video in the same room virtually. If you skip/pause in the video, your friend also gets the same update.

Sync Mode. Virtually you are in the same room.

5. You can chat

In the same room, you can chat with your friends who have access to the room. If you want to talk with particular friend instead of everyone in the room, you can also open up individual chat. This is like Facebook messenger.

Chat Room Sidebar

6. Video Chat Makes It Even More Intimate

Now, this is pretty cool. You can directly talk with your friend by video chat. So you can really watch the video together and see your friends reactions.

Video Chat Makes It More Fun To Watch Together

Key Technologies

  1. Django — Python based framework. It’s really easy to use. I will use version 1.11.
  2. Pusher — Realize realtime features simply. This is used to send messages among users real time.
  3. Pubnub/WebRTC — This is used to realize video chat. Really simple API on top of WebRTC (Web Real Time Communication)
  4. Bootstrap/MDBootstrap — Frontend UI made with very easy-to-use material design bootstrap.
  5. YouTube javascript API — Control YouTube videos programmatically

That is it for this entry. Next time, I will explain how I implemented sync feature using Pusher.

Thank you for reading!

--

--