This module contains the main functionality for downloading files, including support for multi-threaded downloads and handling servers that do not support range requests.
pip install evo-downloader
pip install evo-downloader[full]
You can use evo-download
to download files programmatically.
from evo_downloader.downloader import Downloader
downloader = Downloader(num_threads=10)
# Example file URLs
file_urls = [
# url only
"http://images.cocodataset.org/annotations/image_info_test2014.zip",
# Tuple with file name
('evo_downloader.zip', 'https://github.com/maycuatroi/evo_downloader/archive/refs/heads/main.zip')
]
downloaded_files = downloader.download_files(file_urls, "example_folder")
for file_path in downloaded_files:
print(f"Downloaded: {file_path}")
You can also use edownload
from the command line.
$ python -m edownload download http://images.cocodataset.org/annotations/image_info_test2014.zip --folder example_folder --num-threads 10
# or if installed as a script
$ edownload download http://images.cocodataset.org/annotations/image_info_test2014.zip --folder example_folder --num-threads 10
# Download a file with range support
$ evo_downloader download http://images.cocodataset.org/annotations/image_info_test2014.zip --folder example_folder --num-threads 10
# Download a file without range support
$ evo_downloader download https://github.com/maycuatroi/evo_downloader/archive/refs/heads/main.zip --folder example_folder --num-threads 10
This example demonstrates how to use the Downloader
class to download files programmatically.
You can also use edownload
to launch the GUI.
$ edownload gui
The GUI allows you to input multiple download links and select the output folder. It also displays the download progress.
To run tests, you need to install the testing dependencies, including pyqt6
.
pip install -r requirements-test.txt
Then, you can run the tests using pytest
.
pytest
Evo Downloader developed with ❤️ by maycuatroi