Watcher is an automated movie NZB & Torrent searcher and snatcher. You can add a list of wanted movies and Watcher will automatically send the NZB or Torrent to your download client. Watcher also has basic post-processing capabilities such as renaming and moving.
Watcher is a work in progress and plans to add more features in the future, but we will always prioritize speed and stability over features.
Note that as the owner of the original project seems to be inactive, this repository has been established in an attempt to move the project forward, taking in both pending PRs from the original project and PRs applied to other forks.
Watcher may change frequently, so we strongly suggest that you come by and say hello on Freenode (#watcher3) or via Gitter. We also have Discord
Note that Python 3 is required, although latest builds (3.8.x) are not fully functional yet.
Refer to the wiki for more information about post-processing, start scripts, and other features. https://github.com/barbequesauce/Watcher3/wiki
Added ARM 32 and 64 bit docker images. Added docker timezone support.
We have several options to choose from:
If you are not using Docker, Watcher requires Python 3. It is also recommended that you install GIT. This will allow you to update much more easily.
Obtaining the files:
git clone https://github.com/barbequesauce/Watcher3.git
Start Watcher using:
python3 /watcher/watcher.py
Open a browser and navigate to localhost:9090
If you do not wish to use Git, follow these steps.
- Open your browser and go to https://github.com/barbequesauce/Watcher3
- Click on the green Clone or download button and click Download ZIP
- Once done downloading, extract the ZIP to the location in which you want Watcher installed
- Open a terminal and cd to the Watcher directory.
- Start Watcher using:
python3 watcher/watcher.py
- Open a browser and navigate to localhost:9090
You can add the following arguments to Watcher when running the Python script. Always use the absolute path when supplying a directory or file argument.
Run the server as a daemon (*nix only)
$ watcher.py --daemon
Run the server as a background process (Windows only)
$ python watcher.py --daemon
Change address to bind to.
$ watcher.py --address 0.0.0.0
Change port to host on.
$ watcher.py --port 9090
Open browser on launch.
$ watcher.py --browser
Change path to config file. If not present, one will be created.
watcher.py --conf /path/to/config.cfg
Specify custom posters dir (where watcher saves posters to).
watcher.py --posters /path/to/posters/dir
Change path of log directory.
$ watcher.py --log /path/to/logs/
Change path to database. If not present, a new, empty database will be created.
$ watcher.py --db /path/to/database.sqlite
Change path to plugins directory.
$ watcher.py --plugins /path/to/plugins/
Create PID file.
$ watcher.py --pid /path/to/pid/file.pid
Watcher includes a simple script for backing up and restoring your database and config.
The backup function will create a new watcher.zip in the Watcher folder.
To restore, place watcher.zip in the Watcher folder of your target installation and run the restore command. Usage
Back up Watcher.
$ backup.py -b
Restore Watcher.
$ backup.py -r
Our docker uses an Alpine 3.10 base, with a few extra things like nano and vim for on the fly edits without stopping the container. By default, the image is built for amd64 machines.
- Pull the container:
docker pull barbequesauce/watcher3
- Example run command:
docker run -d \
--name=watcher3 \
-v /path/to/config/:/config \
-v /path/to/downloads/:/downloads \
-v /path/to/movies/:/movies \
-e UMASK_SET=022 \
-e APP_UID=1000 -e APP_GID=1000 \
-p 9090:9090 \
barbequesauce/watcher3
If you wish to exec into the container to have a look around, use:
docker exec -it watcher3 /bin/bash
For 32-bit ARM (such as the Raspberry Pi) use: barbequesauce/watcher3:armhf
For 64-bit ARM use: barbequesauce/watcher3:arm64
So for example:
- Pull the container:
docker pull barbequesauce/watcher3:armhf
- Example run command:
docker run -d \
--name=watcher3 \
-v /path/to/config/:/config \
-v /path/to/downloads/:/downloads \
-v /path/to/movies/:/movies \
-e UMASK_SET=022 \
-e APP_UID=1000 -e APP_GID=1000 \
-p 9090:9090 \
barbequesauce/watcher3:armhf
By default, the Alpine docker images use UTC. You can set the timezone using the TZ
env variable and your TZ code from the database here.
For example:
docker run -d \
--name=watcher3 \
-v /path/to/config/:/config \
-v /path/to/downloads/:/downloads \
-v /path/to/movies/:/movies \
-e UMASK_SET=022 \
-e APP_UID=1000 -e APP_GID=1000 \
-e TZ="Europe/London" \
-p 9090:9090 \
barbequesauce/watcher3:armhf