IMDL-TORRENT-CREATE(1)

NAME
imdl torrent create - Create a .torrent file.

SYNOPSIS:

    imdl torrent create [FLAGS] [OPTIONS] <INPUT>

FLAGS:

-n, --dry-run
    Skip writing `.torrent` file to disk.

-F, --follow-symlinks
    Follow symlinks in torrent input. By default, symlinks to files and directories are not included in torrent contents.

-f, --force
    Overwrite the destination `.torrent` file, if it exists.

--help
    Print help message.

--ignore
    Skip files listed in `.gitignore`, `.ignore`, `.git/info/exclude`, and `git config --get core.excludesFile`.

-h, --include-hidden
    Include hidden files that would otherwise be skipped, such as files that start with a `.`, and files hidden by file attributes on macOS and Windows.

-j, --include-junk
    Include junk files that would otherwise be skipped.

-M, --md5
    Include MD5 checksum of each file in the torrent. N.B. MD5 is cryptographically broken and only suitable for checking for accidental corruption.

--no-created-by
    Do not populate `created by` key of generated torrent with imdl version information.

--no-creation-date
    Do not populate `creation date` key of generated torrent with current time.

-O, --open
    Open `.torrent` file after creation. Uses `xdg-open`, `gnome-open`, or `kde-open` on Linux; `open` on macOS; and `cmd /C start` on Windows

--link
    Print created torrent `magnet:` URL to standard output

-P, --private
    Set the `private` flag. Torrent clients that understand the flag and participate in the swarm of a torrent with the flag set will only announce themselves to the announce URLs included in the torrent, and will not use other peer discovery mechanisms, such as the DHT or local peer discovery. See BEP 27: Private Torrents for more information.

-S, --show
    Display information about created torrent file.

-V, --version
    Print version number.

OPTIONS:

-A, --allow <LINT>...
    Allow `LINT`. Lints check for conditions which, although permitted, are not usually desirable. For example, piece length can be any non-zero value, but probably shouldn't be below 16 KiB. The lint `small-piece-size` checks for this, and `--allow small-piece-size` can be used to disable this check. [possible values: private-trackerless, small-piece-length, uneven-piece-length]

-a, --announce <URL>
    Use `URL` as the primary tracker announce URL. To supply multiple announce URLs, also use `--announce-tier`.

-t, --announce-tier <URL-LIST>...
    Use `URL-LIST` as a tracker announce tier. Each instance adds a new tier. To add multiple trackers to a given tier, separate their announce URLs with commas:

`--announce-tier
    udp://example.com:80/announce,https://example.net:443/announce`

Announce tiers are stored in the `announce-list` key of the top-level metainfo
    dictionary as a list of lists of strings, as defined by BEP 12: Multitracker Metadata Extension.

Note: Many BitTorrent clients do not implement the behavior described in BEP
    12. See the discussion here for more details: https://github.com/bittorrent/bittorrent.org/issues/82

-c, --comment <TEXT>
    Include `TEXT` as the comment for generated `.torrent` file. Stored under `comment` key of top-level metainfo dictionary.

--node <NODE>...
    Add DHT bootstrap node `NODE` to torrent. `NODE` should be in the form `HOST:PORT`, where `HOST` is a domain name, an IPv4 address, or an IPv6 address surrounded by brackets. May be given more than once to add multiple bootstrap nodes.

    Examples:

    --node router.example.com:1337

    --node 203.0.113.0:2290

    --node [2001:db8:4275:7920:6269:7463:6f69:6e21]:8832

-g, --glob <GLOB>...
    Include or exclude files that match `GLOB`. Multiple glob may be provided, with the last one taking precedence. Precede a glob with `!` to exclude it.

-i, --input <INPUT>
    Read torrent contents from `INPUT`. If `INPUT` is a file, torrent will be a single-file torrent. If `INPUT` is a directory, torrent will be a multi-file torrent. If `INPUT` is `-`, read from standard input. Piece length defaults to 256KiB when reading from standard input if `--piece-length` is not given.

-N, --name <TEXT>
    Set name of torrent to `TEXT`. Defaults to the filename of the argument to `--input`. Required when `--input -`.

-o, --output <TARGET>
    Save `.torrent` file to `TARGET`, or print to standard output if `TARGET` is `-`. Defaults to the argument to `--input` with an `.torrent` extension appended. Required when `--input -`.

--peer <PEER>...
    Add `PEER` to magnet link.

-p, --piece-length <BYTES>
    Set piece length to `BYTES`. Accepts SI units, e.g. kib, mib, and gib.

--sort-by <SPEC>...
    Set the order of files within a torrent. `SPEC` should be of the form `KEY:ORDER`, with `KEY` being one of `path` or `size`, and `ORDER` being `ascending` or `descending`. `:ORDER` defaults to `ascending` if omitted. The `--sort-by` flag may be given more than once, with later values being used to break ties. Ties that remain are broken in ascending path order.

    Sort in ascending order by path, the default:

    --sort-by path:ascending

    Sort in ascending order by path, more concisely:

    --sort-by path

    Sort in ascending order by size, break ties in descending path order:

    --sort-by size:ascending --sort-by path:descending

-s, --source <TEXT>
    Set torrent source to `TEXT`. Stored under `source` key of info dictionary. This is useful for keeping statistics from being mis-reported when participating in swarms with the same contents, but with different trackers. When source is set to a unique value for torrents with the same contents, torrent clients will treat them as distinct torrents, and not share peers between them, and will correctly report download and upload statistics to multiple trackers.

--update-url <URL>
    Set torrent feed URL to `URL`, stored in the `update-url` key of the info dictionary. Clients that support BEP 39 will use the update URL to download revised versions of the torret's metainfo. Note that BEP 39 is not widely supported.

ARGS:

<INPUT>
    Read torrent contents from `INPUT`. If `INPUT` is a file, torrent will be a single-file torrent. If `INPUT` is a directory, torrent will be a multi-file torrent. If `INPUT` is `-`, read from standard input. Piece length defaults to 256KiB when reading from standard input if `--piece-length` is not given.