{"id":21927765,"url":"https://github.com/malloydelacroix/chunkydl","last_synced_at":"2025-03-22T12:17:42.416Z","repository":{"id":252999912,"uuid":"841624779","full_name":"MalloyDelacroix/chunkydl","owner":"MalloyDelacroix","description":"A user-friendly download library.","archived":false,"fork":false,"pushed_at":"2024-09-12T12:00:48.000Z","size":108,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-27T11:45:17.366Z","etag":null,"topics":["download-manager","downloader","multithreaded"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MalloyDelacroix.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-12T19:31:03.000Z","updated_at":"2024-09-12T12:00:51.000Z","dependencies_parsed_at":"2024-08-27T14:12:36.967Z","dependency_job_id":"d077bdb3-0dc0-4ba5-94e4-da9bb1b97fd6","html_url":"https://github.com/MalloyDelacroix/chunkydl","commit_stats":null,"previous_names":["malloydelacroix/chunkydl"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MalloyDelacroix%2Fchunkydl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MalloyDelacroix%2Fchunkydl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MalloyDelacroix%2Fchunkydl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MalloyDelacroix%2Fchunkydl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MalloyDelacroix","download_url":"https://codeload.github.com/MalloyDelacroix/chunkydl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244952807,"owners_count":20537474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["download-manager","downloader","multithreaded"],"created_at":"2024-11-28T22:17:31.603Z","updated_at":"2025-03-22T12:17:42.393Z","avatar_url":"https://github.com/MalloyDelacroix.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chunky DL\n\n**Chunky DL** is a user-friendly, ready to roll library for downloading files. It incorporates many common setups and \npatterns for downloading files all with little setup or configuration required.\n\nChunky DL supports multipart download out of the box.  Simply set your size threshold and any file over that size will \nbe downloaded in multiple parts and joined together at the end of download.  No further work is on your end is required.\n\nChunky DL also supports multithreaded download for downloading multiple files at a time.  Simply supply a list of urls, \nthe number of downloads you wish to run simultaneously, and the output path and no further configuration is required.\n\n![Build Status](https://img.shields.io/badge/build-passing-brightgreen)\n![GitHub License](https://img.shields.io/github/license/MalloyDelacroix/chunkydl?color=FFC000)\n\n[//]: # (![GitHub Tag]\u0026#40;https://img.shields.io/github/v/tag/MalloyDelacroix/chunkydl?color=FFC000\u0026#41;)\n\n------------\n\n## Installation\n\nChunkyDL is available on PyPi:\n\n\n```console\n$ python -m pip install chunkydl\n```\n\n## Usage\nDownloading a single file is easy.  The only requirements are a url and an output directory:\n```python\nimport chunkydl\n\nchunkydl.download('http://example.com/path/to/file.mp4', 'C:/Users/User/Downloads')\n```\n\nTo download multiple files simultaneously:\n```python\nimport chunkydl\n\nurls = [\n    'http://example.com/path/to/file_one.mp4',\n    'http://example.com/path/to/file_two.mp4',\n    'http://example_site_two.com/path/to/file_three.mp4',\n]\n\nchunkydl.download_list(urls, 'C:/Users/User/Downloads')\n```\n\nBy default, ChunkyDL is configured to download up to 4 files simultaneously and to split files with a size of over 100MB \ninto parts and download up to 4 parts simultaneously.  Of course, this can be configured by supplying these values to \neither function above:\n```python\nimport chunkydl\n\nchunkydl.download(\n    url='http://example.com/path/to/file.mp4', \n    output_path='C:/Users/User/Downloads',\n    size_threshold='50mb',  # 50MB\n    multipart_threads=6\n)\n```\n\nThe download configuration object can be accessed directly, allowing you to set up individual download configurations for \neach url in a list.  To do this, define a `DownloadConfig` object with your desired settings and supply the url, \noutput path, and configuration for each url that you wish to download:\n```python\nimport chunkydl\nfrom chunkydl import DownloadConfig, DLGroup\n\ndl_list = [\n    DLGroup(\n        url='http://example.com/path/to/file_one.mp4', \n        output_path='C:/Users/User/Downloads/new_file_one.mp4',\n        config=DownloadConfig(size_threshold='200mb', multipart_threads=3)\n    ),\n    DLGroup(\n        url='http://example.com/path/to/file_two.mp4',\n        output_path='C:/Users/User/Downloads/new_file_two.mp4',\n        config=DownloadConfig(size_threshold='20mb', headers={'Referer': 'http://example.com/'})\n    ),\n    DLGroup(\n        url='http://example_site_two.com/path/to/file_three.mp4',\n        output_path='C:/Users/User/Documents/SuperSpecialFolder/',\n        config=DownloadConfig()  # use default configuration\n    ),\n]\n\nchunkydl.download_list(dl_list)\n```\n\n## Features\n\n* **Multipart downloads:** Large files are downloaded in multiple parts simultaneously to increase download speed.\n* **Multiple concurrent downloads:** Download multiple files simultaneously without having to set up a custom framework.\n* **Perpetual download queue:** Queue downloader can be run perpetually in its own thread.  The download queue stays running\n    until you are ready for it to stop.  Simply keep adding urls to the queue to keep downloading.\n* **Highly configurable:** Downloads can be configured exactly how you need them. You control the thread counts, size thresholds, \n    headers, retries, and more all with simple configuration parameters.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalloydelacroix%2Fchunkydl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmalloydelacroix%2Fchunkydl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmalloydelacroix%2Fchunkydl/lists"}