LeapFlix was designed to be a Chrome Extension which would skip through intros of popular TV shows on Netflix. Some shows have a cold opening and some have terribly long intros. House of cards has a 90 second video of time lapses from Washington which gets a little old after a while, so I thought this was required.

(Img 1). Netflix url pattern

(Img 1). Netflix url pattern

Since I watch this in Chrome, building a chrome extension seemed like an obvious choice. I researched the topic further and got to a forum which suggested appending a &t=300 at the end of the current URL to make the video skip by 5 minutes. It all seemed getting a bit more clear. I had to make an extension which would grab the URL and then would append the required amount of time as per the show. Seems pretty straightforward and easy. There was just one catch. I didn't know how to make a Chrome Extension.

Setup

Before starting anything, I went straight to Affinity Designer and made myself a logo. Design is my first preference. People do judge a book by it's cover so whatever the app does or does not do, it has got to look good. In this case, it quite didn't look that good, but I had to make do. Then I started working on the tutorial and did the basic steps of making popup.html and popup.js. I worked on the basic design which wasn't anything special - just the logo and a button. Now that I had the basic setup completed, it was time to actually figure out how to make this work.

Implementation

I tried testing it out on House of Cards because that's one of my favorite shows. After the click of the button, the extension would get the URL of the active tab and then append '&t=96' at the end and finally reload it.

(Img 2). Basic Leapflix design

(Img 2). Basic Leapflix design

The first episode I played did not have a cold opening and so my extension worked perfectly. I skipped through the intro and reloaded exactly when the episode starts. The extension was working! Awesome! Well, not so much. When I tried testing it out on the very next episode, I waited till the intro began (This episode had a cold opening) so when it did I launched the extension and waited for it to reload. It just took me to 1 minute 36 seconds down the episode instead of skipping the intro. The time parameter obviously loads from t = 0.

I needed to somehow monitor the time from the beginning to when the intro starts so the first thing that came to my mind is adding a clock button which should be started as soon as the episode does. That also required looking up stuff online but it worked out quickly.

(Img 3). Leapflix with a start button

(Img 3). Leapflix with a start button

Challenges

After some research I found out how Netflix actually works. The sources I used are not too reliable because Netflix doesn't release any of this information officially. Since Netflix has such a huge library, it is physically impossible for an individual to go through every thing so instead of loading the entire library and requiring large amounts of memory and processing time, Netflix uses something called a Sparse Matrix.

So a sparse matrix as shown below is a matrix that contains a majority of zeros. So let's just say that each video title in the Netflix library is a number other than 0. I learnt about all this in my linear algebra class but I never thought I would get to see this used in real life.

(Img 4). Sparse Matrix

(Img 4). Sparse Matrix

Instead of carrying the entire matrix information, Sparse matrix just carries the information of the location where a number is non-zero thus saving considerable amount of processing effort. Also, these positions keep on changing each session so the trackID is nothing more than the position of the Title in a particular session for that particular user. Basically, my entire procedure of finding the show based on URL was flawed and hence the extension failed to serve it's purpose. This was an entire weekend worth of work that resulted into nothing, but it did teach me a lot. It taught how to make a basic chrome extension and get an insight on how Netflix might be working.

(Img 5). Leapflix on the Chrome Webstore

(Img 5). Leapflix on the Chrome Webstore

I updated the Chrome Web Store info of the extension to 'outdated' and I apologize to the 15 something people that installed it on the first day before the update.

I think the solution for this would be Netflix populating the details of the intro of a particular episode along with other metadata and showing a button to leap.

Update

Checkout the bottom right corner. Netflix has finally introduced a 'skip credits' button making LeapFlix obsolete (it already was pretty useless). It still was a good experience and I learnt a lot about working with Chrome Extensions in the process. I look forward to working with a new chrome extension idea in the future.

(Img 6). Update: Netflix added a 'skip intro' button

(Img 6). Update: Netflix added a 'skip intro' button

Try it out

Github