Skip to main content

Download files from Google Drive (inclusive of teamdrives, shared with me and my drive) concurrently.

Project description

PyPI version

drivedl

This is a CLI tool for concurrent downloads of directories in any drive type. (My Drive, Team Drive or Shared with me)

The tool requires the 'https://www.googleapis.com/auth/drive' scope as of now. This scope can be tightened since all that the script needs is permission to traverse and download data from the drives. Feel free to PR a different scope if it is more relevant

Installation:

  • Install the binary through PyPI using the following command:
$ pip install drivedl

Pre-requisites:

  • Download credentials.json for a Desktop drive application. Instructions on how to get that can be found here (refer to Step 1)
  • Save the credentials.json file in the same directory as drivedl.py
  • Install the Drive API for python by running the following command:
$ pip install -r requirements.txt

Usage:

$ python drivedl.py <folder_id / file_id> <path_to_save>

It is as straightforward as that!

Note that on the first run, you will have to authorize the scope of the application. This is pretty straightforward as well!

Skipping existing files:

Adding an argument --skip to your command will skip existing files and not redownload them.

  • By default the behaviour is to download everything without skipping.

Assigning extra processes:

Adding an argument --proc followed by an integer of processes to assign the application will spawn the specified processes to do the download

  • Example: --proc 10 for 10 processes

Downloading using process map instead of an iterated map:

Adding an argument --noiter tells the program to download via process.map instead of process.imap_unordered. This lets you download faster with the drawback of no process bar being shown because of no iterable item. Recommended to be used if speed is of essence.

Add extra accounts:

Run the following command to add a new account. (Adding an account means that it will also be searched when using drivedl)

$ python drivedl.py --add

You will have to authorize the scope of the application for the new account as well. The token will automatically be saved for future uses once permission is granted!

Searches:

If you add --search to your command, you can search for the folder name using keywords instead of using the folder link or the folder ID. This searches through all drives in all registered accounts and gives a maximum of 10 results per drive. There is no cap on the global maximum results. The search is limited to folders and will not index loose files.

An example of usage is as follows:

$ python drivedl.py "avengers endgame" --search "D:/Google Drive Downloads"

This also works with default path configurations (stated below).

Default Path [Optional]

$ python drivedl.py --path <default_path>

This lets you specify a default path for your download location.

Debugging:

Adding --debug writes a log file once the entire task is completed so that any issues can be documented. This is helpful while making GitHub issues to pinpoint issues with the script.

TODO:

  • Add URL parsing
  • Add default path
  • Single file download support
  • Color support
  • Multi-Account support
  • Skip existing files
  • Search functionality
  • Functionality to download docs

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

drivedl-1.2.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

drivedl-1.2-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file drivedl-1.2.tar.gz.

File metadata

  • Download URL: drivedl-1.2.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.1

File hashes

Hashes for drivedl-1.2.tar.gz
Algorithm Hash digest
SHA256 081f258c2bd7b5ae11d9495b2d37de5c1266ae9d2db3b8cd221cff948a135bb9
MD5 ef6ad145c9759d01a9faaeaed79a69af
BLAKE2b-256 5750d51fd8ff7f51b0e1fee74810584c2fcc340a4b1beaa22b4b51465724ea36

See more details on using hashes here.

File details

Details for the file drivedl-1.2-py3-none-any.whl.

File metadata

  • Download URL: drivedl-1.2-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.1

File hashes

Hashes for drivedl-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cd78775789ceec147a22cb4c900f54ae1d9c6e8d8d0c31b533f5316dc1d742d2
MD5 e87e9f03ed892eceaeca7ac41148bec7
BLAKE2b-256 b0a70d4a3dbd4b4ca13fe76c8c8316208c4f0a981ea978c8d617b77400be3de1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page