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 allen 886bd2c4c8 adding some additional setup files and updating readme 8 years ago
img one more image for magnet link pushes 9 years ago
.gitignore adding tally goal to TODO 9 years ago
cron.txt adding some additional setup files and updating readme 8 years ago adding some additional setup files and updating readme 8 years ago
requirements.txt adding some additional setup files and updating readme 8 years ago updating script name in satellite script 9 years ago adding some additional setup files and updating readme 8 years ago

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.


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

  • Client setup
  • Server setup

Client Side

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 -r requirements.txt

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

$ vim
# edit line 30, rpcserver variable

Server Side


Transmission-daemon needs to be installed for downloading torrents.

RHEL/CentOS/Fedora (yum)

$ yum install transmission-daemon transmission-cli

Debian/Ubuntu (apt)

$ apt-get install transmission-daemon transmission-cli

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



Open up the Transmission port if the server is not localhost.


$ firewall-cmd --add-port=9091/tcp --permanent


$ iptables -A INPUT -p tcp --dport 9091 -j ACCEPT

thepirate-satellite is needed for Pushbullet notifications. You also need transmissionrpc on the server side so it can clear completed torrents.

$ pip install -r requirements.txt

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

$ vim
# edit line 26, variable api
$ crontab cron.txt


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

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

Then just run it. Supplying no arguments gives you a prompt.


Or supply a search string with the -s flag


You could even just supply the URL


Check your queue


Away from home? If you hooked up thepirate-satellite on a cron job, you can send a magnet link as a push. It will be picked up by the satellite script and added to your queue.



  • Comment script better; for personal reasons. I hate being confused 6 months later
  • Pushbullet read/download new torrents
  • Add config file support
  • Auto updater
  • Daily tally of script info (downloads, bandwidth, uploads, etc)