Nitroglycerin Pickle Machine


    2.1.3-hf3 • Public • Published



    Yet another node torrent search api based on x-ray.


    npm install torrent-search-api

    Supported providers

    • TorrentLeech: cookie authentification
    • IpTorrents: credentials and cookie authentification
    • Torrent9
    • Torrentz2
    • 1337x
    • ThePirateBay
    • YggTorrent : credentials and cookie authentification
    • KickassTorrents
    • Rarbg
    • TorrentProject
    • Yts
    • Limetorrents
    • Eztv


    • 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

    const TorrentSearchApi = require('torrent-search-api');
    // Search '1080' in 'Movies' category and limit to 20 results
    const torrents = await'1080', 'Movies', 20);

    Torrent Search API

    Get providers

    // Get providers
    const providers = TorrentSearchApi.getProviders();
    // Get active providers
    const activeProviders = TorrentSearchApi.getActiveProviders();
    // providers
            name: 'Torrent9',
            public: true,
            categories: ['All', 'Movies', 'TV', 'Music', 'Apps', 'Books', 'Top100']
            name: 'IpTorrents',
            public: false,
            categories: ['All', 'Movies', 'TV', 'Games', 'Music']

    Enable provider

    // Enable public providers
    // Enable public provider
    // Enable private provider with cookies
    TorrentSearchApi.enableProvider('IpTorrents', ['uid=XXX;', 'pass=XXX;']);
    // Enable private provider with credentials
    TorrentSearchApi.enableProvider('IpTorrents', 'USERNAME', 'PASSWORD');
    // Enable private provider with token
    TorrentSearchApi.enableProvider('xxx', 'TOKEN');

    Disable provider

    // Disable provider
    // Disable all enabled providers

    Check if a provider exists and is active


    Search torrent

    The result is an array of torrents sorted by seeders with more or less properties depending on the provider.

    // Search on actives providers
    // Query: 1080
    // Category: Movies (optional)
    // Limit: 20 (optional)
    const torrents = await'1080', 'Movies', 20);
    // Search with given providers
    // query: 1080
    // category: Movies (optional)
    // limit: 20 (optional)
    const torrents = await['IpTorrents', 'Torrent9'], '1080', 'Movies', 20);

    Torrent details

    // Get details (raw scraped html)
    // torrent: taken from a search result
    const torrentHtmlDetail = await TorrentSearchApi.getTorrentDetails(torrent);

    Torrent magnet

    // Get magnet url
    // torrent: taken from a search result
    const magnet = await TorrentSearchApi.getMagnet(torrent);

    Download torrent

    // Download a buffer
    // torrent: taken from a search result
    const buffer = await TorrentSearchApi.downloadTorrent(torrent);
    // Download torrent and write it to the disk
    // torrent: taken from a search result
    await TorrentSearchApi.downloadTorrent(torrent, filnamePath);

    Load custom providers

    You can code and add your custom providers (see provider definition format in existing providers) Don't forget to enable your provider if you intend to use it.

    // load multipe providers
    // from a TorrentProvider custom class definition or instance
    const MyCustomProvider = require('./MyCustomProvider');
    // from a provider object definition
    TorrentSearchApi.loadProvider( {/* provider object definition */});
    // from an absolute path to class definition or json object definition
    const path = require('path');
    const providerFullPath = path.join(__dirname, './lib/providers/MyCustomProvider');
    // load multipe providers within a directory
    // only absolute path are allowed
    // it loads every *.json and *.js file
    const path = require('path');
    const providerDirFullPath = path.join(__dirname, './lib/providers/');
    // load multipe providers
    const MyCustomProvider = require('./MyCustomProvider');
    TorrentSearchApi.loadProviders(MyCustomProvider, {/* provider object definition */}, ...);

    Remove provider

    // Remove provider

    Create TorrentSearchApi instance

    If you want to create an instance of the api without loading all the default providers and only load the ones that you want

    // create instance
    const createApi = require('torrent-search-api/createApi');
    const TorrentSearchApi = createApi(/* same arguments as "loadProviders" method */)

    Create a new provider

    Check "test/createProvider.test.js" file if you want to create a new provider.

    Running tests command

    npm run test:watch

    Override provider config

    // Fully or partial override of the provider config
    TorrentSearchApi.overrideConfig(providerName, newConfig);


    MIT © 2020 Jimmy Laurent


    npm i @n0rmancodes/torrent-search-api

    DownloadsWeekly Downloads






    Unpacked Size

    525 kB

    Total Files


    Last publish


    • n0rmancodes