Yet another download manager in python.
Project description
Downly - Python Download Manager
A fast and efficient Python download manager.
(For downloading torrents visit torrentix)
๐ Features
- Synchronous downloads for faster performance
- Resume support for interrupted downloads (even if the process is killed!)
- Multiple downloads with a single instance
- Progress tracking with a clean CLI output
๐ฆ Installation
pip install downly
๐ป Command Line Usage
downly https://example.com/file.zip [options]
Use downly --help to see options.
๐ Direct Usage
import asyncio
from downly import Downly
async def main():
downly = Downly()
download = downly.new_download("https://example.com/file.zip")
await download.start()
if __name__ =='__main__':
asyncio.run(main())
Non-Blocking Downloads
async def main():
downly = Downly()
download = downly.new_download("https://example.com/file.zip")
await download.start(block=False)
await asyncio.sleep(3) # do other stuff while downloading
await downly.await_downloads() # wait for download to finish
Pause and resume Downloads
async def main():
downly = Downly()
download = downly.new_download("https://example.com/file.zip")
await download.start(block=False)
await download.pause()
# do other stuff
await download.start() # resume download
Multiple Downloads
async def main():
downly = Downly()
downly.new_download("https://example.com/file.zip")
downly.new_download("https://example.com/file2.zip")
downly.new_download("https://example.com/file3.zip")
await downly.await_downloads()
Automatically Saves download state
- Start download:
await download.start() - Something Happens and the process terminates:
file.zip 29% โโโโโโโโโโโโธโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 4.4/15.1 MB 0:00:03 0:00:07 1.6 MB/s
Ctrl^C (Keyboard Interrupt)
- Start Download Again:
await d.start() - Download starts from where it was stopped:
file.zip 29% โโโโโโโโโโโโธโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 4.4/15.1 MB 0:00:03 0:00:07 1.6 MB/s
๐ Configuration
You can customize download's settings by passing options:
async def main():
downly = Downly()
download = downly.new_download(
"https://example.com/file.zip",
path='myfolder/myfilename.zip',
chunk_size=1024*1024*2, # 2MB
n_connections=16 # 16 synchronous connections
)
await download.start()
๐ฅ Roadmap
- Proxies Support
- More control over User agents, number of retries, ...
๐ License
MIT License. See LICENSE for details.
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
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 downly-0.3.1.tar.gz.
File metadata
- Download URL: downly-0.3.1.tar.gz
- Upload date:
- Size: 6.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 |
b63ff2aa1d63065e7248d5e1969706b7a3e159467441b61a189a89645a5c3fc4
|
|
| MD5 |
2e7e3213f56789e8ba6a318173dfad86
|
|
| BLAKE2b-256 |
dfa041206c98e6adb7ddabd0ad30f61c1e75b30966ebac1b02da14f5ebe46b93
|
Provenance
The following attestation bundles were made for downly-0.3.1.tar.gz:
Publisher:
release.yml on Amir-Hossein-ID/Downly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
downly-0.3.1.tar.gz -
Subject digest:
b63ff2aa1d63065e7248d5e1969706b7a3e159467441b61a189a89645a5c3fc4 - Sigstore transparency entry: 211321826
- Sigstore integration time:
-
Permalink:
Amir-Hossein-ID/Downly@9dec1b9f23b72e30cf73fe2bdd86abab0226d403 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/Amir-Hossein-ID
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9dec1b9f23b72e30cf73fe2bdd86abab0226d403 -
Trigger Event:
release
-
Statement type:
File details
Details for the file downly-0.3.1-py3-none-any.whl.
File metadata
- Download URL: downly-0.3.1-py3-none-any.whl
- Upload date:
- Size: 6.8 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 |
077ec46e7f20ce9f8911c1053b4cffa95c6ebdafd26d3981d2feb66937cb331e
|
|
| MD5 |
807c6d1db25c0c9ad8bff77b5ebc148e
|
|
| BLAKE2b-256 |
5dee295e505b51dd8d225a3defaf5f143da4b2866815eae5b8d7a77619e13970
|
Provenance
The following attestation bundles were made for downly-0.3.1-py3-none-any.whl:
Publisher:
release.yml on Amir-Hossein-ID/Downly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
downly-0.3.1-py3-none-any.whl -
Subject digest:
077ec46e7f20ce9f8911c1053b4cffa95c6ebdafd26d3981d2feb66937cb331e - Sigstore transparency entry: 211321830
- Sigstore integration time:
-
Permalink:
Amir-Hossein-ID/Downly@9dec1b9f23b72e30cf73fe2bdd86abab0226d403 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/Amir-Hossein-ID
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9dec1b9f23b72e30cf73fe2bdd86abab0226d403 -
Trigger Event:
release
-
Statement type: