25

I'm interested in a single command that would download the contents of a torrent (and perhaps participate as a seed following the download, until I stop it).

Usually, there is a torrent-client daemon which should be started separately beforehand, and a client to control (like transmission-remote).

But I'm looking for the simplicity of wget or curl: give one command, get the result after a while.

3
  • 6
    Something like aria2 e.g. aria2c http://somesite/somefile.torrent ? May 5, 2015 at 12:10
  • 1
    You could use deluge-torrent.org. That command line beast has an amazing CLI UI, GUI and even a web-UI for you to control.
    – shivams
    May 6, 2015 at 9:21
  • 1
    btdownloadcurses
    – ivanivan
    Oct 29, 2017 at 15:04

8 Answers 8

16

Check out transmission-cli. The usage is as simple as running transmission-cli <torrent-file>, but you can obviously tune it to your needs with several options.

Just a side comment:

Actually you could use many other options, apart from transmission-cli and there will probably appear many other suggestions here (like deluge by Benjamin B. in the comments). I've read somewhere that any well-behaved program should be written so that it can be controlled via command line and the GUI is only an addition to that -- an interface to make the program easier or more convenient to use.

5
  • I agree with your side comment. It's just a matter of finding a decent BitTorrent client and launching it's CLI (it should have one). Personally I use Deluge, but I see now point adding it as an answer. @Erathiel, you can include it if you wish. May 5, 2015 at 13:44
  • @BenjaminB. I've included your suggestion, though my guess is we'd end up with a very long list if we wanted to list every torrent client that can be controlled via command line :)
    – Erathiel
    May 5, 2015 at 15:18
  • 1
    Interesting comment on how programs should be command line controllable. That matches fairly closely the classical unix philosophies of doing one thing simply and well per program, though seems to be becoming less popular these days for better or worse.
    – Vality
    May 5, 2015 at 16:48
  • Does transmission-cli keep seeding indefinitely, by default? And is it possible to supply some seeding ratio - after which it exits? Jul 13, 2018 at 15:16
  • @maxschlepzig As per this man page for transmission-cli, you can use the -f, --finish script option to set a script that will be run when the download finishes.
    – Erathiel
    Nov 18, 2021 at 14:23
13

aria2

aria2c <torrentfile or magnet link>
0
9

I gave a try to lftp:

lftp -c "torrent $1"

where $1 is the .torrent file.

Unlike

lftp -e "torrent $1"

lftp -c must exit when the command is done (lftp -e leaves you in its command pronpt).

It also does seeding. (I don't know yet how seeding interacts with -c.)

Seeding after the command finished

This is actually done by lftp -c:

first, I started it. And the command finished after a while:

Name: lib.ru_2007-03-05.7z
dn:1.7G up:0 complete, ratio:0.000000
Seeding in background...
[15137] Moving to background to complete transfers...
$ 

Checking that it is still active (seeding) in the background:

$ ps x | fgrep lftp
 15137 ?        Ss     0:37 lftp -c torrent lib.ru_2007-03-05.7z.4fb7e98d43804eca.torrent
 67517 pts/3    S+     0:00 grep -F --color=auto lftp
$ 
8

You can also try rtorrent and may be ctorrent which man page starts with:

ctorrent - Download bittorrent files from command line

3

I just wrote tget - wget for torrents.

$ tget "magnet-link"

$ tget /path/to/ubuntu.torrent

To install, do npm install -g t-get or yarn global add t-get

More details - http://github.com/jeffjose/tget

1
  • Ended up using this because I didn't have root access. An overly straightforward & simplified tool but does the job fine.
    – iSWORD
    Apr 4, 2020 at 19:29
3

You can use torrent-dl

It was originally based off of tget, a tool mentioned in this answer, but the project has since significantly diverted from it. tget does not offer any configurability (e.g. searching popular torrent sites, customizing what port to use, downloading multiple torrents, etc) so torrent-dl adds all of these features.

Example usage (with some of the extra options):

torrent-dl -i magnet:?xt=urn:btih:b26c81363ac1a236765385a702aec107a49581b5 --port 43022 --connections 250 --uploadslots 25

You can see all the options it offers on it's Github page linked at the top. It is a nodejs application, however you can download standalone binaries (MacOS and Windows binaries are also available) from the releases page on it's Github, meaning no nodejs or npm installation is required.

It can also be installed via npm, however:

npm install -g torrent-dl

I am the author of this project.

2

My recommendation without installing anything (if you have node)

npx -p webtorrent-cli webtorrent download "magent:..."

It's will temporary download the webtorrent-cli pakcage, then execute the webtorretn commmand to download your torrent.

1

I know this post is old but I just stumbled on this today. I wrote something like this sometime back for kickasstorrents

kscli

Try this and let me know if

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .