This is the story of how we got around to building twoseven.xyz, the problem we’re trying to solve, the various existing solutions, and why we decided to build a solution ourselves.
This will be a multi-part post. The first part delves into the background of how twoseven came to be and a peek into how and why we made some of the decisions we did.
Me and my wife have spent a considerable amount of time living in different cities. Despite this, we would try to make it a point to watch movies and TV shows together. At first, this involved a Skype call wherein we would countdown 3-2-1 together and attempt to start or stop the video at the same time. This worked reasonably well, but as you can imagine, it got frustrating pretty quickly. Answering our phones or the doorbell often led to cases where we were out of sync and had to spend a couple of minutes to re-synchronize our individual videos. I was going to find a solution to this.
At that time, I wasn’t aware of any software that attempted to solve this problem, but it was obvious to me that this was definitely solvable. I tried searching online for possible solutions and came across a couple that I toyed with.
The first was wavelength.fm. This was incredible. I could watch YouTube videos with others without worrying about synchronization. They also supported watching personal videos together. I recall watching a good chunk of Forrest Gump with my wife despite our slow internet.
The second was RTMP Multicast on VLC which should have solved our problem. This approach does have a couple of big downsides to it though. Each user needs to configure her VLC player to receive the stream and the stream has to be accessible to all participants over the internet.
A lot of our content at that time came from DVD box sets where only one of us were in possession of the content. This created an additional problem wherein only one of us had control over the content that we were going to watch.
Around this time, I started hearing a lot about HTML5 and how it could support video content without requiring Flash plugins. I was a graduate student in Computer Science, and although I didn’t have any knowledge or experience in web development, I was enthusiastic and looked forward to learning something new.
On January 4 2015, I decided to embark on what we would come to call
videoshare. It was a simple server that presented the contents of my hard-drive to visitors (safe to say I wasn’t specializing in computer security). The backend was written in python and by April 2015, it had rudimentary synchronization capabilities. Some day, once I strip out all instances of passwords and other sensitive information, I hope to release this version on Github. It lacks a lot of features and isn’t very pretty, but it works!
Later that year, we gave up on purchasing DVDs and started using Netflix. Once again, we were left searching for a solution for this platform. By this time, we had a good grasp of web development and wanted to try and come up with one framework that can handle any number of websites. It was out of this effort that twoseven.xyz was born.
We started with support YouTube as all others before us have and threw in Vimeo support as well, for good measure. Using a HTML5 technology called WebRTC gave us webcam capabilities. We finally had both, movies and webcam, under one roof and bid adieu to Skype. Synchronizing Netflix however, was still a challenge.