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)
ProPublica's collaborative tip-gathering framework. Import and manage CSV, Google Sheets and Screendoor data with ease.

Collaborate This is a web application for managing and building stories based on tips solicited from the public. This project is meant to be easy to s

ProPublica 86 Oct 18, 2022
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
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 :baby: buddy to help caregivers track sleep, feedings, diaper changes, and tummy time to learn about and predict baby's needs without (as much) guess work.

Baby Buddy A buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs wit

Baby Buddy 1.5k Jan 02, 2023
🦉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
🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...

ArchiveBox Open-source self-hosted web archiving. ▶️ Quickstart | Demo | Github | Documentation | Info & Motivation | Community | Roadmap "Your own pe

ArchiveBox 14.8k Jan 05, 2023
A time tracking application

GTimeLog GTimeLog is a simple app for keeping track of time. Contents Installing Documentation Resources Credits Installing GTimeLog is packaged for D

GTimeLog developers 224 Nov 28, 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
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
Find duplicate files

dupeGuru dupeGuru is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in a system. It is written mostly in Python 3 and has th

Andrew Senetar 3.3k Jan 04, 2023
Open source platform for the machine learning lifecycle

MLflow: A Machine Learning Lifecycle Platform MLflow is a platform to streamline machine learning development, including tracking experiments, packagi

MLflow 13.3k Jan 04, 2023
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
Indico - A feature-rich event management system, made @ CERN, the place where the Web was born.

Indico Indico is: 🗓 a general-purpose event management tool; 🌍 fully web-based; 🧩 feature-rich but also extensible through the use of plugins; ⚖️ O

Indico 1.4k Jan 09, 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
Invenio digital library framework

Invenio Framework v3 Open Source framework for large-scale digital repositories. Invenio Framework is like a Swiss Army knife of battle-tested, safe a

Invenio digital repository framework 562 Jan 07, 2023
Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.

Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Exclusiv

pyMedusa 1.5k Dec 30, 2022
Source code for Gramps Genealogical program

The Gramps Project ( https://gramps-project.org ) We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete f

Gramps Project 1.6k Jan 08, 2023
SENAITE Meta Package

SENAITE LIMS Meta Installation Package What does SENAITE mean? SENAITE is a beautiful trigonal, oil-green to greenish black crystal, with almost the h

SENAITE 135 Dec 14, 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
Fava - web interface for Beancount

Fava is a web interface for the double-entry bookkeeping software Beancount with a focus on features and usability. Check out the online demo and lear

1.5k Dec 30, 2022