A tool and library to save large files by creating multiple connections.

chunk, downloader, pget, python, range
pip install PGet==0.5.0



pget offers a simple yet functional API that enables you to save large files from bandwidth limited servers such as Google Drive, Yandex Disk, etc.

Basically, Downloader operates asynchronously and creates multithreads that connect to specified url from different ranges.

How to get

You can install pget from PyPI using pip

pip install pget

Also you can clone this repository and install it using setuptools

git clone
cd pget
python install


Pget is essentially designed to be a python module but it also provides a nice executable to cater your download needs quickly.

PGet - A tool for fast downloads

positional arguments:
                        File URL
  filename.txt          File name

optional arguments:
  -h, --help            show this help message and exit
  --chunks CHUNKS, -C CHUNKS
                        Chunk count

This is the output of well-known argument parser of python. For example

pget "" bunny.mp4 -C 8

In this example, we download big buck bunny video to bunny.mp4 file from 8 different ranges.

If we want to do this in a python code

from pget.down import Downloader
downloader = Downloader(url, filename, chunk_count)

downloader.subscribe(callback, callback_threshold)
  • by using subscribe, we get a callback from downloader whenever callback_threshold kilobytes of data is downloaded.
  • start and wait_for_finish is like starting a thread and waiting to join. You can also run pget downloader in sync mod by start_sync()
  • During the download, downloader object is updated regularly. So you can use it to get feedback in your application.


In the near future, I will add custom headers option. That's because most download services require cookies to let you download. Also they check if you are using a valid browser by looking at User-Agent header.