torrent-search-api
Version:
Yet another node torrent scraper based on x-ray. (Support iptorrents, torrentleech, torrent9, Yyggtorrent, ThePriatebay, torrentz2, 1337x, KickassTorrent, Rarbg, T411.si, TorrentProject)
193 lines (140 loc) • 3.7 kB
Markdown
on x-ray.
```bash
npm install torrent-search-api
```
- TorrentLeech: cookie authentification
- IpTorrents: credentials and cookie authentification
- Torrent9
- Torrentz2
- 1337x
- ThePirateBay
- YggTorrent : credentials and cookie authentification
- KickassTorrents
- Rarbg
- TorrentProject
- T411.si
- **Search:** search torrents on multiples providers.
- **Torrent details:** get details about torrents (raw scraped html).
- **Download:** download torrents files.
- **Easily extensible:** you can easily add new providers and enjoy built-in features like cloudfare bypass.
## Quick Example
```js
const TorrentSearchApi = require('torrent-search-api');
const torrentSearch = new TorrentSearchApi();
torrentSearch.enableProvider('Torrent9');
// Search '1080' in 'Movies' category and limit to 20 results
torrentSearch.search('1080', 'Movies', 20)
.then(torrents => {
console.log(torrents);
})
.catch(err => {
console.log(err);
});
```
```js
// Get providers
console.log(torrentSearch.getProviders());
// Get active providers
console.log(torrentSearch.getActiveProviders());
// Results
{
{
name: 'Torrent9',
public: true,
categories: ['All', 'Movies', 'TV', 'Music', 'Apps', 'Books', 'Top100']
},
{
name: 'IpTorrents',
public: false,
categories: ['All', 'Movies', 'TV', 'Games', 'Music']
},
...
}
```
```js
// Enable public provider
torrentSearch.enableProvider('Torrent9');
// Enable private provider with cookies
torrentSearch.enableProvider('IpTorrents', ['uid=XXX;', 'pass=XXX;']);
// Enable private provider with credentials
torrentSearch.enableProvider('IpTorrents', 'USERNAME', 'PASSWORD');
// Enable private provider with token
torrentSearch.enableProvider('xxx', 'TOKEN');
```
```js
// Disable provider
torrentSearch.disableProvider('TorrentLeech');
```
```js
torrentSearch.isProviderActive('1337x');
```
The result is an array of torrents sorted by seeders with more or less properties depending on the provider.
```js
// Search on actives providers
// Query: 1080
// Category: Movies (optional)
// Limit: 20 (optional)
torrentSearch.search('1080', 'Movies', 20)
.then(torrents => {
console.log(torrents);
})
.catch(err => {
console.log(err);
});
// Search with given providers
// query: 1080
// category: Movies (optional)
// limit: 20 (optional)
torrentSearch.search(['IpTorrents', 'Torrent9'], '1080', 'Movies', 20)
.then(torrents => {
console.log(torrents);
})
.catch(err => {
console.log(err);
});
```
```js
// Get details (raw scraped html)
// torrent: taken from a search result
torrentSearch.getTorrentDetails(torrent)
.then(html => {
console.log(html);
})
.catch(err => {
console.log(err);
});
````
```js
// Download a buffer
// torrent: taken from a search result
torrentSearch.downloadTorrent(torrent)
.then(buffer => {
// do something with the buffer
})
.catch(err => {
console.log(err);
});
// Download torrent and write it to the disk
// torrent: taken from a search result
torrentSearch.downloadTorrent(torrent, filnamePath)
.then(() => {
// OK
})
.catch(err => {
console.log(err);
});
````
MIT © 2017 [Jimmy Laurent](https://github.com/JimmyLaurent)
Yet another node torrent search api based