bep9-metadata-dl
Download the metadata from peers using infohash only
This module uses bittorrent-protocol, ut_metadata and
torrent-discovery modules of WebTorrent to download the info-dictionary part of a .torrent file using infohash of magnet links only.
features
- simple API
- find peers from the DHT network
- support callbacks and Promise
install
npm install bep9-metadata-dl
API
fetchMetadata(infohash, [opts], [callbackFn])
fetchMetadata.fromPeer(infohash, peerAddress, [opts], [callbackFn])
Example:
const fetchMetadata = require('bep9-metadata-dl');
const INFO_HASH = '90289fd34dfc1cf8f316a268add8354c85334458';
fetchMetadata(INFO_HASH, { maxConns: 10, fetchTimeout: 30000, socketTimeout: 5000 },
(err, metadata) => {
if (err) {
console.log(err);
return;
}
console.log(`[Callback] ${metadata.name.toString('utf-8')}`);
});
Or Promise based:
const fetchMetadata = require('bep9-metadata-dl');
const INFO_HASH = '90289fd34dfc1cf8f316a268add8354c85334458';
fetchMetadata(INFO_HASH, { maxConns: 10, fetchTimeout: 30000, socketTimeout: 5000 })
.then(metadata => {
console.log(`[Promise] ${metadata.name.toString('utf-8')}`);
}).catch(err => {
console.log(err);
});
Download directly from a peer:
const fetchMetadata = require('bep9-metadata-dl');
const INFO_HASH = '90289fd34dfc1cf8f316a268add8354c85334458';
fetchMetadata.fromPeer(INFO_HASH, '88.166.72.111:5', { timeout: 5000 },
(err, metadata) => {
if (err) {
console.log(err);
return;
}
console.log(`[Callback] ${metadata.name.toString('utf-8')}`);
});
Download directly from a peer, Promise based:
const fetchMetadata = require('bep9-metadata-dl');
const INFO_HASH = '90289fd34dfc1cf8f316a268add8354c85334458';
fetchMetadata.fromPeer(INFO_HASH, '88.166.72.111:5', { timeout: 5000 })
.then(metadata => {
console.log(`[Promise] ${metadata.name.toString('utf-8')}`);
}).catch(err => {
console.log(err);
});
License
MIT. Copyright (c) Hong Yan.