Automatic Movie Downloading via NZBs & Torrents

Overview

CouchPotato

Join the chat at https://gitter.im/CouchPotato/CouchPotatoServer Build Status Coverage Status

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 https://github.com/CouchPotato/CouchPotatoServer.git.
  • You can now start CP via CouchPotatoServer\CouchPotato.py to start
  • Your browser should open up, but if it doesn't go to http://localhost:5050/

OS X:

  • 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 https://github.com/CouchPotato/CouchPotatoServer.git
  • Then do python CouchPotatoServer/CouchPotato.py
  • Your browser should open up, but if it doesn't go to http://localhost:5050/

Linux:

  • (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.
  • Install PyOpenSSL with pip install --upgrade pyopenssl
  • Run git clone https://github.com/CouchPotato/CouchPotatoServer.git
  • Then do python CouchPotatoServer/CouchPotato.py to start
  • (Ubuntu / Debian with upstart) To run on boot copy the init script sudo cp CouchPotatoServer/init/ubuntu /etc/init.d/couchpotato
  • (Ubuntu / Debian with upstart) Copy the default paths file sudo cp CouchPotatoServer/init/ubuntu.default /etc/default/couchpotato
  • (Ubuntu / Debian with upstart) Change the paths inside the default file sudo nano /etc/default/couchpotato
  • (Ubuntu / Debian with upstart) Make it executable sudo chmod +x /etc/init.d/couchpotato
  • (Ubuntu / Debian with upstart) Add it to defaults sudo update-rc.d couchpotato defaults
  • (Linux with systemd) To run on boot copy the systemd config sudo cp CouchPotatoServer/init/couchpotato.service /etc/systemd/system/couchpotato.service
  • (Linux with systemd) Update the systemd config file with your user and path to CouchPotato.py
  • (Linux with systemd) Enable it at boot with sudo systemctl enable couchpotato
  • Open your browser and go to http://localhost:5050/

Docker:

FreeBSD:

  • 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 https://github.com/CouchPotato/CouchPotatoServer.git
  • 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/

Development

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 errors are pushed to console instead of the log.

Comments
  • Fixing Torrentleech with new interface based on JS and json

    Fixing Torrentleech with new interface based on JS and json

    Description of what this fixes:

    Fix TorrentLeech provider : New interface is based on JS and json. Rebuild the _searchOnTitle function to use new URL format and json result.

    opened by pheuzoune 75
  • Fix torrenting issues with one file torrents

    Fix torrenting issues with one file torrents

    All torrent clients do not give a torrent a dedicated subfolder in case the torrent only contains one file. This is giving trouble to several users, see #2252

    These updates include the files in the torrents in the info to the renamer (for Deluge, Transmission, rTorrent and uTorrent).

    This PR is not well tested and not finished yet.

    Current issues:

    • directory tagging needs subfolders, so this will go wrong
    2 - Pull request 
    opened by mano3m 68
  • Seeding support

    Seeding support

    Full support for seeding torrents and processing around it.

    Note: I had limited time for testing. I did test it with a few torrents for both uTorrent and Transmission, but as this is a significant change we might want a few people to test it?

    Design intent:

    • Option to turn seeding support on or off
    • After torrent downloading is complete the seeding phase starts, seeding parameters can be set per torrent provide (0 disables them)
    • When the seeding phase starts the checkSnatched function renames all files if (sym)linking/copying is used. The movie is set to done (!), the release to seeding status.
    • Note that Direct symlink functionality is removed as the original file needs to end up in the movies store and not the downloader store (if the downloader cleans up his files, the original is deleted and the symlinks are useless)
    • checkSnatched waits until downloader sets the download to completed (met the seeding parameters)
    • When completed, checkSnatched intiates the renamer if move is used, or if linking is used asks the downloader to remove the torrent and clean-up it's files and sets the release to downloaded
    • Updated some of the .ignore file behavior to allow the downloader to remove its files

    Known items/issues:

    • only implemented for uTorrent and Transmission
    • text in downloader settings is too long and messes up the layout...

    To do:

    • implement for other torrent downloaders
    • complete download removal for NZBs (remove from history in sabNZBd)
    • failed download management for torrents (no seeders, takes too long, etc.)

    Updates:

    • Added transmission support
    • Simplified uTorrent
    • Added checkSnatched to renamer to make sure the poller is always first
    • Updated default values and removed advanced option tag for providers
    • Updated the tagger to allow removing of ignore tags and tagging when the group is not known
    • Added tagging of downloading torrents
    opened by mano3m 38
  • Added putioDownloader

    Added putioDownloader

    I have added one file couchpotato/core/downloaders

    This file is a downloader for put.io. I have tested and it does work, though it could use some work. I read the docs on how to add stuff to couchpotato, but it seems to be related to people who want to fix bugs, in this case I'm not fixing a bug I'm adding a new feature...

    Let me know if you need more information.

    It does seem that this is a feature requested in #3079

    opened by dumaresq 22
  • File Action : Move and Sym Link

    File Action : Move and Sym Link

    Hi there,

    I tried to post this as a feature request on the forum, but unfortunately it kept complaining about some thread prefix and wouldn't let me post, so I'm just sending this here.

    The problem is that some NAS do not support hard linking, in particular unRaid. As a result, the only option to rename and continue seeding are symbolic links. However, I think most people would prefer to have the symbolic link in the original directory, and the file itself get moved to their Movies directory. Meaning Seeding -> Movies, instead of the current Movies -> Seeding.

    I added a few lines to create a new File Action, to move the file, and then create a symbolic link in its original location. This seems safer, as it allows people to remove the links when done seeding without breaking their moving collection.

    Perhaps there is a better name for this option, or a work around I didn't think of.

    opened by nervling 22
  • Added torrent support for Synology downloader.

    Added torrent support for Synology downloader.

    Added support for torrents to Synology downloader.

    It uses remote torrent URL so the URL should point directly to torrent without the need for authentication. I also tried to push the torrent file downloaded by CouchPotato directly to Synology, but the Synology API returns errors and documentation does not provide any hints on possible error cause. File upload is tricky. :-(

    opened by saxicek 20
  • New global funcs for torrent providers, actual use of the cache + small fixes

    New global funcs for torrent providers, actual use of the cache + small fixes

    • added global login func for all torrent providers (all private trackers need cookies)
    • added global download func (same, downloading also requires cookies)

    These 2 functions were necessary to allow the user to download other found releases at a later time. In the current version this doesn't work because it goes to the url directly, without any cookies which causes it to download the login page instead of a torrent.

    All 3 providers now properly use the cache and have much better error handling.

    opened by nls44 20
  • deluge v2 support

    deluge v2 support

    Description of what this fixes:

    CP can now communicate with the Deluge V2 daemon

    This was stolen from: https://github.com/clinton-hall/nzbToMedia/pull/1683/commits/ddf18e25b6e55f5367f30efbd9568f10b8c208c0#diff-0e2a32c23d0d0c6418b9c86463ebfe09

    Related issues:

    ...

    opened by MrAlfabet 18
  • Torrentz URL updated

    Torrentz URL updated

    Description of what this fixes:

    ... original torrentz.eu no longer functions. Updated to torrentz2.eu, which doesn't seem to be an official site, but it is still a functioning mirror of the great meta search engine

    Related issues:

    ...

    opened by seanboothm 15
  • Fix a problem where a folder couldn't be deleted because it wasn't empty

    Fix a problem where a folder couldn't be deleted because it wasn't empty

    I was frequently running into the following problem after a movie has been renamed:

    [tato.core.plugins.renamer] Couldn't remove empty directory [...]
    

    The original folder contained files and sub-folders. Since os.rmdir() can't delete non-empty directories, shutil.rmtree() should be used instead.

    opened by pstadler 15
  • Feature: show if movie available on netflix + options to disable searching and/or downloading movies currently available on netflix

    Feature: show if movie available on netflix + options to disable searching and/or downloading movies currently available on netflix

    Description of what this fixes:

    This is a follow-up to a previous pull request I subsequently canceled. In addition to displaying ETA data as specified in that pull request this also displays netflix information. Options were also added to the searcher so that the user can specify how that netflix information effects the searching (and subsequently downloading)

    The default is: netflix information has no impact (it is only displayed)

    Disable Auto download of netflix titles - (Search Only) - titles that are known to be currently available in netflix are searched but will not be automatically downloaded -- a release will need to be manually downloaded via the dashboard

    Disable searching of netflix titles - titles that are known to be currently available in netflix will simply be skipped during searches - downloads will not be possible with this option enabled.

    -- there was an issue in that netflix information was not being updated when doing a global "search all wanted" -- this could lead to CP believing titles are in netflix when they are not, and subsequently skip searching/downloading them. I added an option "Always refresh before search" to ensure that when searches are performed ETA/netflix information is always up to date.


    Though a configuration option has not been implemented to allow the user to choose their netflix region. Code has been implemented to handle both Canada and US --> and others are possible in a similar fashion. the codes for each country need to be looked up on allflicks -- and the corresponding url must be updated to reflect the intended country. For now the code defaults to Canada, but a develop could switch to us simply by changing an assignment statement. A configuration option could be implemented to enable the user to specify the netflix region they want - but I couldn't fgure out how to get an option loaded from the config file in that part of the code.

    By default with all the changes in this pull request, it just displays more information than before and the behavior should remain unchanged. The code exists to modify the behavior based on the new netflix information, however, it must be activated by the user via the configuration option.


    In a small minority of cases (less than 5%) netflix has different title's than IMDB. If this is the case CP will not identify a title as being available in netflix.

    ---> A good example of this is "Boychoir" IMDB calls the movie "The Choir" ---> Another example is: The Death of Charlie Countryman

    I personally didnt care that a few titles would not be marked as being on netflix when in fact they were. I never experienced a case where CP thought a movie was on netflix when it wasn't (I did during testing in a few cases, but I easily modified the code to make CP's criteria more strict). This could be improved perhaps with some kind of comma separated list in the configuration menu - but I dont think its necessary.

    Related issues:

    Please refer to the previous (but now cancelled) pull request here: https://github.com/CouchPotato/CouchPotatoServer/pull/7122#issuecomment-259907055

    --I think these changes would benefit from some UI improvements/additions - but only to make things prettier/better - they are fine the way they are. for example, it would be nice to have a tick box somewhere to hide all titles known to be available in netflix from view. Also a tickbox to enable/disable displaying netflix information or ETA information.

    --Also, the feature would benefit by having a configuration option for the user to specify their netflix region. The code is written to handle this - but I just couldnt figure out how to get a configuration option loaded into the part of the code where it matters.

    If someone wanted to help me implement the two points above - it would be greatly appreciated. Also I was unsure of how to make use of the existing "plugin" framework. Perhaps all this eta/netflix feature can be refactored to make use of that framework but I couldnt seem to figure out how to do it in that part of the code. Feedback and assistance is appreciated. The implemented code is fully functional - but it could benefit from improvement.

    opened by ghost 13
Releases(build/3.0.1)
Scan, index, and archive all of your paper documents

[ en | de | el ] Important news about the future of this project It's been more than 5 years since I started this project on a whim as an effort to tr

Paperless 7.8k Jan 06, 2023
Conference planning tool: CfP, scheduling, speaker management

pretalx is a conference planning tool focused on providing the best experience for organisers, speakers, reviewers, and attendees alike. It handles th

492 Dec 28, 2022
Collect your thoughts and notes without leaving the command line.

jrnl To get help, submit an issue on Github. jrnl is a simple journal application for your command line. Journals are stored as human readable plain t

Manuel Ebert 31 Dec 01, 2022
This is your launchpad that comes with a variety of applications waiting to run on your kubernetes cluster with a single click

This is your launchpad that comes with a variety of applications waiting to run on your kubernetes cluster with a single click.

M. Rehan 2 Jun 26, 2022
Main repository of the zim desktop wiki project

Zim - A Desktop Wiki Editor Zim is a graphical text editor used to maintain a collection of wiki pages. Each page can contain links to other pages, si

Zim Desktop Wiki 1.6k Dec 30, 2022
Automatic Movie Downloading via NZBs & Torrents

CouchPotato 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 t

CouchPotato 3.9k Jan 04, 2023
Wikidata scholarly profiles

Scholia is a python package and webapp for interaction with scholarly information in Wikidata. Webapp As a webapp, it currently runs from Wikimedia To

Finn Årup Nielsen 181 Jan 03, 2023
:bookmark: Browser-independent bookmark manager

buku buku in action! Introduction buku is a powerful bookmark manager written in Python3 and SQLite3. When I started writing it, I couldn't find a fle

Mischievous Meerkat 5.4k Jan 02, 2023
115原码播放服务Kodi插件

115proxy-for-kodi 115原码播放服务Kodi插件,需要kodi 18以上版本,需配合 https://github.com/feelfar/115-for-kodi 使用 安装 由于release包尚未释出,可直接下载源代码zip包安装。 20210202:由于正调试kodi19兼

92 Jan 01, 2023
The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim through format.

The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim

Pinry 2.7k Jan 08, 2023
A simple shared budget manager web application

I hate money I hate money is a web application made to ease shared budget management. It keeps track of who bought what, when, and for whom; and helps

The spiral project. 829 Dec 31, 2022
Plugin-based, unopinionated membership administration software

byro is a membership administration tool for small and medium sized clubs/NGOs/associations of all kinds, with a focus on the DACH region. While it is

123 Nov 16, 2022
A collection of self-contained and well-documented issues for newcomers to start contributing with

fedora-easyfix A collection of self-contained and well-documented issues for newcomers to start contributing with How to setup the local development e

Akashdeep Dhar 8 Oct 16, 2021
RedNotebook is a cross-platform journal

RedNotebook RedNotebook is a modern desktop journal. It lets you format, tag and search your entries. You can also add pictures, links and customizabl

Jendrik Seipp 417 Dec 28, 2022
Automatic music downloader for SABnzbd

Headphones Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, µTorrent, De

3.2k Dec 31, 2022
cherrytree

CherryTree A hierarchical note taking application, featuring rich text and syntax highlighting, storing data in a single XML or SQLite file. The proje

Giuseppe Penone 2.7k Jan 08, 2023
:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

About Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. This softw

Jan B 8.2k Jan 02, 2023
Small and highly customizable twin-panel file manager for Linux with support for plugins.

Note: Prefered repository hosting is GitLab. If you don't have an account there and don't wish to make one interacting with one on GitHub is fine. Sun

Mladen Mijatov 407 Dec 29, 2022
🦉Data Version Control | Git for Data & Models

Website • Docs • Blog • Twitter • Chat (Community & Support) • Tutorial • Mailing List Data Version Control or DVC is an open-source tool for data sci

Iterative 10.9k Jan 05, 2023
:mag: Ambar: Document Search Engine

🔍 Ambar: Document Search Engine Ambar is an open-source document search engine with automated crawling, OCR, tagging and instant full-text search. Am

RD17 1.9k Jan 09, 2023