Skip to main content

An extremely smart and efficient download manager for various cases.

Project description

TurboDL

PyPI - Version PyPI - Downloads PyPI - Code Style PyPI - Format PyPI - Python Compatible Versions

TurboDL is an extremely smart and efficient download manager for various cases.

  • Built-in download acceleration.
  • Uses your connection speed to download even more efficiently.
  • Retries failed requests.
  • Automatically detects the file type, name, extension, and size.
  • Automatically handles redirects.
  • Shows a fancy and precise 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
from pathlib import Path  # Optional


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.cwd()
)
# >>> 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
# >>> ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
# >>> │ --max-connections                 -mc                                           INTEGER  The maximum number of connections to use for downloading the file (default: 'auto'). [default: None]                                │
# >>> │ --connection-speed                -cs                                           FLOAT    The 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
# >>> 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!

  1. Fork the project;
  2. Create your feature branch ・ git checkout -b feature/{feature_name};
  3. Commit your changes ・ git commit -m "{commit_message}";
  4. Push to the branch ・ git push origin feature/{feature_name};
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

turbodl-0.1.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

turbodl-0.1.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file turbodl-0.1.0.tar.gz.

File metadata

  • Download URL: turbodl-0.1.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for turbodl-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1f7959237c418485570942b0cdc95d9c4f5c32f81df520f4e3dbb2341bf541b9
MD5 f43e6f7f3c9f5321e46734ce3caf9478
BLAKE2b-256 0e6099cc19ed7a61904accbbd6e77c9e3ff0605f7185c3a20e093e49ce4fc49a

See more details on using hashes here.

File details

Details for the file turbodl-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: turbodl-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for turbodl-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 143336d69b7d3fef4ff3787f1be5efaa9a36a2c2516da3dcf957039cacf358a5
MD5 906717f5ca118af005bb1e22a8d32e7b
BLAKE2b-256 2d6b4e617a4f328d72ba19abb87cf5423c7edd9b4f46e595a7a33647a3e1a4bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page