Streaming subscriptions are worse than cable. Solution: Build Your Own Media Server at Home

Why?

Installation and configuration

Let’s populate your library first.

There is the standard way of getting things. The usual, search for “xyz torrent”and download it manually. But we’re gonna automate this as much as we can.

If you already have a bunch of stuff downloaded, then that is also fine.

  1. Radarr: A movie collection manager.
  2. Sonarr: A TV series collection manager.
  3. Jackett: A tool that provides access to multiple torrent trackers.
  4. Flaresolverr: A proxy server to bypass Cloudflare protection.
  5. qBittorrent: A torrent client.

You can install Radarr and Sonarr as services. This way they can start themselves as services automatically on system startup.

qBittorrent

Do the usual setup.

Now the main setup:

Example settings:

Example Settings

Flaresolverr

Setting this up is as straight forward as it gets.

Just download and run. [You may need to run as administrator]

Note the port it is running on. Default should be 8191.

Jackett

Jackett is an easy way to setup “Indexers”. An indexer is basically a website (or API) which lets you search for the media you want to download.

Some famous indexers for example: YTS, 1337x, eztv, thepiratebay etc

Lets add some indexers.

There are 3 types of indexers:

Setup some popular public indexers.

Click on “Test All” to test the indexers are working or not.

Radarr and Sonarr

Setting up Radarr and Sonarr is quite similar. So this section should cover both.

Download clients settings

Optional:

If you check the “Remove Completed” option, Radarr will delete torrent entries and the files from your temporary download folder and move them to your library folder.

This is good (for most) but it will also make it so that seeding is stopped for the same torrent; which is not good.

Download client settings dialogue

At this point, you should be able to search and add movies / series.

Simply, search for them on the Radarr / Sonarr UI and add them and it should start downloading.


Optional (but still somewhat useful) configurations

Size Limits:

One important thing to configure when setting up Radarr and Sonarr is the size limits and profiles.

Unless you want to download a 2k resolution movie that is like 50GB or something.

You can setup limits like this:

Size limits in quality settings page

Example:

Size limit warning in interactive search results

Quality profiles:

Quality Profiles page

Language Profiles (Sonarr)

This is kind of annoying, but if you want to download non-english TV series or any Anime, make sure to add a new Language profile in the profiles section.

Also make sure to select this Language profile when adding new series to Sonarr otherwise it will never find your show.

I have selected every language option here

Adding a french TV Series here as example: Adding a french TV Series here as example

Search filters:

You can setup filters and use them while using Interactive Search:

Interactive search filter

Telegram Bot:

Setup a notifier bot

Telegram notifier bot


Adding new media

Search:

Movie search screen

And add:

Movie add dialogue

When added:

Movie page

If you want to manually search for a media:

Interactive search


How to watch

Now that we have a sizeable library, lets add some media players to keep easily visualize our library, watch our media and keep track of what we have watched.

We will use Jellyfin for this.

Let’s setup Jellyfin + Kodi.

If you have a digital TV, you can setup Kodi on it. For the rest of the devices we’ll use Jellyfin.

Also, we’ll use Jellyfin to manage watched history and the library and import that in Kodi.

Jellyfin

Installation of Jellyfin should be simple.

Just download the installer and start the service.

Configuration:

</br>

Jellyfin homepage

Transcoding Media

To watch media remotely, the media needs to be compatible with the device you are using. eg: Jellyfin on phone will refuse to play x265 encoded files

If the media is not compatible with your device, Jellyfin will try to transcode the file (using ffmpeg).

This increases CPU usage on the host device.

If you are using a Raspberry device to host your media servers, or if you are using the host for any other tasks like me (I use my gaming PC to host my media server), please ensure that your system can handle this load.

For example, if I try to stream 1080p x265 media on my phone, CPU usage on my PC will climb up +60-70%. So, if I’m playing games at the same time someone is using the media server, it would obviously make my game performance worse.

BUT

If you want to disable transcoding, you will have to disable it for a user.

Goto Dashboard → Users → Select the user you want to disable transcoding for and uncheck these options:

Transcoding settings

This will completely disable transcoding for that user. So, they cannot play unsupported formats directly from their Jellyfin app.

BUT

If the user is so inclined, they can directly download the media file via Jellyfin onto their device and watch it using a proper media player (example: VLC for android).

Kodi

Download and install Kodi.

This should be straight forward.

Don’t need to configure any library sources on Kodi. We will do that using Jellyfin + Kodi.

Kodi Movies page

Jellyfin + Kodi

Follow instructions here: https://jellyfin.org/docs/general/clients/kodi/ and setup “Jellyfin for Kodi”

Now this will sync your Kodi library with Jellyfin library so that you can preserve what you were watching across devices (Just like netflix).

thats-all-folks

There are a lot of tips and tricks I’ve probably missed out on. I’ve been torrenting stuff for years now and you pick up on stuff over time. Like understanding media quality and codecs from the title of torrents, picking up best sources etc.

Cant really put everything in one single article. Feel free to open issues for discussion.


Other cool resources

You’ll find better and more in-depth guides about these services elsewhere on the internet. I’ll add some of them when I come across them. But this is how I’ve done my setup and this guide can be used as a good basic config for everything.

I have Bazarr setup as well but I dont use it as much. Only use it to find subtitles when my any of the media dont have subs + Jellyfin + Kodi plugins for finding subtitles also fail.

I’ll keep updating this doc whenever I get around to setup other things like Prowlarr, Jellyseer, Lidarr, etc. (Except Plex, it fucking sucks)