Command line ThePirateBay torrent downloader with Pushbullet delivery/notification
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lance 710b19a241 updating script name in satellite script 9 years ago
readme.md updating naming convention throughout script 9 years ago
thepirate-satellite.py updating script name in satellite script 9 years ago
thepirate.py updating naming convention throughout script 9 years ago
transmissionrpc_config.png updating repo because was in the mood to code. it's been so long 9 years ago

readme.md

The Pirate

#####Command line torrent downloader with Pushbullet notifications.

Add torrents to your Transmission download queue from anywhere, either via Pushbullet magnet link push or remote procedure calls direct to the machine.

Default behavior parses HTML pages on ThePirateBay based on a search string provided, then passes the magnet link to a locally running Transmission-Daemon (localhost or same LAN).

Can also add direct HTML pages of the desired torrent with --url, and direct magnet links and torrent files with --file.

This script was written in Python version 2.7. Version 3 compatibility requires rewriting some code, and may be done at a later time. Pull requests welcome.


Requirements

2 Parter. Either do it all on localhost, or configure a second machine for headless management.

  • Client setup
  • Server setup

Client Side (thepirate)

3 external Python libraries needed. Please ensure the following are installed to the system

  • transmissionrpc
  • requests
  • beautifulsoup4

TIP: If pip is installed, just run the following as root:

$ pip install transmissionrpc requests beautifulsoup4

Then edit the thepirate.py file, and change the rpcserver variable to the server's IP/hostname (if not localhost)

Server Side (transmission-daemon and thepirate-satellite.py)

Transmission-daemon needs to be installed for downloading torrents and TCP/9091 needs to be opened on the computer's firewall

RHEL/CentOS/Fedora (yum)

$ yum install transmission-daemon transmission-cli 
$ firewall-cmd --add-port=9091/tcp --permanent

Debian/Ubuntu (apt)

$ apt-get install transmission-daemon transmission-cli
$ iptables -A INPUT -p tcp --dport 9091 -j ACCEPT

pushbullet.py is needed for Pushbullet notifications.

$ pip install pushbullet.py

Put your PushBullet API key in api variable in the script and set a cron job to run thepirate-satellite.py every X minutes.

Make sure the server running Transmission (if not localhost) is accepting traffic on TCP/9091 and RPC is enabled in the Transmission settings.json file. Set your whitelist to your LAN subnet. Read about configuring Transmission here.

img

Usage

Place the script somewhere in your executable path. I like ~/bin

$ mkdir ~/bin
$ echo 'PATH=$PATH:~/bin' >> ~/.bashrc && source ~/.bashrc
$ cp pirate/thepirate.py ~/bin/thepirate

Then just run it

$ thepirate

TODO

  • Refactor code; not a fan of the spaghetti code functions
  • Comment script better; for personal reasons. I hate being confused 6 months later
  • Pushbullet read/download new torrents
  • Add config file support
  • Auto updater