Automated media center
I have a lot of media to watch and I don't want to spend time searching for it, downloading it, renaming it, moving it, etc. I want to be able to request a movie or a TV show and watch it in less than 5 minutes. I also want to be able to watch it on any device, anywhere, anytime.
Warning
This article is for educational purposes only. I does not encourage the piracy of licenced content. Doing what is described in this article is illegal in some countries. I am not responsible for the use you make of this article.
I do not use this setup to download and watch pirated content. No pirated content was downloaded during the writing of this article. Placeolder files were used instead.
Requirements
We are going to use the following tools :
- Plex : Media server and player
- Sonarr : TV shows manager
- Radarr : Movies manager
- Jackett : Torrents indexer
- Overseerr : Requests manager
- qBittorrent : Torrents client
We are also going to need a linux based server with for hosting all of this.
Deployment
For the deployment, we are going to use Docker and Docker Compose.
Docker Compose
The full docker-compose.yml
file is available here.
Then we can start the stack with the following command :
Then we can check that everything is running with :
The output should look like this :
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
auto-media-center-jackett-1 lscr.io/linuxserver/jackett:latest "/init" jackett 20 minutes ago Up 20 minutes 0.0.0.0:9117->9117/tcp
auto-media-center-overseerr-1 lscr.io/linuxserver/overseerr:latest "/init" overseerr 9 minutes ago Up 9 minutes 0.0.0.0:5055->5055/tcp
auto-media-center-plex-1 lscr.io/linuxserver/plex:latest "/init" plex 9 minutes ago Up 9 minutes 0.0.0.0:3005->3005/tcp, 0.0.0.0:8324->8324/tcp, 0.0.0.0:1900->1900/udp, 0.0.0.0:32410->32410/udp, 0.0.0.0:32400->32400/tcp, 0.0.0.0:32412-32414->32412-32414/udp, 0.0.0.0:32469->32469/tcp, 5353/udp
auto-media-center-qbittorrent-1 lscr.io/linuxserver/qbittorrent:latest "/init" qbittorrent 20 minutes ago Up 20 minutes 0.0.0.0:6881->6881/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:6881->6881/udp
auto-media-center-radarr-1 lscr.io/linuxserver/radarr:latest "/init" radarr 20 minutes ago Up 19 minutes 0.0.0.0:7878->7878/tcp
auto-media-center-sonarr-1 lscr.io/linuxserver/sonarr:latest "/init" sonarr 20 minutes ago Up 19 minutes 0.0.0.0:8989->8989/tcp
Setup
Now that everything is running, we can start the setup.
Plex
This is the first thing we are going to setup. Plex is the media server and player. It is the core of our media center.
First we need to access the service through the web interface. The default port is 32400
. So we can access it at http://<server-ip>:32400/web
.
If you don't have a Plex account, you can create one for free. Then you will be able to access the web interface.
After going through the wizard, you should see something like this :
We can now add our media libraries. For this example, I will add a TV shows library and a movies library.
First the movies library configuration :
Then the TV shows library configuration :
Finally Plex server should look like this :
Jackett
Jackett is a torrents indexer. It will allow us to search for torrents on multiple trackers at once.
First we need to access the service through the web interface. The default port is 9117
. So we can access it at http://<server-ip>:9117
.
You should see something like this :
Then we need to add some indexers. For this example, I will add the following indexers :
Copy the Torznab
URL of each indexer and the API key. We will need them later.
QBittorrent
qBittorrent is a torrents client. It will allow us to download torrents.
First we need to access the service through the web interface. The default port is 8080
. So we can access it at http://<server-ip>:8080
.
The default username is admin
and the default password is adminadmin
.
You should see something like this :
Then we need to configure the download folder in (Options > Downloads). For this example, I will use /downloads
as the download folder and /incomplete-downloads
as the incomplete downloads folder. Don't forget to click Save
at the bottom of the page.
Sonarr
Sonarr is a TV shows manager. It will allow us to search for TV shows and download them automatically.
First we need to access the service through the web interface. The default port is 8989
. So we can access it at http://<server-ip>:8989
.
You should see something like this :
Indexers
We are going to configure the indexers in (Settings > Indexers). For this example, I will use the following configuration :
Field | Value | Comment |
---|---|---|
Type | Torznab |
|
URL | http://jackett:9117/api/v2.0/indexers/1337x/results/torznab/ |
Copied Torznad URL from Jackett web interface. We need to replace localhost by jackett |
API Key | Copied API key from Jackett web interface. | |
Categories | TV |
Download client
We are going to configure the download client in (Settings > Download Client). For this example, I will use the following configuration :
Field | Value |
---|---|
Type | qBittorrent |
Enable | Yes |
Host | qbittorrent |
Port | 8080 |
UseSsl | No |
Username | admin |
Password | adminadmin |
We can test the connection by clicking on Test
at the bottom of the page.
Note : You can set the Initial State to Paused
if you don't want Sonarr to download all the episodes of the TV shows you add.
Media management
We are going to configure the media management in (Settings > Media Management). This will allow Sonarr to rename and move the downloaded episodes from qBittorret in the right folder for Plex to find them.
For this example, I will use the following configuration :
Test
Now we should be able to add a TV show. In (Series > Add Series), we can search for Game of Thrones
and add it :
Field | Value |
---|---|
Root Folder | /media/Series/Game of Thrones |
Monitor | All Episodes |
Quality Profile | HD-1080p |
Then we click on the Game of Thrones
card and we should see something like this :
Then we can click on the Interractive Search
button (small person icon) to search the first season torrents :
We can click on the Download
button to trigger the download of the first season.
On the (Activity > Queue) we can see the download progress :
And on qBittorrent we can see the download progress :
And finally when the download is finished, Sonarr will rename and move the episode in the right folder. And Plex will detect the new episode and add it to the library.
Radarr
Radarr is a movies manager. It will allow us to search for movies and download them automatically.
First we need to access the service through the web interface. The default port is 7878
. So we can access it at http://<server-ip>:7878
.
You should see something like this :
Indexers
We are going to configure the indexers in (Settings > Indexers). For this example, I will use the following configuration :
Field | Value | Comment |
---|---|---|
Type | Torznab |
|
URL | http://jackett:9117/api/v2.0/indexers/1337x/results/torznab/ |
Copied Torznad URL from Jackett web interface. We need to replace localhost by jackett |
API Key | Copied API key from Jackett web interface. | |
Categories | Movies |
Download client
We are going to configure the download client in (Settings > Download Client). For this example, I will use the following configuration :
Field | Value |
---|---|
Type | qBittorrent |
Enable | Yes |
Host | qbittorrent |
Port | 8080 |
UseSsl | No |
Username | admin |
Password | adminadmin |
We can test the connection by clicking on Test at the bottom of the page.
Note : You can set the Initial State to Paused
if you don't want Radarr to download all the Films you add.
Media management
We are going to configure the media management in (Settings > Media Management). This will allow Radarr to rename and move the downloaded films from qBittorret in the right folder for Plex to find them.
For this example, I will use the following configuration :
Test
Now we should be able to add a TV show. In (Series > Add Series), we can search for Avengers
and add it :
Field | Value |
---|---|
Root Folder | /media/Films/The Avengers (2012) |
Monitor | Movie Only |
Quality Profile | HD-1080p |
Then we click on the The Avengers
card and we should see something like this :
Then we can click on the Search
tab to search the film torrents :
We can click on the Download
button to trigger the download of the first season.
On the (Activity > Queue) we can see the download progress :
And on qBittorrent we can see the download progress :
And finally when the download is finished, Radarr will rename and move the episode in the right folder. And Plex will detect the new episode and add it to the library.
Overseerr
As you can see, Radarr and Sonarr are great tools. But they are not very user friendly. Overseerr will allow us to request TV shows and movies in a nice web interface.
First we need to access the service through the web interface. The default port is 5055
. So we can access it at http://<server-ip>:5055
.
During the first setup, we need to configure the following fields :
Plex Settings
This will allow Overseerr to connect to Plex and look if media are already available in the library.
Field | Value |
---|---|
Server | Your Plex server |
Hostname or IP Address | http://plex |
Port | 32400 |
Use SSL | No |
Plex Libraries | Films,Series |
Radarr Settings
This will allow Overseerr to connect to Radarr and trigger the download of requested movies.
Field | Value |
---|---|
Default Server | Yes |
Server Name | Radarr |
Hostname or IP Address | http://radarr |
Port | 7878 |
API Key | Copied API key from Radarr web interface (Settings > Général). |
Quality Profile | HD-1080p |
Root Folder | /media/Films |
Sonarr Settings
This will allow Overseerr to connect to Sonarr and trigger the download of requested TV shows.
Field | Value |
---|---|
Default Server | Yes |
Server Name | Sonarr |
Hostname or IP Address | http://sonarr |
Port | 8989 |
API Key | Copied API key from Sonarr web interface (Settings > Général). |
Quality Profile | HD-1080p |
Root Folder | /media/Series |
If everything is configured correctly, you should see something like this in the Discovery tab :
We can see that the movie Avengers
and TV show Game of Thrones
are already available in Plex.
Notes : User that have access to your Plex server will be able to request movies and TV shows. They can login with their Plex account.
You can configure the users in the Users tab. You can for example create a local users that will be able to acces Overseerr without a Plex account.
Requesting media
We will now try to request a movie from Overseerr. We will use a local user for this example.
Let's try to request the movie Deerskin
. From the Discover tab, we can search for Deerskin
and we should see something like this :
Then we can click on the Request
button to request the movie.
Going back to the Requests tab with our admin account, we can see the request :
We can click on the Approve
button to approve the request. This will trigger the download of the movie in Radarr and download it like we saw earlier in the Radarr section.
And finally when all the process is finished, we can see the movie is available in Overseerr and Plex.