Skip to content

A powerful Node.js library for multi-threaded downloading, accelerating downloads with concurrent threads.

Notifications You must be signed in to change notification settings

dipperpinees/fast-node-downloader

Repository files navigation

npm downloads npm bundle size

The fast-node-download library is a powerful Node.js library that enables multi-threaded downloading and provides a command-line interface (CLI). This library is designed to enhance download speeds by utilizing multiple threads simultaneously.

Installing

Using npm:

$ npm install fast-node-downloader

Using yarn:

$ yarn add fast-node-downloader

Using pnpm:

$ pnpm add fast-node-downloader

Usage

CLI

The library provides a command-line interface (CLI) that allows you to easily initiate downloads from the terminal. Here's an example of how to use the CLI:

$ fnd download <download_url>

Options:
  -c  Number of download connections
  -d  Downloaded file directory
  -h  An object containing HTTP headers to include in the request

API

You can also use the library in your Node.js applications. Here's an example of how to use it:

const { download } = require("fast-node-downloader")

const startDownload = async () => {
    try {
        const options = {
            // The local destination path to save the file to.
            // Default value is your Downloads folder.
            directory: "/home/hiepnk/Downloads",

            // Log download progress. Default is false.
            debug: true,

            // The number of parallel connections to use for the download. 
            // Default is cpu multiplier.
            numConnections: 4,

            // Additional headers to use for the download request.
            headers: {
                'Authorization': 'Bearer your_token'
            }
        }
        const key = await download("https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4", options);
        console.log("\n" + key)
    } catch (error) {
        console.error(error.message)
    }
}

startDownload();

License

This project is licensed under the MIT License.

Issues

If you encounter any issues or have suggestions for improvement, please open an issue.

About

A powerful Node.js library for multi-threaded downloading, accelerating downloads with concurrent threads.

Resources

Stars

Watchers

Forks

Packages

No packages published