Skip to main content

Download Google Drive files/folders and upload them to the Internet Archive

Project description

IAdrive

Lint Unit Tests License Button PyPI Button

IAdrive is A tool for archiving google drive files/folders and uploading them to the Internet Archive, it downloads the google drive's content, makes the metadata, and then uploads to IA

  • this project is heavily based of off tubeup by bibanon, credits to them

Features

  • Downloads files and/or folders from Google Drive using gdown
  • Extract file modification dates to determine the creation date for the item
  • Pass custom metadata to Archive.org using --metadata=<key:value>
  • Supports quiet mode (--quiet) and debug mode (--debug) for log output
  • Automatically cleans up downloaded files after upload
  • Sanitizes identifiers and truncates subject tags to fit Archive.org requirements
  • Falls back to "IAdrive" as publisher since Google Drive collaborators fetching is not yet implemented
  • Improved error handling and debug output

Installation

Requires Python 3.9 or newer

pip install iadrive

The package makes a console script named iadrive once installed, You can also install from the source using pip install .

Configuration

ia configure

You're gonna be prompted to enter your IA account's email and password

Optional envs:

  • GOOGLE_API_KEY – if set, the tool attempts to look up the owner names of the Google Drive file or folder for the creator field in metadata (not yet implemented)

Usage

iadrive <url> [--metadata=<key:value>...] [--quiet] [--debug]

Arguments:

  • <url> – Google Drive file or folder URL to mirror (required)

Options:

  • --metadata=<key:value> – custom metadata to add to the Archive.org item (can be used multiple times)
  • --quiet – only print errors
  • --debug – print all logs to stdout (for troubleshooting)

Example:

iadrive https://drive.google.com/drive/folders/placeholder --metadata=collection:mycol \
        --metadata=mediatype:data --debug

How it works

  1. iadrive uses gdown to fetch the specified Google Drive file or folder
  2. It walks the downloaded directory and extracts file extensions and modification dates
  3. Metadata is assembled including a file listing (with sizes), oldest file modification date, and original URL. Identifiers are sanitized and subject tags are truncated to fit Archive.org requirements. Publisher defaults to "IAdrive" since collaborator fetching is not yet implemented.
  4. The directory is uploaded to an Archive.org item using the internetarchive library with a fixed identifier format drive-{drive-id}, collection opensource, and mediatype data
  5. Downloaded files are automatically cleaned up after upload
  6. Errors are handled gracefully, and debug output is available with --debug

To-do list

  • Google Drive collaborator fetching to use as creator metadata through the Google API

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

iadrive-1.0.1.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iadrive-1.0.1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file iadrive-1.0.1.tar.gz.

File metadata

  • Download URL: iadrive-1.0.1.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for iadrive-1.0.1.tar.gz
Algorithm Hash digest
SHA256 6d6a996974d650b80375b969658b573d328d8223fa19bad78ccf365e0830f1d0
MD5 07fb1cf4418fa9e0c88f6ab64cc73341
BLAKE2b-256 bc001f8ebea0d555f596901e8878049822b9a9c17e8af0ce4a52dcf3dcb15e6b

See more details on using hashes here.

File details

Details for the file iadrive-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: iadrive-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for iadrive-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b5a04f736019477b7bb04cbc244e51f472df2b4fab327dcbdb6b88adb88dd62b
MD5 cc6e228f44b00b71afc737573dab7c2a
BLAKE2b-256 ff8d9061b002ce5f644557be89d14aeddf3498e7a9c990bcedfc2cb1c594d5a4

See more details on using hashes here.

Supported by

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