{"id":44485018,"url":"https://github.com/vchilikov/takeoutfix","last_synced_at":"2026-02-17T01:04:38.360Z","repository":{"id":336833721,"uuid":"1151263657","full_name":"vchilikov/takeoutfix","owner":"vchilikov","description":"CLI tool to fix Google Photos Takeout exports: restore photo/video metadata and normalize filenames for easy migration.","archived":false,"fork":false,"pushed_at":"2026-02-13T00:31:31.000Z","size":148,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-13T09:10:20.635Z","etag":null,"topics":["cli","exif","exiftool","go","golang","google-photos","google-takeout","googlephoto","googlephotos","googletakeout","metadata","photo-migration","takeout"],"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/vchilikov.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-06T08:50:47.000Z","updated_at":"2026-02-12T23:39:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vchilikov/takeoutfix","commit_stats":null,"previous_names":["vchilikov/takeout-fix","vchilikov/takeoutfix"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/vchilikov/takeoutfix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchilikov%2Ftakeoutfix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchilikov%2Ftakeoutfix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchilikov%2Ftakeoutfix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchilikov%2Ftakeoutfix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vchilikov","download_url":"https://codeload.github.com/vchilikov/takeoutfix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchilikov%2Ftakeoutfix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29528292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T00:57:22.232Z","status":"ssl_error","status_checked_at":"2026-02-17T00:54:25.811Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["cli","exif","exiftool","go","golang","google-photos","google-takeout","googlephoto","googlephotos","googletakeout","metadata","photo-migration","takeout"],"created_at":"2026-02-13T01:51:54.737Z","updated_at":"2026-02-17T01:04:38.351Z","avatar_url":"https://github.com/vchilikov.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TakeoutFix\n\nMove your Google Photos library without losing important metadata.\nTakeoutFix processes Google Takeout ZIP files and restores fields like capture date, location, and description.\n\n[English](README.md) · [Русский](docs/README.ru.md) · [中文](docs/README.zh-CN.md) · [हिन्दी](docs/README.hi.md) · [Español](docs/README.es.md) · [Français](docs/README.fr.md) · [العربية](docs/README.ar.md) · [Deutsch](docs/README.de.md)\n\n## Why TakeoutFix\n\n- Keeps photo/video metadata that is often lost during migration.\n- Works directly with standard Google Takeout ZIP exports.\n- Guides you through a clear terminal flow from start to finish.\n- Built for regular users: no scripting required.\n\n## Quick Start (3 Steps)\n\n1. Export your Google Photos archive from Google Takeout as ZIP files.\n2. Put all `*.zip` files into one local folder.\n3. Open a terminal in that folder and run the recommended command below.\n\n## Run (Recommended)\n\nRun directly in the folder with your Takeout ZIP files.\n\nmacOS/Linux:\n\n```bash\ncurl -fsSL https://github.com/vchilikov/takeout-fix/releases/latest/download/install.sh | sh\n```\n\nWindows (PowerShell):\n\n```powershell\niwr -useb https://github.com/vchilikov/takeout-fix/releases/latest/download/install.ps1 | iex\n```\n\n## Manual Run (Optional)\n\nUse this only if you do not want the one-liner installer.\n\n1. Download the latest binary for your OS from [GitHub Releases](https://github.com/vchilikov/takeout-fix/releases).\n2. Run it in the folder that contains your Takeout ZIP files.\n\nmacOS/Linux:\n\n```bash\n./takeoutfix\n./takeoutfix --workdir /path/to/folder\n```\n\nWindows (PowerShell):\n\n```powershell\n.\\takeoutfix.exe\n.\\takeoutfix.exe --workdir C:\\path\\to\\folder\n```\n\n## What You Get\n\nAfter a successful run:\n\n- Your processed media is ready in `./takeoutfix-extracted/Takeout`.\n- Metadata is applied to supported photos and videos.\n- JSON `Tags` are written to `Keywords` and `Subject`.\n- If the JSON capture timestamp is missing or invalid and the filename starts with `YYYY-MM-DD HH.MM.SS`, the date is restored from the filename.\n- A detailed run report is saved to `./.takeoutfix/reports/report-YYYYMMDD-HHMMSS.json`.\n- You can upload `./takeoutfix-extracted/Takeout` to your new storage.\n\n## Common Issues\n\n- `No ZIP files or extracted Takeout data found in this folder.`\n  - Place Takeout ZIP parts in the folder root, or run from a folder that already contains extracted Takeout content.\n- `Some ZIP files are corrupted. Please re-download them and run again.`\n  - Re-download broken archive parts from Google Takeout, then rerun.\n- `Step 1/3: Checking dependencies... missing`\n  - Use the recommended one-liner command above, or install `exiftool` manually and rerun.\n- `Not enough free disk space to continue.`\n  - Free up disk space and rerun.\n- macOS says the app is not verified\n  - Remove quarantine and run again:\n    ```bash\n    xattr -d com.apple.quarantine ./takeoutfix\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvchilikov%2Ftakeoutfix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvchilikov%2Ftakeoutfix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvchilikov%2Ftakeoutfix/lists"}