CouchPotato is an application server that makes it easy and automatic to download movies and TV series. You can set the quality you want to download, eg. 4K or 1080p, the movie you're looking for and CouchPotato continuously monitor BitTorrent and Usenet sites and download the version you want as soon as it's available.
In this guide, you install CouchPotato on a Raspberry PI minicomputer. Raspberry PIs are great as a CouchPotato server because:
- They are energy efficient and fanless. You can run them around the clock to download your trains without worrying about your energy bills.
- These are full computers with a desktop environment so you can log and manage them using GUI tools.
- They are $ 35 USD!
These reasons make a Raspberry PI an ideal home download server and a great introduction to using Linux if you have not taken the plunge yet.
You need some things to get your CouchPotato server up and running. They are as follows:
- Raspberry PI 3 or 4 (any version).
- 16 GB microSD card.
- Micro USB charger for Android phones (for the Raspberry PI).
- USB keyboard.
- HDMI monitor or TV to use a monitor.
- USB storage device big enough to hold your movies and TV shows.
During the installation and configuration phase, you access the Raspberry PI with the keyboard and mouse. You'll no longer need them later during your normal use of CouchPotato because you're logging into their web interface or the Raspberry PI desktop.
Install the operating system
Your first task is to install the operating system on the microSD card on which the operating system of the Raspberry PI is located. The operating system we are installing is Raspbian. Raspbian is based on the Debian operating system and is compiled for the ARM CPU that the Raspbian uses.
Navigate to the download page and download the Raspbian Buster with Desktop Image. This is a large 1.1GB file that you need to store on your computer. Do not unpack this file. The software we use to flash it onto the MicroSD card does it for you.
If you're a seasoned Linux user, here are the instructions on the command line to flash the Raspbian image
Everyone else should download and install the software that we will use to flash the microSD card – balenaEtcher. This software is a nice cross-platform application (Windows, OSX and Linux) that will flash SD cards and USB flash drives.
Note that in the next step you will delete all data on the microSD card. Make sure that you have a copy of all data on it before proceeding.
Insert your microSD card into your computer and start balenaEtcher. The simple screen looks like this:
Click on that
choose picture Click the button and navigate to the Raspbian image you downloaded and select it. balenaEtcher automatically searches for and selects the microSD card inserted in your computer. Make sure the size specified next to the device selected by balenaEtcher matches the size of your MicroSD card to make sure you are using the microSD card.
When you are ready, beat
Lightning!, Flashing the microSD card takes a few minutes. When balenEtcher finishes, remove the microSD card and load it into your Raspberry PI.
Connect the screen and keyboard to your Raspberry PI, and then connect the phone charger. The Raspberry PI is now turned on. Log in with the following information:
- Username –
- Password –
Follow the on-screen instructions until you get to the desktop.
You need to open a terminal from the desktop to continue the tutorial.
Automatically mount the USB device
In this section, you configure the PI to automatically bind or bind the USB flash drive to save your movies to it.
Raspbian always specifies the device name
/ dev / sda to the first USB device that you connect to the Raspberry PI. This allows us to create an entry in the file where the device mount is configured
/ etc / fstabso that the USB stick on which you have your media is always automatically delivered to the same location.
Before you edit
/ etc / fstab You must get the UID (User I WOULD) from
pi and the GID (Ggroup I WOULD) from
user, First, find the UID of
pi by executing this command:
sudo grep "Pi" / etc / passwd
This gives an output that looks like this:
pi: x: 1000: 1000: ,,,: / home / pi: / bin / bash
piThe UID of is the first number, i. H. 1000. The following command gets the UID of
sudo grep "User" / etc / group
This prints the output:
User: x: 100: pi
The UID of
user is 100. Open with this information
/ etc / fstab with a text editor. Here
Nano is used:
sudo nano / etc / fstab
Add a line with the following format:
/ dev / sda1 / home / pi / Downloads vfat umask = 0002, gid =
uid = 0 0
Substituting the values we discovered earlier:
/ dev / sda1 / home / pi / Downloads vfat umask = 0002, gid = 100, uid = 1000 0 0
You must use the values from your Raspberry PI.
Finally, we need to change the user and group for `/ home / pi / downloads:
sudo chown -R pi: user / home / pi / downloads sudo chmod -R 775 / home / pi / downloads
Plug in your USB device and make sure it's automatically mounted
/ home / pi / downloads, You will be prompted to open a file manager when you connect the USB device that is opened at its mount point; H.
/ home / pi / downloads,
Installation and configuration of CouchPotato
The recommended way to install CouchPotato on a Linux server is to clone the Git repository. Before you can do this, you must install Git and some additional Python libraries with the following commands:
sudo apt update sudo apt install git python-lxml python-pip pip install --upgrade pyopenssl
Next, you need to clone the CouchPotato repository to the root of the clone
pi User with the following commands:
CD ~ / git clone https://github.com/CouchPotato/CouchPotatoServer.git CouchPotato
You can now start the CouchPotato server by simply running the Python script downloaded with the git pull at
/home/pi/CouchPotato/CouchPotato.py, This is not an ideal way to manage a service on Linux because it does not start automatically on reboot and you can not restart it properly. Instead, you create a systemd service file that lets you manage CouchPotato as a world-class system service.
The CouchPotato repository contains a systemd service file that we can use with a small change. You must edit the file so that the location of the
CouchPotato.py is specified correctly and CouchPotato is running as
pi Users. First open the service file with a text editor
Nano is used:
And edit the
[Service] Section look like this:
[Service] ExecStart = / home / pi / CouchPotato / CouchPotato.py Type = easy User = pi Group = pi
Then copy this file
/ etc / systemd / system /:
sudo cp /home/pi/CouchPotato/init/couchpotato.service / etc / systemd / system /
Let systemd automatically start CouchPotato at boot time:
sudo systemctl activate Couch Potato
You can now start CouchPotato with the following systemd command:
sudo systemctl start couchpotato
You can now log in to CouchPotato while it's running. However, you can not do anything because no "downloaders" are installed and running. A downloader is an external tool that downloads the movies. CouchPotato supports two downloadable protocols. Bittorrent for bittorrents and NZBs from Usenet locations.
You must install and configure these two downloaders before logging in to CouchPotato so that you can start downloading when you log in.
Install and configure a Bittorrent Downloader: Transfer
CouchPotato supports several different bittorrent servers for automatic download of bittorrents. The BitTorrent server that you install in this guide is Transmission because of its ease of installation and low resource requirements.
Transmission is installed with a single one
sudo apt install transmission daemon
Transfer daemon The server starts automatically, so shut it down before proceeding:
sudo systemctl stops the transmission-daemon.service file
The transfer is executed as a user
Debian transmission, This user must be added to
user Group, so they have permission to write to the
Downloads Directory. To do this, run the following command:
sudo usermod -on -G user Debian transfer
Finally, you must change the password CouchPotato must use to access the broadcast server. This is stored in a configuration file as
/etc/transmission-daemon/settings.json, Open this file with a text editor:
sudo nano /etc/transmission-daemon/settings.json
Then find the line that looks like this:
And change everything between the second set of language tags to a new password. Write down the new password.
Finally, start the transfer server:
sudo systemctl start transmission-daemon.service
The BitTorrent downloader is now configured and running.
Install and configure a Usenet downloader: NZBGet
Install NZBGet with the following command:
sudo apt install nzbget
Next, you must set a unique password for NZBGet, because unlike Transmission during installation, a unique password is not generated. Open the NZBGet configuration file with a text editor:
sudo nano /etc/nzbget.conf
And scroll down until you find this line:
ControlPassword = tegbzn6789
tegbzn6789 for a new password. Write down this password, save it and quit the text editor.
Finally, you must create a systemd-unit file for NZBGet so that it can be managed by systemd. Open the service file with a text editor:
sudo nano /etc/systemd/system/nzbget.service
And add the following:
[Unit] Description = NZBGet After = network.target [Service] ExecStart = / usr / bin / nzbget -D ExecStop = / usr / bin / nzbget -Q ExecReload = / bin / kill -HUP $ MAINPID User = pi KillMode = process Type = forks [Install] WantedBy = multi-user.target
Then activate and start NZBGet:
sudo systemctl activate nzbget.service sudo systemctl start nzbget.service
The Usenet downloader is now configured and running. You can log in to CouchPotato, perform the initial configuration, and start using it.
Sign in to CouchPotato
CouchPotato is now running and monitoring the public IP address of the Raspberry PI. You will need to retrieve the IP of the Raspberry PI so you can log in to CouchPotato. In the open terminal, run the following command:
Host name -I
The IPv4 IP address will be listed first. Take this IP address and create a URL that has the same format as the following:
With an example of a private network IP, we get the sample URL:
Enter this into a browser on your computer that is on the same local network as your Raspberry PI.
When you log in to CouchPotato for the first time, the page of the configuration wizard appears. Here we will work from top to bottom to configure CouchPotato.
Username and password
In the first section, you can set a username and password for CochPotato. This is not mandatory, but is recommended.
Scroll a little further down in the Which download apps do you use? Section until you see the highlighted line NZBGet, Turn on the switch on the right to enable this downloader. This will bring up three dialog boxes:
- Host – leave this value
- Password – Edit this with the password you have set in Install and configure a Usenet downloader: NZBGet Section.
- Category – Select a category to include in CouchPotato and view these downloads.
Transmission is the line under NZBGet. Turn on the switch on the right to enable transmission.
When you toggle the switch, a dialog box appears with the following four boxes:
- Host – leave this value
http: // localhost: 9091
- Username – Leave this value
- Password – Copy the password that you have in the Install and configure a Bittorrent Downloader: Transfer section
- Directory – selects the directory where your downloads will be saved. If you click on this field, a new field will be opened in which all directories will be displayed below the user
piHome directory. Choose Downloads Directory.
When done, the section Transfer should look like this:
Select Additional Torrent Providers
CouchPotato is preconfigured to access torrent sites to search for the movies you want to download. The more you activate, the faster CouchPotato can find the films you want. Most of the websites listed require a registered account, which you must sign up for.
The following websites do not need a registered account, so they can speed up your search immediately:
- NZBClub (Free NZB Site)
- Binsearch (free NZB page)
You can now use CouchPotato. Just hit it
Enable the VNC Remote Desktop
VNC is an open source version of the Windows Remote Desktop protocol. It allows a person to log into the desktop environment of a remote computer, such as your Raspberry Pi. If you have VNC enabled, you do not need to use a keyboard and mouse to access the desktop of your Raspberry PI.
The default Raspbian image contains all the VNC components, so you do not have to install anything, you need to enable it.
Open a terminal on the Raspbian desktop and enter the following command:
This opens a command line menu. Use the up and down arrows and enter to navigate through the menus. Proceed as follows:
- To mark
Interface Optionsand press Enter.
- To mark
P3 VNCand press Enter.
- Press Enter for
- To confirm
- Use the
and press Enter to exit the program.
You can now log in to your Raspberry PI desktop using the VNC viewer. Download this application, install it on your local computer and use the IP address of your Raspberry PI to log in as
Move your movies to your computer
Once your downloads are complete, you must move the movies and TV shows to your main computer for viewing. Here we look at two simple ways.
Move the USB device
The first method is to disconnect the USB device from your Raspberry PI, connect it to your local computer, copy the data, and then reconnect it to the Raspberry PI.
The following procedure ensures that you will not damage the data on the USB device.
- Log into the desktop of your Raspberry PI using the VNC Viewer application linked to it Enable the VNC Remote Desktop Section.
- Shut down the Raspberry PI.
- Disconnect the USB.
- Plug the USB device into your local computer.
- Copy your data to the device and to your computer.
- Eject or unmount the USB device.
- Disconnect the USB device.
- Plug the USB device into the Raspberry PI.
- Disconnect the Raspberry PI power cable and plug it back in.
Copy files over the network
Your Raspberry PI is connected to the local network, so you can transfer your media to it over the network instead of manually moving the USB stick to your computer to copy the files.
The best program to safely transfer files from your Windows computer to the Raspberry PI is called WinSCP. Follow this link to download, install and open WinSCP.
WinSCP opens the following dialog box:
Fill in the fields as follows:
- host – Enter the IP of your Raspberry PI.
- username – Enter
- password – Enter the password for the user
click save up and create a bookmark for the Raspberry PI. Finally meet registration to log in to your Raspberry PI.
Use the address bar in the right pane to navigate
/ home / pi / downloads, You can download your movies and TV shows from this directory and then delete them after you have them on your computer.