How i beat Netflix’s location lock.
Netflix recently introduced a new feature to their service, that being “Netflix-Households”. And to put it bluntly, it has fucked me. I can no longer watch Netflix in my dorm room, without paying whatever Netflix prices it as. I no longer felt like using Netflix at all because of this, so i decided that i was going to selfhost whatever the equivalent of it is.
A quick note, i go over most of the software used briefly. If you want to know more, i encourage you to research it.
First things first
To get my homelab started i was going to need something to run it on. Luckily i had an old Dell optiplex laying around, and for my purposes it’s more than enough. I’ve been using Arch for sometime now, and in this period it has become my favorite distro by far. Following this trend, i installed it. After installing it i wanted to be able to get a shell without plugging a monitor and keyboard in if i want to interact with it. For this i used cockpit, it’s a web-based interface to interact with the optiplex, from now on referred to as the server.
Okay, what now?
Next up was figuring out what i wanted. Of course I’m not one to break rules. So everything described in this blog-post is legal, i wouldn’t tell you how to download copyrighted content. Everything i plan on using this server for is purely legal, I’m most definitely not breaking any rules here.
With that out of the way, let’s talk about what i wanted. I wanted something that was easy, I did not want to lose any QOL features that Netflix offered. Knowing what i wanted, i found these programs that do it for me.
Programs
Listing the program will be done in order of what the user interacts with going down the list. If this isn’t clear, it will be soon enough.
The user is expected to primarily interact with one service; plex
.
You can think of Plex as the Netflix part of the whole operation. It’s responsible for interacting with the media files (movies and shows). In other words, it’s how you actually watch the media.
Because of how my setup works, you have to download the movies before you are actually able to watch them. This part took the longest to setup, so it’ll take the longest to explain.
To request media, the user is expected to interact with overseerr
. This is a request and media discovery tool built to work with Plex. In other words, its a service that allows me to discover media to download. Think of it like you’re browsing around netflix.
Great. Now we can request media, but we still need to be able to download it. That’s where radarr
, sonarr
, prowlarr
and qbittorrent
come in.
Okay, so let’s say I wanted to download the movie “Foo”. I would go to overseerr, search it and request it. If it’s a movie it goes to radarr, and if it’s a show it goes to sonarr. So, now radarr or sonarr know i want to download “Foo”. However, where does it search for this? Well, that’s where prowlarr comes in. Prowlarr is an index manager, what this means is that it indexes my favorite torrents sites, to allow sonarr or radarr to search for whatever media i requested.
So, to recap; the user requested Foo. That got sent to radarr if it’s a movie, and sonarr if it were a show. Radarr or sonarr search my favorite torrent sites using prowlarr based on the requirements i set. For example, i set it to look for 4K Remux media first, then 4K Bluray, and it goes down the list, you get the picture.
Once it found suitable media that matches my requirements, it gets sent to qbittorrent. This tool is responsible for downloading the media. Now, sonarr or radarr watch the progress, and when it’s done downloading they move it to another directory and rename it to a less cluttered name.
That’s pretty much it. I messed around with systemd (for my vpn), and docker to get some of these services up and running. Other than that, i also used the AUR and some official packages. This is the gist of how i set it up, there were some other nuisance involved, but i didn’t mention them here.