An extremely smart and efficient download manager for various cases.
Project description
TurboDL
TurboDL ia an extremely smart, fast and efficient download manager with several automations.
- Uses HTTP/2 protocol to download files.
- Built-in sophisticated download acceleration technique.
- Retry failed requests efficiently.
- Automatically detects file information before download.
- Automatically handles redirects.
- Supports post-download hash verification.
- Automatically uses RAM buffer to speed up downloads and reduce disk I/O.
- Accurately displays a beautiful progress bar.
Installation (from PyPI)
pip install -U turbodl # Install the latest version of TurboDL
Example Usage
Inside a Python script
from turbodl import TurboDL
turbodl = TurboDL(
max_connections='auto',
connection_speed=80,
show_optimization_progress_bar=True,
show_progress_bar=True,
custom_headers=None,
timeout=None
)
turbodl.download(
url='https://example.com/file.txt',
output_path='path/to/file',
expected_hash='0a1b2c3d4e5f6g7h8i9j', # Or None if you don't want to check the hash
hash_type='sha256'
)
# >>> file.txt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.6/35.6 kB 36.2 MB/s 0:00:00 100%
# All functions are documented and have detailed typings, use your development IDE to learn more.
From the command line
turbodl --help
# >>> ╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
# >>> │ * url TEXT The download URL to download the file from. [default: None] [required] │
# >>> │ output_path [OUTPUT_PATH] The path to save the downloaded file to. If the path is a directory, the file name will be generated from the server response. If the path is a file, the file will be saved with the │
# >>> │ provided name. If not provided, the file will be saved to the current working directory. (default: Path.cwd()) │
# >>> │ [default: None] │
# >>> ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
# >>> ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
# >>> │ --max-connections -mc INTEGER The maximum number of connections to use for downloading the file (default: 'auto'). [default: None] │
# >>> │ --connection-speed -cs FLOAT Your connection speed in Mbps (default: 80). [default: None] │
# >>> │ --overwrite -o --no-overwrite -no Overwrite the file if it already exists. Otherwise, a "_1", "_2", etc. suffix will be added. [default: overwrite] │
# >>> │ --show-optimization-progress-bar -sop --hide-optimization-progress-bar -hop Show or hide the initial optimization progress bar. [default: show-optimization-progress-bar] │
# >>> │ --show-progress -sp --hide-progress -hp Show or hide the download progress bar. [default: show-progress] │
# >>> │ --timeout -t INTEGER Timeout in seconds for the download process. Or None for no timeout. [default: None] │
# >>> │ --install-completion Install completion for the current shell. │
# >>> │ --show-completion Show completion for the current shell, to copy it or customize the installation. │
# >>> │ --help Show this message and exit. │
# >>> ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
turbodl https://example.com/file.txt [...] path/to/file # Tip: use -cs argument to set your connection speed and accelerate the download
# >>> file.txt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.6/35.6 kB 36.2 MB/s 0:00:00 100%
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, fork the repository and create a pull request. You can also simply open an issue and describe your ideas or report bugs. Don't forget to give the project a star if you like it!
- Fork the project;
- Create your feature branch ・
git checkout -b feature/{feature_name}; - Commit your changes ・
git commit -m "{commit_message}"; - Push to the branch ・
git push origin feature/{feature_name}; - Open a pull request, describing the changes you made and wait for a review.
Disclaimer
Please note that downloading copyrighted content from some services may be illegal in your country. This tool is designed for educational purposes only. Use at your own risk.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file turbodl-0.1.2.tar.gz.
File metadata
- Download URL: turbodl-0.1.2.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96cc1726d64843d3a355a894a5b88622a6e895b590330276c4a4233a88e58081
|
|
| MD5 |
4f5227863ad67a8467c9372a7141f4a4
|
|
| BLAKE2b-256 |
1e3b3fc8ffe5bba091547ed715680a33812a0fa9c04b6b22c0c7be11db09cc42
|
File details
Details for the file turbodl-0.1.2-py3-none-any.whl.
File metadata
- Download URL: turbodl-0.1.2-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
110b9d9874e47cb24eef4cdf5a2bbe40303688055ae90c7fbf8d16bec0f1e25b
|
|
| MD5 |
83c317ed14a976100d3b021b8e9815c9
|
|
| BLAKE2b-256 |
50281fb42f546e78c4ad9da2e72fbcc25491022a2a7310872bee4d497a59d8da
|