Homura (ほむら) is a Python downloader with progress, which can be used to download large files.
It is named after Homura Akemi.
- PycURL based
- Resume downloads (if server supports byte ranges on the resource)
- Support for
requests.Session
Homura depends on PycURL. Install dependencies before installing the python package:
sudo apt-get install build-essential libcurl4-openssl-dev python-dev
Yum:
sudo yum groupinstall "Development Tools"
sudo yum install libcurl libcurl-devel python-devel
DNF:
sudo dnf groupinstall "Development Tools"
sudo dnf install libcurl libcurl-devel python-devel
pip install homura
The simplest usage is to import the utility function download
:
from homura import download
download('http://download.thinkbroadband.com/200MB.zip')
3% 6.2 MiB 739.5 KiB/s 0:04:28 ETA
To specify path for downloaded file:
download(url='http://download.thinkbroadband.com/200MB.zip',
path='/path/to/big.zip')
You can specify extra headers as a dictionary:
download(url='http://example.com', headers={'API-Key': '123456'})
You can work with Session
objects of the requests library:
import requests
s = requests.Session()
# Do some work with `s` and send requests
download(url='http://example.com', session=s)
Pass options to setopt
of the pycurl.Curl
object via the pass_through_opts
argument:
import pycurl
download(url=url, pass_through_opts={pycurl.FOLLOWLOCATION: True})