{"id":21640194,"url":"https://github.com/hwfan/drivedownloader","last_synced_at":"2025-04-05T03:04:19.314Z","repository":{"id":40459240,"uuid":"249638704","full_name":"hwfan/DriveDownloader","owner":"hwfan","description":"Download resources from online storage with ONLY ONE command line!!","archived":false,"fork":false,"pushed_at":"2025-01-06T11:01:40.000Z","size":105,"stargazers_count":146,"open_issues_count":0,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T02:03:29.001Z","etag":null,"topics":["dropbox","googledrive","onedrive","sharepoint"],"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/hwfan.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2020-03-24T07:17:40.000Z","updated_at":"2025-03-12T06:23:26.000Z","dependencies_parsed_at":"2025-03-29T02:13:25.276Z","dependency_job_id":null,"html_url":"https://github.com/hwfan/DriveDownloader","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwfan%2FDriveDownloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwfan%2FDriveDownloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwfan%2FDriveDownloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwfan%2FDriveDownloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hwfan","download_url":"https://codeload.github.com/hwfan/DriveDownloader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280262,"owners_count":20912967,"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":["dropbox","googledrive","onedrive","sharepoint"],"created_at":"2024-11-25T04:16:31.080Z","updated_at":"2025-04-05T03:04:19.309Z","avatar_url":"https://github.com/hwfan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DriveDownloader\n\nEnglish | [中文文档](README_CN.md)\n\n**DriveDownloader** is a Python-based **CLI** tool for downloading files on online drives. With DriveDownloader, one can download the resources from netdrive with **only one command line**. \n\nDriveDownloader now supports:\n  - OneDrive\n  - OneDrive for Business\n  - GoogleDrive\n  - Dropbox\n  - Direct Link\n\n## Usage\n\n  ```\n    ddl URL/FILELIST [--filename FILENAME] [--thread-number NUMBER] [--version] [--help]\n  ```\n\n  - `URL/FILELIST`: target url/filelist to download from. **The example of filelist is shown in `tests/test.list`.**\n  - `--filename/-o FILENAME`: (optional) output filename. Example: 'hello.txt'\n  - `--thread-number/-n NUMBER`: (optional) the thread number when using multithread.\n  - `--force-back-google/-F`: (optional) use the backup downloader for Google drive (it needs authentication, but is more stable).\n  - Using proxy:\n      - Set the environment variables `http_proxy` and `https_proxy` to your proxy addresses, and DriveDownloader will automatically read them.\n  - Resume:\n      - If your download was interrupted accidentally, simply restart the command will resume, regardless the number of threads.\n      \n## Installation\n  1. Install from pip\n  ```\n    pip install DriveDownloader\n  ```\n\n  2. Install from source\n  ```\n    git clone https://github.com/hwfan/DriveDownloader.git \u0026\u0026 cd DriveDownloader\n    python setup.py install\n  ```\n\n## Quick Start\n  \n  Coming Soon.\n\n## Requirements\n\n  - Python 3.7+\n  - Use `pip install -r requirements.txt` to install the packages.\n  - Proxy server if necessary. **We don't provide proxy service for DriveDownloader.**\n \n## Examples\n\n  You can also see these examples in `tests/run.sh`.\n\n  ```\n  echo \"Unit Tests of DriveDownloader\"\n  mkdir -p test_outputs\n\n  echo \"Testing Direct Link...\"\n  # direct link\n  ddl https://www.google.com.hk/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png -o test_outputs/directlink.png\n\n  echo \"Testing OneDrive...\"\n  # OneDrive\n  ddl https://1drv.ms/t/s!ArUVoRxpBphY5U-a3JznLkLG1uEY?e=czbq1R -o test_outputs/hello_od.txt\n\n  echo \"Testing GoogleDrive...\"\n  # GoogleDrive\n  ddl https://drive.google.com/file/d/1XQRdK8ewbpOlQn7CvB99aT1FLi6cUKt_/view?usp=sharing -o test_outputs/hello_gd.txt\n\n  echo \"Testing SharePoint...\"\n  # SharePoint\n  ddl https://bupteducn-my.sharepoint.com/:t:/g/personal/hwfan_bupt_edu_cn/EQzn4SeFkJZHq8OikhX7X3QB97PSiNvJpPVtllBQln8EQw?e=NmgRSc -o test_outputs/hello_sp.txt\n\n  echo \"Testing Dropbox...\"\n  # Dropbox\n  ddl https://www.dropbox.com/s/bd0bak3h9dlfw3z/hello.txt?dl=0 -o test_outputs/hello_db.txt\n\n  echo \"Testing File List...\"\n  # file list\n  ddl test.list -l\n\n  echo \"Testing Multi Thread...\"\n  # Multi Thread\n  ddl https://www.dropbox.com/s/r4bme0kew42oo7e/Get%20Started%20with%20Dropbox.pdf?dl=0 -o test_outputs/Dropbox.pdf -n 8\n  ```\n\n## FAQ\n\n- Why does \"Size:Invalid\" occur?\n\n  - We extract the size of file from the \"Content-Length\" of HTTP response. If this parameter is empty, the file size will fall back to \"Invalid\". (The response of GoogleDrive often hides this header.)\n\n- I couldn't connect to the target server through a socks5 proxy.\n\n  - Try \"socks5h\" as the protocol prefix instead. It will transmit the url to proxy server for parsing.\n\n- There exists some old bugs in my DriveDownloader.\n\n  - Try `pip install DriveDownloader --force-reinstall --upgrade` to update. We keep the latest version of DDL free from those bugs.\n\n- !{some string}: event not found\n\n  - Since bash can parse \"!\" from the url, single quotes(') should be added before and after the url when using bash.\n  \n    ```\n    ddl 'https://1drv.ms/t/s!ArUVoRxpBphY5U-a3JznLkLG1uEY?e=czbq1R' -o test_outputs/hello_od.txt\n    ```\n\n## Acknowledgement\n\nSome code of DriveDownloader is borrowed from [PyDrive2](https://github.com/iterative/PyDrive2) and [rich](https://github.com/Textualize/rich). Thanks for their wonderful jobs!\n\n## TODOs\n\n - [x] General downloader API - one class for downloading, and several inheritance classes to load the configurations.\n - [x] Support more netdrives - OneDrive for Business, Dropbox, ...\n - [x] Downloading files from a list.\n - [x] Multi-thread downloading.\n - [x] Resume downloading.\n - [ ] Folder downloading.\n - [ ] Window-based UI.\n - [ ] Quick Start.\n\n## Update Log\n\n### v1.6.0\n\n- Added automatic resume downloading.\n- Changed the progress bar manager to [rich](https://github.com/Textualize/rich).\n\n### v1.5.0\n\n- Solved the problem of \"not accessible\" when downloading a large file on Google Drive.\n- The input type (URL/FILELIST) is now automatically detected by the downloader, and `-l/--list` is deprecated.\n- The proxy server is now parsed from environmental variables, and `-p/--proxy` is deprecated.\n- Added the version option `-v/--version`.\n\n### v1.4.0\n\n- Supported Multi-thread and downloading from a list and a direct link.\n- Removed interactive mode.\n\n### v1.3.0\n\n- Supported Sharepoint and Dropbox.\n- Removed the deprecated fake-useragent.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwfan%2Fdrivedownloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhwfan%2Fdrivedownloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwfan%2Fdrivedownloader/lists"}