Automatic Movie Downloading via NZBs & Torrents
Clone or download
Pull request Compare This branch is 5 commits ahead, 527 commits behind CouchPotato:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Join the chat at

CouchPotato (CP) is an automatic NZB and torrent downloader. You can keep a "movies I want"-list and it will search for NZBs/torrents of these movies every X hours. Once a movie is found, it will send it to SABnzbd or download the torrent to a specified directory.

Running from Source

CouchPotatoServer can be run from source. This will use git as updater, so make sure that is installed.

Windows, see the CP forum for more details:

  • Install Python 2.7
  • Then install PyWin32 2.7 and GIT
  • If you come and ask on the forums 'why directory selection no work?', I will kill a kitten, also this is because you need PyWin32
  • Open up Git Bash (or CMD) and go to the folder you want to install CP. Something like Program Files.
  • Run git clone
  • You can now start CP via CouchPotatoServer\ to start
  • Your browser should open up, but if it doesn't go to http://localhost:5050/


  • If you're on Leopard (10.5) install Python 2.6+: Python 2.6.5
  • Install GIT
  • Install LXML for better/faster website scraping
  • Open up Terminal
  • Go to your App folder cd /Applications
  • Run git clone
  • Then do python CouchPotatoServer/
  • Your browser should open up, but if it doesn't go to http://localhost:5050/


  • (Ubuntu / Debian) Install GIT with apt-get install git-core
  • (Fedora / CentOS) Install GIT with yum install git
  • Install LXML for better/faster website scraping
  • 'cd' to the folder of your choosing.
  • Run git clone
  • Then do python CouchPotatoServer/ to start
  • (Ubuntu / Debian) To run on boot copy the init script sudo cp CouchPotatoServer/init/ubuntu /etc/init.d/couchpotato
  • (Ubuntu / Debian) Copy the default paths file sudo cp CouchPotatoServer/init/ubuntu.default /etc/default/couchpotato
  • (Ubuntu / Debian) Change the paths inside the default file sudo nano /etc/default/couchpotato
  • (Ubuntu / Debian) Make it executable sudo chmod +x /etc/init.d/couchpotato
  • (Ubuntu / Debian) Add it to defaults sudo update-rc.d couchpotato defaults
  • (systemd) To run on boot copy the systemd config sudo cp CouchPotatoServer/init/couchpotato.fedora.service /etc/systemd/system/couchpotato.service
  • (systemd) Update the systemd config file with your user and path to
  • (systemd) Enable it at boot with sudo systemctl enable couchpotato
  • Open your browser and go to http://localhost:5050/




  • Become root with su
  • Update your repo catalog pkg update
  • Install required tools pkg install python py27-sqlite3 fpc-libcurl docbook-xml git-lite
  • For default install location and running as root cd /usr/local
  • If running as root, expects python here ln -s /usr/local/bin/python /usr/bin/python
  • Run git clone
  • Copy the startup script cp CouchPotatoServer/init/freebsd /usr/local/etc/rc.d/couchpotato
  • Make startup script executable chmod 555 /usr/local/etc/rc.d/couchpotato
  • Add startup to boot echo 'couchpotato_enable="YES"' >> /etc/rc.conf
  • Read the options at the top of more /usr/local/etc/rc.d/couchpotato
  • If not default install, specify options with startup flags in ee /etc/rc.conf
  • Finally, service couchpotato start
  • Open your browser and go to: http://server:5050/


Be sure you're running the latest version of Python 2.7.

If you're going to add styling or doing some javascript work you'll need a few tools that build and compress scss -> css and combine the javascript files. Node/NPM, Grunt, Compass

After you've got these tools you can install the packages using npm install. Once this process has finished you can start CP using the command grunt. This will start all the needed tools and watches any files for changes. You can now change css and javascript and it wil reload the page when needed.

By default it will combine files used in the core folder. If you're adding a new .scss or .js file, you might need to add it and then restart the grunt process for it to combine it properly.

Don't forget to enable development inside the CP settings. This disables some functions and also makes sure javascript rrors are pushed to console instead of the log.