{"id":13412181,"url":"https://github.com/deepjyoti30/downloader-cli","last_synced_at":"2025-04-04T08:09:50.099Z","repository":{"id":37587853,"uuid":"221208977","full_name":"deepjyoti30/downloader-cli","owner":"deepjyoti30","description":"A simple downloader written in Python with an awesome customizable progressbar.","archived":false,"fork":false,"pushed_at":"2023-11-23T15:58:06.000Z","size":379,"stargazers_count":350,"open_issues_count":1,"forks_count":21,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-05-22T21:27:37.694Z","etag":null,"topics":["cli","downloader","progressbar","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deepjyoti30.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"deepjyoti30","custom":["https://www.paypal.me/deepjyoti30"]}},"created_at":"2019-11-12T12:07:34.000Z","updated_at":"2024-05-14T10:35:54.000Z","dependencies_parsed_at":"2023-11-25T04:10:50.904Z","dependency_job_id":null,"html_url":"https://github.com/deepjyoti30/downloader-cli","commit_stats":{"total_commits":111,"total_committers":5,"mean_commits":22.2,"dds":0.04504504504504503,"last_synced_commit":"89800d8bb99b79bb738a87abe0026de70cfa9217"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepjyoti30%2Fdownloader-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepjyoti30%2Fdownloader-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepjyoti30%2Fdownloader-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepjyoti30%2Fdownloader-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deepjyoti30","download_url":"https://codeload.github.com/deepjyoti30/downloader-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142074,"owners_count":20890653,"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":["cli","downloader","progressbar","python"],"created_at":"2024-07-30T20:01:21.867Z","updated_at":"2025-04-04T08:09:50.080Z","avatar_url":"https://github.com/deepjyoti30.png","language":"Python","readme":"\u003ch1 align=\"center\"\u003edownloader-cli\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eA simple downloader written in Python with an awesome progressbar.\u003c/h3\u003e\n\n\u003cdiv align=\"center\" style=\"padding-top: 2em !important; padding-bottom: 2em; !important\"\u003e\n    \u003cimg src=\".github/dw.gif\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cbr/\u003e\n\n\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"#requirements\"\u003eRequirements\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"#use-it\"\u003eUse It\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"#other-examples\"\u003eOther examples\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003cbr/\u003e\u003cbr/\u003e\n\n[![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/)\u003cbr/\u003e\u003cbr/\u003e\n[![License](https://img.shields.io/badge/License-MIT-pink.svg?style=for-the-badge)](LICENSE) [![Downloads](https://img.shields.io/badge/dynamic/json?style=for-the-badge\u0026maxAge=86400\u0026label=downloads\u0026query=%24.total_downloads\u0026url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fdownloader-cli)](https://img.shields.io/badge/dynamic/json?style=for-the-badge\u0026maxAge=86400\u0026label=downloads\u0026query=%24.total_downloads\u0026url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fdownloader-cli) ![PyPI](https://img.shields.io/pypi/v/downloader-cli?style=for-the-badge) ![AUR](https://img.shields.io/aur/version/downloader-cli?style=for-the-badge) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-purple.svg?style=for-the-badge)](http://makeapullrequest.com)\n\n\u003c/div\u003e\n\n# Installation\n\n- [PyPI](#pypi)\n- [Arch](#arch)\n- [Gentoo](#gentoo)\n- [Conda-Forge](#conda-forge)\n- [Manual](#manual)\n\n\u003e NOTE: The following packages (except installing manually) will get you the latest release. If you want to try out the latest development stuff, install manually.\n\n### PyPI\n\nThe package is available in PyPI [here](https://pypi.org/project/downloader-cli/)\n\nInstall it using\n\n```sh\npip install downloader-cli\n```\n\n### Arch\n\nThe package is available in the AUR [here](https://aur.archlinux.org/packages/downloader-cli/)\n\nInstall it using `yay`\n\n```console\nyay -S downloader-cli\n```\n\n### Gentoo\n\nThe package is also available in src_prepare Gentoo overlay [here](https://gitlab.com/src_prepare/src_prepare-overlay/-/tree/master/net-misc/downloader-cli/)\n\nFirst set up src_prepare-overlay\n\n```sh\nsudo emerge -anv --noreplace app-eselect/eselect-repository\nsudo eselect repository enable src_prepare-overlay\nsudo emaint sync -r src_prepare-overlay\n```\n\nInstall it using\n\n```sh\nsudo emerge -anv --autounmask net-misc/downloader-cli\n```\n\n### Conda-Forge\n\nInstalling `downloader-cli` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with:\n\n```\nconda config --add channels conda-forge\nconda config --set channel_priority strict\n```\n\nOnce the `conda-forge` channel has been enabled, `downloader-cli` can be installed with:\n\n```\nconda install downloader-cli\n```\n\nIt is possible to list all of the versions of `downloader-cli` available on your platform with:\n\n```\nconda search downloader-cli --channel conda-forge\n```\n\n### Manual\n\nIf you want to manuall install, clone the repo and run the following command\n\n```sh\nsudo python setup.py install\n```\n\n# Requirements\n\n**downloader-cli** requires just one external module.\n\n- [urllib3](https://pypi.org/project/urllib3/)\n\n# Usage\n\nThe script also allows some other values from the commandline.\n\n```console\nusage: dw [-h] [-f | -c] [-e] [-q] [-b] [-v] [--done DONE] [--left LEFT]\n          [--current CURRENT] [--color-done COLOR_DONE]\n          [--color-left COLOR_LEFT] [--color-current COLOR_CURRENT]\n          [--icon-border ICON_BORDER]\n          SOURCE [TARGET]\n\npositional arguments:\n  SOURCE                URL of the file\n  TARGET                target filepath (existing directories will be treated\n                        as the target location)\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -f, -o, --force       overwrite if the file already exists\n  -c, --resume          resume failed or cancelled download (partial sanity\n                        check)\n  -e, --echo            print the filepath to stdout after downloading (other\n                        output will be redirected to stderr)\n  -q, --quiet           suppress filesize and progress info\n  -b, --batch           Download files in batch. If this flag is passed the\n                        passed source will be considered as a file with\n                        download links seperated by a newline. This flag will\n                        be ignored if source is a valid URL.\n  -v, --version         show the program version number and exit\n\nUI Group:\n  --done DONE           Icon indicating the percentage done of the downloader\n  --left LEFT           Icon indicating the percentage remaining to download\n  --current CURRENT     Icon indicating the current percentage in the progress\n                        bar\n  --color-done COLOR_DONE\n                        Color for the done percentage icon\n  --color-left COLOR_LEFT\n                        Color for the remaining percentage icon\n  --color-current COLOR_CURRENT\n                        Color for the current indicator icon in the progress\n                        bar\n  --icon-border ICON_BORDER\n                        Icon for the border of the progress bar\n\n```\n\n# Use It\n\n**Want to use it in your project?**\n\nImport the `Download` class using the following.\n\n```python\nfrom downloader_cli.download import Download\nDownload(url).download()\n```\n\nAbove is the simplest way to use it in your app. The other arguments are optional.\n\n## Arguments\n\nThe module takes various arguments. Only **one** is required though.\n\n| Name | required | default |\n|------|----------|---------|\n| URL/file  | Yes      |         |\n| des  | No       | None (Current directory is selected and the name is extracted from the URL)|\n| overwrite| No   | False   |\n| continue_download| No | False |\n| echo | No | False |\n| quiet | No | False |\n| batch | No | False |\n| icon_done| No   | ▓       |\n| icon_left| No   | ░       |\n| icon_current | No | ▓     |\n| icon_border| No | \\| (If a single char is passed, it will be used for both the right and left border. If a string of 2 chars are passed, 1st char will be used as left border and the 2nd as the right border) |\n| color_done | No | blue |\n| color_left | No | blue |\n| color_current | No | blue |\n\n\u003e **NOTE** For details regarding the arguments, check [Usage](#usage)\n\n\u003e **NOTE** In case the file size is not available, the bar is shown as indefinite, in which case the icon_left\n\u003e by default space(`\" \"`).\n\n# Other examples\n\n### In case you want to experiment with the progress bar's icons, here's some examples.\n\n- This is when I passed `icon_done` as `#` and `icon_left` as space.\n\n  \u003cdiv align=\"center\" style=\"padding-top: 2em !important; padding-bottom: 2em; !important\"\u003e\n      \u003cimg src=\".github/dw_other.gif\"\u003e\n  \u003c/div\u003e\n\n- In case a file's size is not available from the server, the progressbar is indefinite.\n\n  \u003cdiv align=\"center\"\u003e\n      \u003cimg src=\".github/indefinite_bar.gif\"\u003e\n  \u003c/div\u003e\n","funding_links":["https://github.com/sponsors/deepjyoti30","https://www.paypal.me/deepjyoti30"],"categories":["Python","\u003ca name=\"transfer\"\u003e\u003c/a\u003eData transfer"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepjyoti30%2Fdownloader-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeepjyoti30%2Fdownloader-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepjyoti30%2Fdownloader-cli/lists"}