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 https://github.com/halilozercan/pget cd pget python setup.py 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: http://filedownload.url/path?args=given 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 "http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_60fps_normal.mp4" 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.start() downloader.subscribe(callback, callback_threshold) downloader.wait_for_finish()
- by using subscribe, we get a callback from downloader whenever
callback_thresholdkilobytes 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
- 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.