TORRENT(1)                                             TORRENT(1)

     NAME
          torrent - bittorrent client

     SYNOPSIS
          ip/torrent [ -d ] [ -v ] [ -p ] [ -m mtpt ] [ -t tracker-url
          ] [ -w webseed-url ] [ -s ] [ -c ] [ -i peer-id ] [ -A
          user-agent ] [ file ]

     DESCRIPTION
          BitTorrent is a protocol for efficient file distribution
          over the internet. Files are split into small pieces that
          are then downloaded by clients in random order.  As soon as
          a client completes a piece, it makes the piece available for
          others to download.

          To find other clients (peers), a tracker-server is con-
          tacted.

          Before files can be transmitted, a torrent-file needs to be
          created describing the pieces of the files and other meta-
          data like network addresses of the trackers.

          This is done with the -c option. If provided, torrent reads
          the file given at the final file argument (or standard-input
          when omitted) and writes a torrent file to standard-output
          and exits.  A tracker-url should be given with the -t option
          in that case. A list of trackers can be obtained on the web,
          see the examples below.

          If the files in the torrent are also available from a url, a
          webseed-url can be passed with the -w option. If webseed-url
          ends with a slash, the filename, from the torrent, concate-
          nated with the url forms the target url.

          Without the -c option, torrent downloads the files that are
          described in the torrent-file given by the file argument to
          the current working directory. If no file is given, the tor-
          rent is read from standard-input.

          Normally, the program exits immediately after all pieces
          have been completed.  The -s option causes it to keep run-
          ning and serve the remaining clients (also known as seed-
          ing).

          Trackers use a subset of the HTTP protocol, so an alterna-
          tive webfs(4) mountpoint can be given with the -m option
          (defaults to /mnt/web).

          The -v option causes torrent to list the files in the
          torrent-file before downloading.

     TORRENT(1)                                             TORRENT(1)

          The -d option produces verbose debug output to standard-
          error.

          To monitor the download progress, the -p option can be given
          to cause the completed and total number of pieces written as
          a line of text to standard-output in one second intervals.

          The -i option allows you to set the 20-byte peer-id that is
          sent to trackers and peers. If less than 20 bytes, the
          peer-id will be padded on the right with random ASCII num-
          bers. The -A option allows setting the http user-agent
          string that is used to contact the tracker. These options
          are useful to fool trackers that filter clients based on the
          peer-id or user-agent

     EXAMPLES
          Create new torrent file
          ip/torrent -t http://exodus.desync.com/announce \
               -c 9atom.iso >9atom.torrent

          Download the latest iso file of the distribution
          cd /tmp
          hget http://r-36.net/9front/9front.iso.bz2.torrent | \
               ip/torrent -pv | \
               aux/statusbar 'download...'

          Get list of public alive trackers to choose from
          hget http://www.trackon.org/api/live

     SOURCE
          /sys/src/cmd/ip/torrent.c

     SEE ALSO
          hget(1), webfs(4)

     HISTORY
          Torrent first appeared in 9front (October, 2011).