{"id":19704947,"url":"https://github.com/fspv/google-drive-sync","last_synced_at":"2026-06-12T00:31:40.278Z","repository":{"id":144122856,"uuid":"597495799","full_name":"fspv/google-drive-sync","owner":"fspv","description":"Synchronize local files to corresponding Google Drive locations","archived":false,"fork":false,"pushed_at":"2023-02-04T22:01:28.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-11T16:48:12.333Z","etag":null,"topics":["google-drive-api"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fspv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-02-04T18:19:25.000Z","updated_at":"2023-02-04T18:21:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"7afc76e8-21c9-4086-ac86-2a8fd29143a9","html_url":"https://github.com/fspv/google-drive-sync","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fspv/google-drive-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fspv%2Fgoogle-drive-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fspv%2Fgoogle-drive-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fspv%2Fgoogle-drive-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fspv%2Fgoogle-drive-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fspv","download_url":"https://codeload.github.com/fspv/google-drive-sync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fspv%2Fgoogle-drive-sync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34224103,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["google-drive-api"],"created_at":"2024-11-11T21:25:21.193Z","updated_at":"2026-06-12T00:31:40.245Z","avatar_url":"https://github.com/fspv.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Synchronize local files to corresponding Google Drive locations.\n\nThe app is currently best effort and fails loudly in case things went wrong.\n\nThe synchronization works both ways and is based on file timestamps. Whichever file has the largest modified time wins and get synchronized. Having that in mind - beware of data races and race conditions. Not suitable for data that might be edited from multiple places simultaneously.\n\nInstallation\n============\n\nInstall google api client\n```\npip install google-api-python-client\n```\n\nAuth is a tricky part here. The best I managed to come up so far is:\n```\ngcloud auth revoke\ngcloud auth login --enable-gdrive-access\nexport GOOGLE_APPLICATION_CREDENTIALS=${HOME}/.config/gcloud/legacy_credentials/\u003cemail\u003e/adc.json\n```\nLet me know if there is an easier way.\n\nRunning\n=======\n\nUsage:\n```\n$ python3 google-drive-sync.py --help\nusage: google-drive-sync.py [-h] -s SYNC [SYNC ...] [-i INTERVAL]\n\nSynchronise specified files the with corresponding Google Drive documents\n\noptions:\n  -h, --help            show this help message and exit\n  -s SYNC [SYNC ...], --sync SYNC [SYNC ...]\n                        Local file path and Google Drive file id separated by comma\n  -i INTERVAL, --interval INTERVAL\n                        How often to check for changes (in seconds)\n```\n\nExample:\n```\n./google-drive-sync.py -s test.txt,1xX-XXXXXXXX_YYYYYYYY -s test2.txt,AAAAAAAAAA_BBBBBBBBBB -i 30\n```\n\nTODO\n====\n\n- [ ] Make async to support syncing many files in parallel\n- [ ] Introduce inotify + subscribe to Google Drive notifications to avoid busy-waiting for changes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffspv%2Fgoogle-drive-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffspv%2Fgoogle-drive-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffspv%2Fgoogle-drive-sync/lists"}