{"id":22927510,"url":"https://github.com/kpym/gotoextr","last_synced_at":"2026-03-04T21:34:51.259Z","repository":{"id":172826876,"uuid":"649808044","full_name":"kpym/gotoextr","owner":"kpym","description":"Google Takeout Location History extractor to various formats: gpx, kml, tcx, csv, nmea.","archived":false,"fork":false,"pushed_at":"2024-12-18T13:37:17.000Z","size":24,"stargazers_count":4,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-01T00:25:49.974Z","etag":null,"topics":["csv","geotagging","google-takeout","gpx","json-parsing","kml","nmea0183","tcx"],"latest_commit_sha":null,"homepage":"","language":"Go","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/kpym.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,"zenodo":null}},"created_at":"2023-06-05T17:21:58.000Z","updated_at":"2024-12-18T13:37:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"4c50e7ac-43e1-4dd6-8306-e31ad84a2586","html_url":"https://github.com/kpym/gotoextr","commit_stats":null,"previous_names":["kpym/hist2gpx","kpym/hist2geo","kpym/gotoextr"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/kpym/gotoextr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpym%2Fgotoextr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpym%2Fgotoextr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpym%2Fgotoextr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpym%2Fgotoextr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kpym","download_url":"https://codeload.github.com/kpym/gotoextr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpym%2Fgotoextr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30094004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T20:42:30.420Z","status":"ssl_error","status_checked_at":"2026-03-04T20:42:30.057Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["csv","geotagging","google-takeout","gpx","json-parsing","kml","nmea0183","tcx"],"created_at":"2024-12-14T09:14:49.207Z","updated_at":"2026-03-04T21:34:51.229Z","avatar_url":"https://github.com/kpym.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gotoextr\r\nSmall and dirty program to extract GPX data from [Google Takeout Location History](https://takeout.google.com/settings/takeout/custom/location_history). \r\n\r\nHence the name: **Go**ogle **T**ake**o**ut Location History **Extr**actor → `gotoextr`.\r\n\r\n## Usage\r\n\r\n### After 2024\r\n\r\n1. Download your location history from your phone : Settin → Location → Location Services → Time Line →  Export Timeline Data.\r\n2. Run `gotoextr` with the downloaded .json file as argument. For example to extract data for January 1, 2025 run:\r\n```bash\r\ngotoextr -s 2025-01-01 myhistory.json\r\n```\r\n\r\n### Before 2024\r\n\r\n1. Download your location history from [Google Takeout](https://takeout.google.com/settings/takeout/custom/location_history) as `zip` archive.\r\n2. Run `gotoextr` with the downloaded archive as argument. For example to extract data for January 1, 2023 run:\r\n```bash\r\ngotoextr -s 2023-01-01 takeout-20230501T000000Z-001.zip\r\n``` \r\nThe output will be written to the file `history_2023-01-01.gpx`.\r\n\r\nYou can also manually extract `Records.json` and use it as parameter. Once extracted this file is quite big (several hundred MB).\r\n\r\n### Help message\r\n\r\n```\r\n$ gotoextr.exe -h\r\ngotoextr [version: x.y.z] extract history data from Google Location History.\r\n\r\nUsage:\r\n  gotoextr [-h] -s \u003cstart\u003e [options] \u003cinput\u003e\r\n\r\nOptions:\r\n  -h --help              Show this screen.\r\n  -s \u003cstart\u003e             Start date in YYYY-MM-DD format\r\n  -e \u003cend\u003e               End date in YYYY-MM-DD format [default: \u003cstart\u003e]\r\n  -a \u003caccuracy\u003e          Keeps only locations with accuracy less than \u003caccuracy\u003e meters [default: 40]\r\n  -t \u003ctp\u003e                New track if coordinates have less than \u003ctp\u003e digits in common [default: 1]  \r\n  -g \u003csp\u003e                New segment if coordinates have less than \u003csp\u003e digits in common [default: 2]\r\n  -f \u003cformat\u003e            Output format (gpx|kml|tcx|csv|nmea) [default: gpx]\r\n  -o \u003coutput\u003e            Output file name [default: history_\u003cstart\u003e_\u003cend\u003e.\u003cformat\u003e]\r\n  \u003cinput\u003e                Input file name (zip or json)\r\n\r\nExamples:\r\n  gotoextr -s 2012-01-01 -e 2012-01-31 -a 40 takeout.zip\r\n```\r\n\r\n## Installation\r\n\r\nYou can download the latest binary from the [releases](github.com/kpym/gotoextr/releases) page.\r\n\r\nOr you can install it from source:\r\n```bash\r\ngo install github.com/kpym/gotoextr@latest\r\n```\r\n\r\n## Why? \r\n\r\nI use my travel history to geotag my photos. I often use a tracking application to record my positions, but occasionally (often?) I forget to launch it. In this case, Google Takeout (Location history) helps me by extracting my tracks in GPX format.\r\n\r\n## How does it work?\r\n\r\nThis program reads the location history data from a json file and extracts the data for a given date range. The json format exported from the phone is not the same as the one from Google Takeout, but the program can handle both.\r\n\r\nFor more details on the format of the json file, check the [file format](file_format.md) description.\r\n\r\n## Inspiration\r\n\r\nThis software is strongly inspired by [location-history-json-converter](https://github.com/Scarygami/location-history-json-converter) 🙏. But since the python application is rather slow, I decided to make one in go that is about  10x faster. The original application is also more complete, I only implemented the features I needed.\r\n\r\n## License\r\n\r\n[MIT](LICENSE)\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpym%2Fgotoextr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkpym%2Fgotoextr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpym%2Fgotoextr/lists"}