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)
Owner
CouchPotato
CouchPotato
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

null 3.2k Dec 31, 2022
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
A fun hangman style game to guess random movie names with a short summary about the movie.

hang-movie-man Hangman but for movies ?? This is a fun hangman style game to guess random movie names from the local database and show some summary ab

Ankit Josh 10 Sep 7, 2022
An open source movie recommendation WebApp build by movie buffs and mathematicians that uses cosine similarity on the backend.

Movie Pundit Find your next flick by asking the (almost) all-knowing Movie Pundit Jump to Project Source » View Demo · Report Bug · Request Feature Ta

Kapil Pramod Deshmukh 8 May 28, 2022
An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents

Mylar Note that feature development has stopped as we have moved to Mylar3. EOL for this project is the end of 2020 and will no longer be supported. T

null 979 Dec 13, 2022
CLI utility to search and download torrents from major torrent sites

CLI Torrent Downloader About CLI Torrent Downloader provides convenient and quick way to search torrent magnet links (and to run associated torrent cl

x0r0x 86 Dec 19, 2022
Cthulhu is a simple python CLI application that streams torrents directly from 1337x.

Cthulhu is a simple python CLI application that facilitates the streaming of torrents directly from 1337x. It uses webtorrent to stream video

Raiyan 27 Dec 27, 2022
A Web app to Cross-Seed torrents in Deluge/qBittorrent/Transmission

SeedCross A Web app to Cross-Seed torrents in Deluge/qBittorrent/Transmission based on CrossSeedAutoDL Require Jackett Deluge/qBittorrent/Transmission

ccf2012 76 Dec 19, 2022
Automatic self-diagnosis program (python required)Automatic self-diagnosis program (python required)

auto-self-checker 자동으로 자가진단 해주는 프로그램(python 필요) 중요 이 프로그램이 실행될때에는 절대로 마우스포인터를 움직이거나 키보드를 건드리면 안된다(화면인식, 마우스포인터로 직접 클릭) 사용법 프로그램을 구동할 폴더 내의 cmd창에서 pip

null 1 Dec 30, 2021
IMDbPY is a Python package useful to retrieve and manage the data of the IMDb movie database about movies, people, characters and companies

IMDbPY is a Python package for retrieving and managing the data of the IMDb movie database about movies, people and companies. Revamp notice Starting

Davide Alberani 1.1k Jan 2, 2023
Your own movie streaming service. Easy to install, easy to use. Download, manage and watch your favorite movies conveniently from your browser or phone. Install it on your server, access it anywhere and enjoy.

Vigilio Your own movie streaming service. Easy to install, easy to use. Download, manage and watch your favorite movies conveniently from your browser

Tugcan Olgun 141 Jan 6, 2023
search different Streaming Platforms for movie titles.

Install git clone and cd to directory install Selenium download chromedriver.exe to same directory First Run Use --setup True for the first run. Platf

null 34 Dec 25, 2022
AutoGiphyMovie lets you search giphy for gifs, converts them to videos, attach a soundtrack and stitches it all together into a movie!

AutoGiphyMovie lets you search giphy for gifs, converts them to videos, attach a soundtrack and stitches it all together into a movie!

Satya Mohapatra 18 Nov 13, 2022
Fine-Tune EleutherAI GPT-Neo to Generate Netflix Movie Descriptions in Only 47 Lines of Code Using Hugginface And DeepSpeed

GPT-Neo-2.7B Fine-Tuning Example Using HuggingFace & DeepSpeed Installation cd venv/bin ./pip install -r ../../requirements.txt ./pip install deepspe

Nikita 180 Jan 5, 2023
Library to emulate the Sneakers movie effect

py-sneakers Port to python of the libnms C library To recreate the famous data decryption effect shown in the 1992 film Sneakers. Install pip install

Nicolas Rebagliati 11 Aug 27, 2021
A web scraping pipeline project that retrieves TV and movie data from two sources, then transforms and stores data in a MySQL database.

New to Streaming Scraper An in-progress web scraping project built with Python, R, and SQL. The scraped data are movie and TV show information. The go

Charles Dungy 1 Mar 28, 2022
Jarvis From Basic to Advance - make a voice assistant similar to JARVIS (in iron man movie)

JARVIS (Basic to Advance) This was my attempt to make a voice assistant similar to JARVIS (in iron man movie) Let's be honest, it's not as intelligent

codesempai 17 Dec 25, 2022
NLP-based analysis of poor Chinese movie reviews on Douban

douban_embedding 豆瓣中文影评差评分析 1. NLP NLP(Natural Language Processing)是指自然语言处理,他的目的是让计算机可以听懂人话。 下面是我将2万条豆瓣影评训练之后,随意输入一段新影评交给神经网络,最终AI推断出的结果。 "很好,演技不错

null 3 Apr 15, 2022
An advanced telegram movie information finder bot

An advanced telegram movie information finder bot

Fayas Noushad 22 Aug 23, 2022