Modernized fork of the Smart Download Manager for Python by iTaybb with CI testing matrix and other 2024 bells and whistles.
Project description
pysmartdl2
This software is a fork of the pySmartDL or Python Smart Download Manager by iTaybb which appears to not be maintained anymore. I (1) went through its codebase to check if things work as expected in modern (Python 3.8-12+) versions of Python, (2) did some modernizing fixes here and there, (3) fixed broken test suites, (4) implemented automated testing workflows, and (4) restructured the package to modern standards (e.g., pyproject.toml). I plan some feature additions, but original API will be retained, so that you can treat it as a drop-in replacement. Enjoy!
Test suites go over all popular Python versions (Python 3.8 - 3.13) on all four platforms enabled by GitHub Action Runners: Linux (Ubuntu), MacOS (Intel CPU), MacOS (M1 CPU), and Windows. Live status is shown below.
Per the original README, pysmartdl strives to be a full-fledged smart download manager for Python. Main features:
- Built-in download acceleration (with the multipart downloading technique).
- Mirrors support.
- Pause/Unpause feature.
- Speed limiting feature.
- Hash checking.
- Non-blocking, shows the progress bar, download speed and ETA.
- Full support for custom headers and methods.
Installation
You can install pysmartdl2 from PyPI through pip, with a simple:
pip install pysmartdl2
Or you can install from the source in editable mode, by cloning this repository and:
pip install -e .
Usage
Downloading with it is as simple as creating an instance and starting it:
from pysmartdl2 import SmartDL
url = "https://raw.githubusercontent.com/amkrajewski/pysmartdl2/master/test/7za920.zip"
dest = "." # <-- To download to current directory
# or '~/Downloads/' for Downloads directory on Linux
# or "C:\\Downloads\\" for Downloads directory on Windows
obj = SmartDL(url, dest)
obj.start()
# [*] 0.23 Mb / 0.37 Mb @ 88.00Kb/s [##########--------] [60%, 2s left]
path = obj.get_dest()
Copyright (C) 2023-2025 Adam M. Krajewski
Copyright (C) 2014-2020 Itay Brandes.
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 pysmartdl2-2.0.2.tar.gz.
File metadata
- Download URL: pysmartdl2-2.0.2.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a87a3f299f285852eec2507c57fea456808279a84a6a6fb87c8112c612373b8
|
|
| MD5 |
c0f6b24ba6cdf184fd14b43113975de3
|
|
| BLAKE2b-256 |
54fc740371b765ff7df85f0b41e2b02f02b7e15cfbcefb0b126110ccc7e578d8
|
Provenance
The following attestation bundles were made for pysmartdl2-2.0.2.tar.gz:
Publisher:
publish.yaml on amkrajewski/pysmartdl2
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pysmartdl2-2.0.2.tar.gz -
Subject digest:
1a87a3f299f285852eec2507c57fea456808279a84a6a6fb87c8112c612373b8 - Sigstore transparency entry: 252080912
- Sigstore integration time:
-
Permalink:
amkrajewski/pysmartdl2@9fcc0f9f897ecfc66ee34fe422ccf474e8f8591c -
Branch / Tag:
refs/tags/v2.0.2 - Owner: https://github.com/amkrajewski
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@9fcc0f9f897ecfc66ee34fe422ccf474e8f8591c -
Trigger Event:
push
-
Statement type:
File details
Details for the file pysmartdl2-2.0.2-py3-none-any.whl.
File metadata
- Download URL: pysmartdl2-2.0.2-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1aee83b4c2445fa8e9cb4ba7c8f5d1127b78d4093ddff31aafa360e70bc07a83
|
|
| MD5 |
14506090af87e1f1c843ebbeb546d356
|
|
| BLAKE2b-256 |
2a28f2b78e5378e664d45dac3b1b6415a4832dad583579334642b4cf8bb072c3
|
Provenance
The following attestation bundles were made for pysmartdl2-2.0.2-py3-none-any.whl:
Publisher:
publish.yaml on amkrajewski/pysmartdl2
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pysmartdl2-2.0.2-py3-none-any.whl -
Subject digest:
1aee83b4c2445fa8e9cb4ba7c8f5d1127b78d4093ddff31aafa360e70bc07a83 - Sigstore transparency entry: 252080915
- Sigstore integration time:
-
Permalink:
amkrajewski/pysmartdl2@9fcc0f9f897ecfc66ee34fe422ccf474e8f8591c -
Branch / Tag:
refs/tags/v2.0.2 - Owner: https://github.com/amkrajewski
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@9fcc0f9f897ecfc66ee34fe422ccf474e8f8591c -
Trigger Event:
push
-
Statement type: