Get health info about a webtorrent file or magnet link
npm install webtorrent-healthThe param torrentId can be a webtorrent file or magnet link, for more info check out parse-torrent.
webtorrentHealth(torrentId [, opts], callback)var webtorrentHealth = require('webtorrent-health')
var magnet = 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com'
webtorrentHealth(magnet, function (err, data) {
if (err) return console.error(err)
console.log('average number of seeders: ' + data.seeds)
console.log('average number of leechers: ' + data.peers)
console.log('ratio: ', +(Math.round((data.peers > 0 ? data.seeds / data.peers : data.seeds) +'e+2') + 'e-2'))
})You can also use Promises/A+:
var webtorrentHealth = require('webtorrent-health')
var magnet = 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com'
webtorrentHealth(magnet).then(function (data) {
console.log('average number of seeders: ' + data.seeds)
console.log('average number of leechers: ' + data.peers)
console.log('ratio: ', +(Math.round((data.peers > 0 ? data.seeds / data.peers : data.seeds) +'e+2') + 'e-2'))
}).catch(console.error.bind(console))If you couldn't scrape any of the trackers you will not get any errors, but the returned data will look like this:
{
seeds: 0,
peers: 0,
extra: [...]
}The attribute extra is an Array of Objects, that contains more info about the each tracker. Example:
[
{
tracker: 'wss://tracker.openwebtorrent.com',
seeds: 561,
peers: 12967,
downloads: 561,
response_time: 229
},
{
tracker: 'wss://tracker.btorrent.xyz',
seeds: 601,
peers: 19119,
downloads: 601,
response_time: 705
},
{
tracker: 'wss://tracker.badtracker.com',
error: 'connection error to wss://tracker.badtracker.com'
}
]opts.trackers: additional trackers to scrape on top of the onestorrentIdhas.- Type: an Array of Strings
- Example:
webtorrentHealth(torrentId, {
trackers: ['wss://tracker.openwebtorrent.com']
}, function (err, data) {
// Do something
})opts.blacklist: don't scrape some trackers.- Type: an Array of Strings (each string can be a regex)
- Example:
webtorrentHealth(torrentId, {
blacklist: [
'openbittorrent' // will blacklist any tracker containing that string in its URI
]
}, function (err, data) {
// Do something
})opts.timeout: timeout in milliseconds for each request to scarpe the tracker. Default is1000.- Type: number
- Example:
webtorrentHealth(torrentId, {
timeout: 1500
}, function (err, data) {
// Do something
})MIT. Copyright (c) Alex