{"id":13495548,"url":"https://github.com/gilesknap/gphotos-sync","last_synced_at":"2026-07-09T22:30:21.712Z","repository":{"id":37550116,"uuid":"98652766","full_name":"gilesknap/gphotos-sync","owner":"gilesknap","description":"Google Photos and Albums backup with Google Photos Library API","archived":true,"fork":false,"pushed_at":"2024-10-04T21:48:00.000Z","size":29106,"stargazers_count":2050,"open_issues_count":15,"forks_count":172,"subscribers_count":40,"default_branch":"main","last_synced_at":"2025-02-09T09:12:18.217Z","etag":null,"topics":["albums","backup","google","google-photos","google-photos-albums","google-photos-backup","google-photos-library-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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gilesknap.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":".github/CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-28T13:35:07.000Z","updated_at":"2025-02-06T15:48:10.000Z","dependencies_parsed_at":"2023-02-18T23:45:56.367Z","dependency_job_id":"25578b5f-002c-4d27-9980-2640b51a465c","html_url":"https://github.com/gilesknap/gphotos-sync","commit_stats":{"total_commits":619,"total_committers":41,"mean_commits":"15.097560975609756","dds":0.5250403877221325,"last_synced_commit":"8a6fdb0b740da3ad1de81093344f475e68c195b3"},"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilesknap%2Fgphotos-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilesknap%2Fgphotos-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilesknap%2Fgphotos-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilesknap%2Fgphotos-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gilesknap","download_url":"https://codeload.github.com/gilesknap/gphotos-sync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240503538,"owners_count":19812015,"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":["albums","backup","google","google-photos","google-photos-albums","google-photos-backup","google-photos-library-api","photos","python","python3"],"created_at":"2024-07-31T19:01:35.776Z","updated_at":"2026-07-09T22:30:21.679Z","avatar_url":"https://github.com/gilesknap.png","language":"Python","funding_links":[],"categories":["Python","google"],"sub_categories":[],"readme":"So long and thanks for all the contributions!\n=============================================\n\nThis project was archived on Oct 4th 2024\n-----------------------------------------\nFor the details behind this decision please see https://github.com/gilesknap/gphotos-sync-discussion/discussions/1\n\n---------------------------------------------------------------\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n---------------------------------------------------------------\n\n\nGoogle Photos Sync (gphotos-sync)\n=================================\n\n|code_ci| |docs_ci| |coverage| |pypi_version| |license|\n\nGoogle Photos Sync is a backup tool for your Google Photos cloud storage.\n\n============== ==============================================================\nPyPI           ``pip install gphotos-sync``\nSource code    https://github.com/gilesknap/gphotos-sync\nDocumentation  https://gilesknap.github.io/gphotos-sync\nReleases       https://github.com/gilesknap/gphotos-sync/releases\n============== ==============================================================\n\nIntro\n=====\nGoogle Photos Sync downloads all photos and videos the user has uploaded to\nGoogle Photos. It also organizes the media in the local file system using\nalbum information. Additional Google Photos 'Creations' such as\nanimations, panoramas, movies, effects and collages are also backed up.\n\nThis software is read only and never modifies your cloud library in any way,\nso there is no risk of damaging your data.\n\nWARNING: Index DB Schema Change\n===============================\n\n3.2.4 introduces a change to the index database schema in order to distinguish between\nprivate albums and shared albums. You will be required to rebuild your index\ndatabase when upgrading to this version or later.\n\nPlease use the command line option ``--flush-index`` to rebuild the index database.\n\nThis need only be done for the first invocation of the new version.\n\nIf you have not done so you will see the error message:\n\n``sqlite3.OperationalError: no such column: IsSharedAlbum``\n\n\nWarning: Google API Issues\n==========================\n\nThere are a number of long standing issues with the Google Photos API that mean it is not possible\nto make a true backup of your media. In particular:\n\n- Videos are transcoded to lower quality\n- Raw or Original photos are converted to 'High Quality'\n- GPS info is removed from photos metadata\n\nFor details of the Bugs reported to Google see https://github.com/gilesknap/gphotos-sync/issues/119.\n\nTo join in a discussion on this issue see https://github.com/gilesknap/gphotos-sync/discussions/347.\n\n\nQuick Start\n===========\n\nTo get started see `Tutorial \u003chttps://gilesknap.github.io/gphotos-sync/main/tutorials/installation.html\u003e`_\n\n\n.. |code_ci| image:: https://github.com/gilesknap/gphotos-sync/workflows/Code%20CI/badge.svg?branch=main\n    :target: https://github.com/gilesknap/gphotos-sync/actions?query=workflow%3A%22Code+CI%22\n    :alt: Code CI\n\n.. |docs_ci| image:: https://github.com/gilesknap/gphotos-sync/workflows/Docs%20CI/badge.svg?branch=main\n    :target: https://github.com/gilesknap/gphotos-sync/actions?query=workflow%3A%22Docs+CI%22\n    :alt: Docs CI\n\n.. |coverage| image:: https://codecov.io/gh/gilesknap/gphotos-sync/branch/main/graph/badge.svg\n    :target: https://codecov.io/gh/gilesknap/gphotos-sync\n    :alt: Test Coverage\n\n.. |pypi_version| image:: https://img.shields.io/pypi/v/gphotos-sync.svg\n    :target: https://pypi.org/project/gphotos-sync\n    :alt: Latest PyPI version\n\n.. |license| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg\n    :target: https://opensource.org/licenses/Apache-2.0\n    :alt: Apache License\n\n..\n    Anything below this line is used when viewing README.rst and will be replaced\n    when included in index.rst\n\nSee https://gilesknap.github.io/gphotos-sync for more detailed documentation.\n\nAlternatives\n============\n\nFor a commercial product that backs up your library to the cloud see:\nSee https://photovaultone.com/\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgilesknap%2Fgphotos-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgilesknap%2Fgphotos-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgilesknap%2Fgphotos-sync/lists"}