create-torrent

Create .torrent files

Github星跟蹤圖

create-torrent travis npm downloads javascript style guide

Create .torrent files

creation

This module is used by WebTorrent! This module works in node.js and the browser (with browserify).

install

npm install create-torrent

usage

The simplest way to use create-torrent is like this:

const createTorrent = require('create-torrent')
const fs = require('fs')

createTorrent('/path/to/folder', (err, torrent) => {
  if (!err) {
    // `torrent` is a Buffer with the contents of the new .torrent file
    fs.writeFile('my.torrent', torrent)
  }
})

A reasonable piece length (approx. 1024 pieces) will automatically be selected
for the .torrent file, or you can override it if you want a different size (See
API docs below).

api

createTorrent(input, [opts], function callback (err, torrent) {})

Create a new .torrent file.

input can be any of the following:

  • path to the file or folder on filesystem (string)
  • W3C File object (from an <input> or drag and drop)
  • W3C FileList object (basically an array of File objects)
  • Node Buffer object
  • Node stream.Readable object

Or, an array of string, File, Buffer, or stream.Readable objects.

opts is optional and allows you to set special settings on the produced .torrent file.

{
  name: String,             // name of the torrent (default = basename of `path`, or 1st file's name)
  comment: String,          // free-form textual comments of the author
  createdBy: String,        // name and version of program used to create torrent
  creationDate: Date        // creation time in UNIX epoch format (default = now)
  private: Boolean,         // is this a private .torrent? (default = false)
  pieceLength: Number,      // force a custom piece length (number of bytes)
  announceList: , // custom trackers (array of arrays of strings) (see [bep12](http://www.bittorrent.org/beps/bep_0012.html))
  urlList: [String],        // web seed urls (see [bep19](http://www.bittorrent.org/beps/bep_0019.html))
  info: Object              // add non-standard info dict entries, e.g. info.source, a convention for cross-seeding 
}

If announceList is omitted, the following trackers will be included automatically:

  • udp://tracker.openbittorrent.com:80
  • udp://tracker.internetwarriors.net:1337
  • udp://tracker.leechers-paradise.org:6969
  • udp://tracker.coppersurfer.tk:6969
  • udp://exodus.desync.com:6969
  • wss://tracker.btorrent.xyz
  • wss://tracker.openwebtorrent.com
  • wss://tracker.fastcast.nz

Trackers that start with wss:// are for WebRTC peers. See
WebTorrent to learn more.

callback is called with an error and a Buffer of the torrent data. It is up to you to
save it to a file if that's what you want to do.

Note: Every torrent is required to have a name. If one is not explicitly provided
through opts.name, one will be determined automatically using the following logic:

  • If all files share a common path prefix, that will be used. For example, if all file
    paths start with /imgs/ the torrent name will be imgs.
  • Otherwise, the first file that has a name will determine the torrent name. For example,
    if the first file is /foo/bar/baz.txt, the torrent name will be baz.txt.
  • If no files have names (say that all files are Buffer or Stream objects), then a name
    like "Unnamed Torrent " will be generated.

Note: Every file is required to have a name. For filesystem paths or W3C File objects,
the name is included in the object. For Buffer or Readable stream types, a name property
can be set on the object, like this:

const buf = Buffer.from('Some file content')
buf.name = 'Some file name'

command line

usage: create-torrent <directory OR file> {-o outfile.torrent}

Create a torrent file from a directory or file.

If an output file isn\'t specified with `-o`, the torrent file will be
written to stdout.

license

MIT. Copyright (c) Feross Aboukhadijeh and WebTorrent, LLC.

主要指標

概覽
名稱與所有者webtorrent/create-torrent
主編程語言JavaScript
編程語言JavaScript (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2014-05-21 08:53:36
推送於2025-07-12 21:40:28
最后一次提交2025-01-04 18:48:12
發布數140
最新版本名稱v6.1.0 (發布於 )
第一版名稱v1.0.0 (發布於 2014-05-21 02:13:11)
用户参与
星數347
關注者數12
派生數100
提交數625
已啟用問題?
問題數64
打開的問題數3
拉請求數164
打開的拉請求數2
關閉的拉請求數37
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?