All Projects → webtorrent → Torrent Discovery

webtorrent / Torrent Discovery

Licence: mit
Discover BitTorrent and WebTorrent peers

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Torrent Discovery

Bittorrent Dht
🕸 Simple, robust, BitTorrent DHT implementation
Stars: ✭ 1,004 (+467.23%)
Mutual labels:  dht, p2p, torrent, bittorrent, webtorrent, peer
Bittorrent Tracker
🌊 Simple, robust, BitTorrent tracker (client & server) implementation
Stars: ✭ 1,184 (+568.93%)
Mutual labels:  torrent, bittorrent, tracker, webtorrent, browser
Bittorrent Protocol
Simple, robust, BitTorrent peer wire protocol implementation
Stars: ✭ 279 (+57.63%)
Mutual labels:  p2p, torrent, bittorrent, webtorrent, browser
Snail
基于Java、JavaFX开发的下载工具,支持下载协议:BT(BitTorrent、磁力链接、种子文件)、HLS(M3U8)、FTP、HTTP。人家才不要你的⭐⭐呢,哼
Stars: ✭ 102 (-42.37%)
Mutual labels:  dht, p2p, torrent, bittorrent, tracker
Webtorrent
⚡️ Streaming torrent client for the web
Stars: ✭ 25,554 (+14337.29%)
Mutual labels:  p2p, torrent, bittorrent, webtorrent, browser
Wt Tracker
High-performance WebTorrent tracker
Stars: ✭ 144 (-18.64%)
Mutual labels:  p2p, torrent, bittorrent, tracker, webtorrent
Diffy
🎞️💓🍿 Love streaming - It's always best to watch a movie together ! 🤗
Stars: ✭ 37 (-79.1%)
Mutual labels:  torrent, bittorrent, p2p, webtorrent
Create Torrent
Create .torrent files
Stars: ✭ 264 (+49.15%)
Mutual labels:  torrent, bittorrent, webtorrent, browser
Bt
BitTorrent library and client with DHT, magnet links, encryption and more
Stars: ✭ 2,011 (+1036.16%)
Mutual labels:  dht, p2p, torrent, bittorrent
Torrentpier
Main project repository
Stars: ✭ 166 (-6.21%)
Mutual labels:  p2p, torrent, bittorrent, webtorrent
P2p Media Loader
An open-source engine for P2P streaming of live and on demand video directly in a web browser HTML page
Stars: ✭ 822 (+364.41%)
Mutual labels:  p2p, bittorrent, webtorrent, peer
torrent-spider
基于DHT的p2p网络资源爬虫
Stars: ✭ 65 (-63.28%)
Mutual labels:  torrent, bittorrent, p2p, dht
Magnet Uri
Parse a magnet URI and return an object of keys/values
Stars: ✭ 183 (+3.39%)
Mutual labels:  torrent, bittorrent, webtorrent, browser
Parse Torrent
Parse a torrent identifier (magnet uri, .torrent file, info hash)
Stars: ✭ 325 (+83.62%)
Mutual labels:  torrent, bittorrent, webtorrent, browser
Torrent
Full-featured BitTorrent client package and utilities
Stars: ✭ 4,138 (+2237.85%)
Mutual labels:  p2p, torrent, bittorrent, tracker
Webtorrent Hybrid
WebTorrent (with WebRTC support in Node.js)
Stars: ✭ 422 (+138.42%)
Mutual labels:  torrent, bittorrent, webtorrent, browser
Ut metadata
BitTorrent Extension for Peers to Send Metadata Files (BEP 9)
Stars: ✭ 98 (-44.63%)
Mutual labels:  bittorrent, webtorrent, peer, browser
Rats Search
BitTorrent P2P multi-platform search engine for Desktop and Web servers with integrated torrent client.
Stars: ✭ 1,037 (+485.88%)
Mutual labels:  p2p, torrent, bittorrent
Torrenter
Simple nodejs package to download torrents using torrent-indexer and webtorrent, especially movie and series.
Stars: ✭ 42 (-76.27%)
Mutual labels:  torrent, tracker, webtorrent
Pytorrent
Simple and functional BitTorrent client made in Python - Use for learning
Stars: ✭ 135 (-23.73%)
Mutual labels:  p2p, torrent, bittorrent

torrent-discovery travis npm downloads javascript style guide

Discover BitTorrent and WebTorrent peers

This module bundles bittorrent-dht, bittorrent-tracker, and bittorrent-lsd clients and exposes a single API for discovering BitTorrent peers via both discovery methods.

features

  • simple API
  • find peers from trackers, DHT, and LSD
  • automatically announces, so other peers can discover us
  • can start finding peers with just an info hash, before full metadata is available

This module also works in the browser with browserify. In that context, it discovers WebTorrent (WebRTC) peers.

install

npm install torrent-discovery

api

discovery = new Discovery(opts)

Create a new peer discovery instance. Required options are:

{
  infoHash: '', // as hex string or Buffer
  peerId: '',   // as hex string or Buffer
  port: 0       // torrent client port (only required in node)
}

Optional options are:

{
  announce: [],  // force list of announce urls to use (from magnet uri)
  dht: true,     // use dht? optionally, this can be an `opts` object, or a DHT instance to use (can be reused for multiple torrents)
  dhtPort: 0,    // custom listen port for the DHT instance (not used if DHT instance is given via `opts.dht`)
  userAgent: '', // User-Agent header for http requests
  tracker: true, // use trackers? optionally, this can be an `opts` object
  lsd: true      // use lsd?
}

See the documentation for bittorrent-dht, bittorrent-tracker and bittorrant-lsd for information on what options are available via the opts object.

This module automatically handles announcing on intervals, for maximum peer discovery.

discovery.updatePort(port)

When the port that the torrent client is listening on changes, call this method to reannounce to the tracker and DHT with the new port.

discovery.complete([opts])

Announce that download has completed (and the client is now a seeder). This is only used by trackers, for statistical purposes. If trackers are not in use, then this method is a no-op.

Optional opts object with the following options:

{number=} opts.uploaded
{number=} opts.downloaded
{number=} opts.numwant
{number=} opts.left (if not set, calculated automatically)

discovery.destroy()

Destroy and cleanup the DHT, tracker, and LSD instances.

events

discovery.on('peer', (peer, source) => {})

Emitted whenever a new peer is discovered. Source is either 'tracker', 'dht', or 'lsd' based on peer source.

In node, peer is a string in the form ip:port, e.g. 12.34.56.78:4000.

In the browser, peer is an instance of simple-peer, a small wrapper around a WebRTC peer connection.

discovery.on('dhtAnnounce', () => {})

Emitted whenever an announce message has been sent to the DHT.

discovery.on('warning', err => {})

Emitted when there is a non-fatal DHT, tracker, or LSD error. For example, an inaccessible tracker server would be considered a warning. Useful for logging.

discovery.on('error', err => {})

Emitted when there is a fatal, DHT, tracker, or LSD error. This is unrecoverable and the discovery object will be destroyed if this event is emitted.

license

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].