{"id":13586061,"url":"https://github.com/NicholasDawson/ArchiverForGooglePhotos","last_synced_at":"2025-04-07T14:33:22.873Z","repository":{"id":41483894,"uuid":"231847508","full_name":"NicholasDawson/ArchiverForGooglePhotos","owner":"NicholasDawson","description":"A tool to maintain an archive/mirror of your Google Photos library for backup purposes.","archived":false,"fork":false,"pushed_at":"2023-12-25T10:56:48.000Z","size":158640,"stargazers_count":173,"open_issues_count":19,"forks_count":26,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-02-13T21:22:05.852Z","etag":null,"topics":["archiver","backup","cli","downloader","google","google-photos","google-photos-api","photos","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NicholasDawson.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-01-05T00:27:31.000Z","updated_at":"2024-08-01T16:32:16.003Z","dependencies_parsed_at":"2024-08-01T16:32:03.960Z","dependency_job_id":"d17e077d-b679-4d4e-b227-c0e60df60e2b","html_url":"https://github.com/NicholasDawson/ArchiverForGooglePhotos","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasDawson%2FArchiverForGooglePhotos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasDawson%2FArchiverForGooglePhotos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasDawson%2FArchiverForGooglePhotos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasDawson%2FArchiverForGooglePhotos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicholasDawson","download_url":"https://codeload.github.com/NicholasDawson/ArchiverForGooglePhotos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247670365,"owners_count":20976551,"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":["archiver","backup","cli","downloader","google","google-photos","google-photos-api","photos","python","python3"],"created_at":"2024-08-01T15:05:18.216Z","updated_at":"2025-04-07T14:33:22.546Z","avatar_url":"https://github.com/NicholasDawson.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Google Photos Archiver\n[![build-exe](https://github.com/NicholasDawson/ArchiverForGooglePhotos/actions/workflows/build-exe.yml/badge.svg)](https://github.com/NicholasDawson/ArchiverForGooglePhotos/actions/workflows/build-exe.yml)\n\n# Instructions:\n1. Download the script (exe or python script listed below)\n2. Follow the [instructions](INSTRUCTIONS.md)\n3. Reference the command guide below to learn the different commands available to you.\n\nIf you need assistance or want to report an issue fill out an [Issue Report](https://github.com/NicholasDawson/ArchiverForGooglePhotos/issues) or email me `github (at) ndawson.me`\n\n# [Downloads](https://github.com/NicholasDawson/ArchiverForGooglePhotos/releases)\n\u003e If you are unfamiliar with python or computers in general I recommend you download an executable as it will not require any special installation.\n\n## Python Script\nIf you are familiar with python, just download the [source code](https://github.com/NicholasDawson/ArchiverForGooglePhotos/releases)\n\nInstall [pipenv](https://pipenv-fork.readthedocs.io/en/latest/install.html)\n`pip install pipenv`\n\nInstall dependencies using pipenv\n`pipenv install`\n\n# Commands\n\u003e This guide assumes you have downloaded Google API Credentials and have them saved in some location on your computer, if you have no idea what this is please follow the [instructions](INSTRUCTIONS.md)\n\n## Usage:\n```\nusage: gparch_cli.py [-h] [-c CREDENTIALS] [-t THREADS] [-a] [-s] [-f] [directory]\n\n- If no directory arg is provided the program will default to the current working directory.\n- If no credentials are provided the program will search for 'credentials.json' in the directory.\n- If no download options are provided, the program will download everything.\n- The program automatically skips downloading existing files so running the program with any download option after downloading items already will update everything without re-downloading or deleting existing media. It will only ensure everything is downloaded from Google Photos.\n\npositional arguments:\n  directory             directory where your photo library is saved\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -c CREDENTIALS, --credentials CREDENTIALS\n                        path to Google Cloud OAuth2 Credentials (default: {CURRENT_DIR}/credentials.json)\n  -t THREADS, --threads THREADS\n                        amount of threads to use when downloading media items (default: 8)\n  -d, --debug           enables debugging mode\n  -a, --albums          download all albums YOU have created\n  -s, --shared          download all shared albums (with you/from you)\n  -f, --favorites       download all media from your library that is marked as favorite\n```\n\n## Important Note:\nIn the following examples I will be using `gparch_cli` to run the program for readability. I am listing below all the different ways you may have to run the program to get it to work on your system.\n\n### Executable (in the same directory or in PATH)\nCommand Prompt: `gparch_cli`\nPowerShell: `./gparch_cli`\n\n### Python Script (in the same directory or in PATH)\nWindows: `py gparch_cli.py`\nLinux/Mac: `python3 gpararch_cli.py`\n\n\n## Examples\nGet Help\n`gparch_cli --help`\n\nDownload everything from your library in the current directory with the credentials file in the current directory named `credentials.json`\n`gparch_cli`\n\nDownload everything from your library to a specific directory\n`gparch_cli example_directory/google_photos_folder`\n\nDownload everything from your library to a specific directory and specify where your credentials file is\n`gparch_cli example_directory/google_photos_folder -c example_directory/creds.json`\n\nDownload just your albums\n`gparch_cli -a`\n\nDownload just your shared albums\n`gparch_cli -s`\n\nDownload just your favorited items\n`gparch_cli -f`\n\nSpecify the amount of threads you want to download with to be 12:\n`gparch_cli -t 12`\n\nYou can combine any of the following commands to do what you specifically want.\n- If no directory arg is provided the program will default to the current working directory.\n- If no credentials are provided the program will search for 'credentials.json' in the directory.\n- If no download options are provided, the program will download everything.\n- The program automatically skips downloading existing files so running the program with any download option after downloading items already will update everything without re-downloading or deleting existing media. It will only ensure everything is downloaded from Google Photos.\n\n## Contributors\n### Loading Environment\nInstall `pipenv` using `pip install pipenv` then in this repo's root directory type:\n`pipenv install` to build the virtual environment.\n\n### Building Executable\nRun `py cxfreeze_setup.py build`\n\nAn executable built for your system will appear in the build directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNicholasDawson%2FArchiverForGooglePhotos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNicholasDawson%2FArchiverForGooglePhotos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNicholasDawson%2FArchiverForGooglePhotos/lists"}