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). New features were added and bugs have been fixed, but original API is and 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.14) on all four platforms enabled by GitHub Action Runners: Linux (Ubuntu), MacOS (M1 CPU), and Windows. Live status is shown below.
Per the pre-fork README, pysmartdl2 is a lightweight but full-fledged smart download manager for Python. Main features:
- Built-in download acceleration (with the multipart downloading technique)
- Mirrors support
- Pausing and unpausing
- Speed limiting feature
- Hash checking
- Non-blocking, shows the progress bar, download speed and ETA
- Full support for custom headers and methods
Beyond what was mentioned earlier, pysmartdl2 ships with the following improvements over the legacy pysmartdl:
- Smart handling of HTTP 429 errors with respecting Retry-After, per-thread chunk recovery, and other improvements to work reliably in the age of filters against AI bots
- Proper socket cleanup and
HEAD-based probing to avoid connection leaks and CDN throttling - Mid-download mirror failover (quite unique feature!) with per-mirror
Rangere-evaluation. - Accurate speed limiting and proper thread cancellations
- A number of bugfixes related to thread-pool, pause/wait race conditions at retries or fast connections
- Up-to-date
User-Agentpool for reliable CDN compatibility
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()
Metadata
Release files for pysmartdl2 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pysmartdl2-2.1.0.tar.gz | 21.9 kB | With provenance | Details for pysmartdl2-2.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pysmartdl2-2.1.0-py3-none-any.whl | Python 3 | none | any | Details for pysmartdl2-2.1.0-py3-none-any.whl |
Total release size: 42.1 kB
Release files / pysmartdl2-2.1.0.tar.gz
| Download URL | pysmartdl2-2.1.0.tar.gz |
|---|---|
| Size | 21.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0e336d15724a8d000ea8a55c43ceabfa3e8f795e5e0d2112f98c85810a227eb6
|
|
BLAKE2b-256 checksum How to use checksums |
d261ef6bf97597c51970d9ee49ad6fdb1d4ff4120c78c438afc31c913ae95d61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / pysmartdl2-2.1.0-py3-none-any.whl
| Download URL | pysmartdl2-2.1.0-py3-none-any.whl |
|---|---|
| Size | 20.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e026497b2a017c2a2a1a4a5855bc47dc4eee8035abeee87040d873778563177d
|
|
BLAKE2b-256 checksum How to use checksums |
7a02470b44fbf2c46cfe415504041f5d2e1462c66004efa7c1b78afde67ad2d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logSecurity for pysmartdl2 2.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for pysmartdl2-2.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.