{"id":18824496,"url":"https://github.com/evanhalley/takeout-express","last_synced_at":"2026-01-20T04:30:17.171Z","repository":{"id":57621081,"uuid":"527269430","full_name":"evanhalley/takeout-express","owner":"evanhalley","description":"Node CLI tool to transfer your Google Takeout backup from Drive","archived":false,"fork":false,"pushed_at":"2022-09-10T20:40:31.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-29T11:10:00.287Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/evanhalley.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}},"created_at":"2022-08-21T16:54:52.000Z","updated_at":"2022-08-26T00:38:13.000Z","dependencies_parsed_at":"2022-09-10T23:54:55.462Z","dependency_job_id":null,"html_url":"https://github.com/evanhalley/takeout-express","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evanhalley%2Ftakeout-express","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evanhalley%2Ftakeout-express/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evanhalley%2Ftakeout-express/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evanhalley%2Ftakeout-express/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evanhalley","download_url":"https://codeload.github.com/evanhalley/takeout-express/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239763519,"owners_count":19692786,"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":[],"created_at":"2024-11-08T00:56:38.360Z","updated_at":"2026-01-20T04:30:17.076Z","avatar_url":"https://github.com/evanhalley.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Takeout Express\n\ntakeout-express is a command line interface tool, written with Nodejs, that downloads your Google Takeout backup from Google Drive. It utilizes worker threads to download more than one archive file at a time that may speed up the time it takes to finish your download.\n## Install\n\nYou must have Nodejs v14.14+ to execute takeout-express.\n\nRun `npm install -g takeout-express` to install.\n\nYou can also download and install `takeout-express` from source.\n\n1. Clone this repository (`git clone git@github.com:evanhalley/takeout-express.git`).\n2. Execute `cd takeout-express`.\n3. Run `npm install` to install the dependencies.\n4. Install takeout-express locally running `npm link`.\n5. Execute `takeout-express --version` and verify a version number is printed to the terminal.\n\n## Setup\n\nGetting takeout-express ready to run is a two-step process.\n\n### Authorization\n\ntakeout-express needs access to your Google Drive account to download your Google Takeout archive.  \n\n1.  Visit the [Google Cloud platform console](https://console.cloud.google.com/) to setup an API project.\n2. Enable the [Google Drive API](https://console.cloud.google.com/apis/library).\n3. Create `OAuth client ID` credentials.\n  * Application type: Web application\n  * Name: takeout-express\n4. Download the resulting JSON file.\n5. In your home directory, create a hidden folder called `.takeout-express`.  Save the credentials file in your hidden folder as `credential.json`.\n6. Open a terminal window and execute `takeout-express auth`.  A URL will be printed in the terminal window\n\n```\nOpen the following URL in a web browser:\n\nhttps://accounts.google.com/o/oauth2/v2/auth?access_type=offline\u0026scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.metadata.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly\u0026response_type=code\u0026client_id=...\u0026redirect_uri=...\n\nAfter authorization, copy the code from the resulting URL and execute:\n\ntakeout-express init [authorization code]\n```\n\n7. Sign in to your Google account and grant takeout-express the requested access.  You'll then be directed to a non-existant page (localhost).  The `authorization_code` will be in the URL bar in your browser.  Copy that value to your clipboard.\n\n### Initialization\n\n8. Return to your terminal window and execute `takeout-express init [authorization_code]`.  This will initialize takeout-express to have permanent access to your Google Drive account, by saving a series of tokens to `.takeout-express/token.json`.  You can remove this file at any time to terminate takeout-express' access to your Google Drive account.\n\nAfter completing these steps, you can run takeout-express.\n\n## Usage\n\n```\nUsage: takeout-express download [options] \u003cresource\u003e\n\nOptions:\n  -o, --output-dir \u003coutput directory\u003e   Directory to download the files\n  -w, --worker-threads \u003cbatch size\u003e     Number of threads downloading files (default: \"5\")\n  -c, --credentials \u003ccredentials file\u003e  Credentials JSON file (default: \"[/home_directory]/.takeout-express/credentials.json\")\n  -t, --token \u003ctoken file\u003e              Token (default: \"[/home_directory]/.takeout-express/token.json\")\n  -h, --help                            display help for command\n\n```\n\n`\u003cresource\u003e` is the Google Drive ID of the folder containing your Google Takeout archive.  For example, for the following URL in Google Drive (when viewing my Google Takeout archive):\n\n```\nhttps://drive.google.com/drive/folders/kljahakjhsd98as-324-sadf-23ads\n```\n\nThe `resource` value is `kljahakjhsd98as-324-sadf-23ads`.\n\nExecuting the following command will download the Google Takeout archive with the ID `kljahakjhsd98as-324-sadf-23ads`.\n\n```\ntakeout-express download \\\n  --output-dir my-archive/ \\\n  kljahakjhsd98as-324-sadf-23ads\n```\n\nDepending on the size of your archive, your internet connection, and the speed of your storage device, it may take takeout-express a few hours to days to download your archive. By default, takeout-express will use 5 threads to download 5 files in parallel at a time.  You can increase (or decrease) this value with the `--worker-threads` parameter to fit your situation.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevanhalley%2Ftakeout-express","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevanhalley%2Ftakeout-express","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevanhalley%2Ftakeout-express/lists"}