Skip to main content

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

downly-0.3.1.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

downly-0.3.1-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

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

Hashes for downly-0.3.1.tar.gz
Algorithm Hash digest
SHA256 b63ff2aa1d63065e7248d5e1969706b7a3e159467441b61a189a89645a5c3fc4
MD5 2e7e3213f56789e8ba6a318173dfad86
BLAKE2b-256 dfa041206c98e6adb7ddabd0ad30f61c1e75b30966ebac1b02da14f5ebe46b93

See more details on using hashes here.

Provenance

The following attestation bundles were made for downly-0.3.1.tar.gz:

Publisher: release.yml on Amir-Hossein-ID/Downly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for downly-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 077ec46e7f20ce9f8911c1053b4cffa95c6ebdafd26d3981d2feb66937cb331e
MD5 807c6d1db25c0c9ad8bff77b5ebc148e
BLAKE2b-256 5dee295e505b51dd8d225a3defaf5f143da4b2866815eae5b8d7a77619e13970

See more details on using hashes here.

Provenance

The following attestation bundles were made for downly-0.3.1-py3-none-any.whl:

Publisher: release.yml on Amir-Hossein-ID/Downly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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