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.0.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.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file downly-0.3.0.tar.gz.

File metadata

  • Download URL: downly-0.3.0.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.0.tar.gz
Algorithm Hash digest
SHA256 9acd61529ae191b40c9fa6fda062f8e92b60fe5b1e257a9cad5a737a01188d86
MD5 10189640a24676b564c489774048cd73
BLAKE2b-256 617bba2dc4b1936a9da41c84485397ec6fa47478a177a882b9b5bae3d1aade00

See more details on using hashes here.

Provenance

The following attestation bundles were made for downly-0.3.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: downly-0.3.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 13fcedd7fb16110ceaedf34adf1bbaf96c3e8f5642583f325e3e24b40f2c3dfa
MD5 a09c25351870312af0a4e47bdda7753c
BLAKE2b-256 caa6adc6357811e2f5dbd9eca3e30f111eea6c4f02458705b3682215a854c1d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for downly-0.3.0-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