mathr / blog / #

buildtorrent-0.8 released

buildtorrent is a simple command-line .torrent file creation tool.

buildtorrent 0.8 (2010-01-31) comfy chair

Changes since buildtorrent 0.7 (2008-04-13):

Fixed bugs:

  • announce-list segfault on 64bit

New features:

  • webseed url-list (-w)
  • piece length as a power of 2 (-L)
  • torrent name (-n)
  • external file list (-f)

New homepage:

New repository:

The transition from 0.7 to 0.8 involved some extensive code reorganisation to make it possible to add the new features: as with any such extensive change, this may have introduced new bugs. If you find a bug, please report it.

Download the release tarball: buildtorrent-0.8.tar.gz

Checksums:

3bba072cc89d2b8b4198c85734e39302 *buildtorrent-0.8.tar.gz
32694478ddef91453dc85ab7a2e659132adadeb6 *buildtorrent-0.8.tar.gz

Manual page:

Synopsis

buildtorrent [OPTIONS] -a announceurl input output

buildtorrent [OPTIONS] -a announceurl -f filelist -n name output

Description

buildtorrent is a torrent file creation program. Given an announce url and an input file or directory, buildtorrent generates an output .torrent file that can be used by torrent clients.

Options

-a announce--announce=url
Announce URL (required).
-f filelist--filelist=filelist

A text file (or - for standard input) containing a list of files to add to the output torrent file, together with the path to use inside the torrent. One file is given per line, use / as path separator for the torrent path, use | to separate the filesystem path from the torrent path. Backslash \ can be used to escape newlines and | characters inside names. For example:

/data/files/linux.iso|bin/linux.iso
/data/files/linux.txt|doc/linux.txt

Using this option requires that the --name option be used.

-n name--name=name
Specify the name for the torrent. Usage of this option is required when the --filelist option is used, in which case it specifies the name of the torrent directory. Usage without a file list overrides the name of the directory or file given on the command line.
-A announces--announcelist=announces

Additional announce URL list. Use , to separate outer level lists, and | to separate inner level items; for example:

a,b1|b2,c
-w webseeds--webseeds=webseeds

Additional WebSeed URL list. Use , to separate items; for example:

a,b,c
-l length--piecelength=length
Piece length in bytes (default 262144).
-L size--piecesize=size
Use 2size as piece length in bytes (default 18) (overrides -l).
-c comment--comment=comment
User comment (omitted by default).
-p private--private=private
Private flag (either 0 or 1).
-D, --nodate
Omit the creation date field.
-C, --nocreator
Omit the created by field.
-m, --md5sum
Add an md5sum field for each file.
-s, --show
Show generated torrent structure.
-S, --showall
Show generated torrent structure, including piece data.
-q, --quiet
Quiet operation with reduced output.
-V, --version
Show the version string.
-h, --help
Show a help screen with brief usage information.

See also

Feature comparison matrix:

buildtorrent-0.8mktorrent-1.0
announce urlYY
announce listYY
webseed listYY
piece lengthany2N
nameYY
output fileYY, implicit
commentYY
privateN/A,Y,NN/A,Y
no dateYY
no creatorYN
md5sumYN
file listYN
threadsNY

buildtorrent is more flexible, especially with the external file list feature, but mktorrent's threaded hashing wins if you want to exploit multi-core CPUs.