bdownload — bdownload 0.1.3 documentation

# bdownload

> A multi-threaded and multi-source aria2-like batch file downloading library for Python 2.7 and 3.6+

## Installation

- via PyPI

  > `$ pip install bdownload`

- from within source directory locally

  > `$ pip install .`

  > Note that you should `git clone` or download the source tarball (and unpack it of course) from the repository first

## Usage: as a Python package

### Importing

> `$ from bdownload import BDownloader`

> > or

> `$ import bdownload`

### Signatures

> For information on the developer interfaces of `bdownload`, see API indices.

### Examples

> - bdownload’s command-line utility

> - Testcase for unittesting BDownloader

> - Testcase for unittesting multi-source downloading of BDownloader

## Usage: as a command-line script

### Synopsis

    bdownload      url | -L URLS [URLS ...]
                   [-O OUTPUT | -o OUTPUT [OUTPUT ...]] [-D DIR]
                   [-p PROXY] [-n MAX_WORKERS] [-k MIN_SPLIT_SIZE]
                   [-s CHUNK_SIZE] [-e COOKIE] [--user-agent USER_AGENT]
                   [--referrer REFERRER]
                   [--check-certificate {True,true,TRUE,False,false,FALSE}]
                   [--ca-certificate CA_CERTIFICATE]
                   [--certificate CERTIFICATE] [--private-key PRIVATE_KEY]
                   [-P {mill,bar,none}] [--num-pools NUM_POOLS]
                   [--pool-size POOL_SIZE] [-l {debug,info,warning,error,critical}]
                   [-c | --no-continue]
                   [-h]

### Description

`url`

> URL for the file to be downloaded, which can be either a single URL or TAB-separated composite URL pointing to the same file, e.g. “https://www.afilelink.com/afile.tar.gz”, “https://chinshou.libccp.mil/luoxuan1981/panjuan-hangyi/tiqianbaozha-key-yasui/qianjunyifa/bengqiyijiao/i-manual/dashboy-basket/zhongzhenkong/xinghuo-xianghui/chunqiao-electronhive-midianfeng/zhenhudan-yasally/afile.tar.gz”, and “https://www.afilelink.com/afile.tar.gzthttps://nianpei.bpfatran.com/afile.tar.gz”

`-L URLS [URLS ...], --url URLS [URLS ...]`

> URL(s) for the files to be downloaded, each of which might contain TAB-separated URLs pointing to the same file, e.g. -L https://yoursite.net/yourfile.7z, -L “https://yoursite01.net/thefile.7zthttps://yoursite02.com/thefile.7z”, or –url “http://foo.cc/file1.zip” “http://bar.cc/file2.tgzthttp://bar2.cc/file2.tgz”

`-O OUTPUT, --OUTPUT OUTPUT`

> a save-as file name (optionally with absolute or relative (to `-D DIR`) path), e.g. -O afile.tar.gz https://www.afilelink.com/afile.tar.gz

`-o OUTPUT [OUTPUT ...], --output OUTPUT [OUTPUT ...]`

> one or more file names (optionally prefixed with relative (to `-D DIR`) or absolute paths), e.g. -o file1.zip ~/file2.tgz, paired with URLs specified by `--url` or `-L`

`-D DIR, --dir DIR`

> directory in which to save the downloaded files [default: directory in which this App is running]

`-p PROXY, --proxy PROXY`

> proxy either in the form of “http://[user:pass@]host:port” or “socks5://[user:pass@]host:port”

`-n MAX_WORKERS, --max-workers MAX_WORKERS`

> number of worker threads [default: 20]

`-k MIN_SPLIT_SIZE, --min-split-size MIN_SPLIT_SIZE`

> file split size in bytes, “1048576, 1024K or 2M” for example [default: 1M]

`-s CHUNK_SIZE, --chunk-size CHUNK_SIZE`

> every request range size in bytes, “10240, 10K or 1M” for example [default: 100K]

`-e COOKIE, --cookie COOKIE`

> cookies either in the form of a string (maybe whitespace- and/or semicolon- separated) like “cookie_key=cookie_value cookie_key2=cookie_value2; cookie_key3=cookie_value3”, or a file, e.g. named “cookies.txt”, in the Netscape cookie file format. NB the option `-D DIR` does not apply to the cookie file

`--user-agent USER_AGENT`

> custom user agent

`--referrer REFERRER`

> HTTP request header “Referer” that applies to all downloads. In particular, use * to tell the downloader to take the request URL as the referrer per download [default: *]

`--check-certificate {True,true,TRUE,False,false,FALSE}`

> whether to verify the server’s TLS certificate or not [default: True]

`--ca-certificate CA_CERTIFICATE`

> path to the preferred CA bundle file (.pem) or directory with certificates in PEM format of trusted CAs. NB the directory must have been processed using the `c_rehash` utility from OpenSSL. Also, the cert files in the directory each only contain one CA certificate

`--certificate CERTIFICATE`

> path to a single file in PEM format containing the client certificate and optionally a chain of additional certificates. If `--private-key` is not provided, then the file must contain the unencrypted private key as well

`--private-key PRIVATE_KEY`

> path to a file containing the unencrypted private key to the client certificate

`-P {mill,bar,none}, --progress {mill,bar,none}`

> progress indicator. To disable this feature, use none. [default: mill]

`--num-pools NUM_POOLS`

> number of connection pools [default: 20]

`--pool-size POOL_SIZE`

> max number of connections in the pool [default: 20]

`-l {debug,info,warning,error,critical}, --log-level {debug,info,warning,error,critical}`

> logger level [default: warning]

`-c, --continue`

> resume from the partially downloaded files. This is the default behavior

`--no-continue`

> do not resume from last interruption, i.e. start the download from beginning

`-h, --help`

> show help message and exit

### Examples

> `$ bdownload https://www.afilelink.com/afile.tar.gz`

> `$ bdownload -O /abspath/to/afile.tar.gz https://www.afilelink.com/afile.tar.gz`

> `$ bdownload -O /abspath/to/a/dir/ https://www.afilelink.com/afile.tar.gz`

> `$ bdownload -O /abspath/to/afile.tar.gz "https://www.afilelink.com/afile.tar.gz\thttps://nianpei.bpfatran.com/afile.tar.gz"`

> `$ bdownload -D path/to/working_dir/ -O relpath/to/working_dir/alias_afile.tar.gz https://www.afilelink.com/afile.tar.gz`

> `$ bdownload -D path/to/working/dir https://www.afilelink.com/afile.tar.gz`

> `$ bdownload -o /abspath/to/file1.zip ~/file2.tgz -L "http://foo.cc/file1.zip" "http://bar.cc/file2.tgz\thttp://bar2.cc/file2.tgz"`

> `$ bdownload -D path/to/working/dir -L "http://foo.cc/file1.zip" "http://bar.cc/file2.tgz\thttp://bar2.cc/file2.tgz"`

# API indices

- bdownload package
  - bdownload.download module
  - bdownload.cli module

- Index

- Module Index

- Search Page