{"id":28194679,"url":"https://github.com/xob0t/gotohp","last_synced_at":"2026-01-24T11:35:38.846Z","repository":{"id":293437290,"uuid":"980915285","full_name":"xob0t/gotohp","owner":"xob0t","description":"Unofficial Google Photos Desktop GUI Client","archived":false,"fork":false,"pushed_at":"2025-11-09T21:55:12.000Z","size":1764,"stargazers_count":106,"open_issues_count":2,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-11-09T22:21:31.532Z","etag":null,"topics":["cross-platform","google-photos","gui","reverse-engineering","unlimited-storage","unofficial","uploader","wails3"],"latest_commit_sha":null,"homepage":"","language":"Vue","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/xob0t.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":"2025-05-10T00:17:09.000Z","updated_at":"2025-11-09T21:55:15.000Z","dependencies_parsed_at":"2025-05-15T10:40:39.607Z","dependency_job_id":"896078f4-6a71-41e1-8a42-4261ef107904","html_url":"https://github.com/xob0t/gotohp","commit_stats":null,"previous_names":["xob0t/gotohp"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/xob0t/gotohp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xob0t%2Fgotohp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xob0t%2Fgotohp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xob0t%2Fgotohp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xob0t%2Fgotohp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xob0t","download_url":"https://codeload.github.com/xob0t/gotohp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xob0t%2Fgotohp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28726797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: 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":["cross-platform","google-photos","gui","reverse-engineering","unlimited-storage","unofficial","uploader","wails3"],"created_at":"2025-05-16T13:12:36.187Z","updated_at":"2026-01-24T11:35:38.841Z","avatar_url":"https://github.com/xob0t.png","language":"Vue","funding_links":[],"categories":["gui"],"sub_categories":[],"readme":"# gotohp\n\n![demo](readme_assets/app_demo.webp)\n\nUnofficial Google Photos Desktop GUI Client\n\n- Unlimited uploads (can be disabled)\n- Drag-and-drop file upload interface\n- Credential management\n- Real-time upload progress tracking\n- Configurable upload threads\n- Individual files or directories uploads, with optional recursive scanning\n- Skips files already present in your account\n- CLI mode\n- Configurable, presistent upload settings (stored in \"%system config path%/gotohp/gotohp.config\")  \n    You can force local config by creating empty gotohp.config next to executable.\n\n## [Download](https://github.com/xob0t/gotohp/releases/latest)\n\n## CLI Usage\n\n### Windows\n\nWindows releases include a dedicated CLI executable (`gotohp-cli.exe`) for command-line usage:\n\n```cmd\ngotohp-cli.exe upload C:\\path\\to\\photos --recursive --threads 5\ngotohp-cli.exe creds list\ngotohp-cli.exe creds add \"androidId=...\"\ngotohp-cli.exe creds set user@gmail.com\ngotohp-cli.exe version\n```\n\n**Available commands:**\n\n- `upload \u003cfilepath\u003e` - Upload files or directories\n  - `-r, --recursive` - Include subdirectories\n  - `-t, --threads \u003cn\u003e` - Number of upload threads (default: 3)\n  - `-f, --force` - Force upload even if file exists\n  - `-d, --delete` - Delete from host after upload\n  - `-df, --disable-filter` - Disable file type filtering\n  - `-l, --log-level \u003clevel\u003e` - Set log level: debug, info, warn, error (default: info)\n  - `-c, --config \u003cpath\u003e` - Path to config file\n- `creds list` (alias: `ls`) - List all credentials\n- `creds add \u003cauth-string\u003e` - Add new credentials\n- `creds remove \u003cemail\u003e` (alias: `rm`) - Remove credentials\n- `creds set \u003cemail\u003e` (alias: `select`) - Set active credential (supports partial matching)\n- `version` - Show version information\n- `help` - Show help message\n\n### macOS / Linux\n\nThe main executable supports CLI mode:\n\n```bash\n./gotohp upload /path/to/photos --recursive --threads 5\n./gotohp creds list\n./gotohp version\n```\n\n## Requires mobile app credentials to work\n\nYou only need to do this once.\n\n### Option 1 - ReVanced. No root required\n\n1. Install Google Photos ReVanced on your android device/emulator.\n    - Install GmsCore [https://github.com/ReVanced/GmsCore/releases](https://github.com/ReVanced/GmsCore/releases)\n    - Install patched apk [https://github.com/j-hc/revanced-magisk-module/releases](https://github.com/j-hc/revanced-magisk-module/releases) or patch it yourself\n2. Connect the device to your PC via ADB.\n3. Open the terminal on your PC and execute\n\n    Windows\n\n    ```cmd\n    adb logcat | FINDSTR \"auth%2Fphotos.native\"\n    ```\n\n    Linux/Mac\n\n    ```shell\n    adb logcat | grep \"auth%2Fphotos.native\"\n    ```\n\n4. If you are already using ReVanced - remove Google Account from GmsCore.\n5. Open Google Photos ReVanced on your device and log into your account.\n6. One or more identical GmsCore logs should appear in the terminal.\n7. Copy text from `androidId=` to the end of the line from any log.\n8. That's it! 🎉\n\n### Option 2 - Official apk. Root required\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eClick to expand\u003c/strong\u003e\u003c/summary\u003e\n\n1. Get a rooted android device or an emulator. Recommended Android versions 9-13\n2. Connect the device to your PC via ADB.\n3. Install [HTTP Toolkit](https://httptoolkit.com)\n4. In HTTP Toolkit, select Intercept - `Android Device via ADB`. Filter traffic with\n\n    ```text\n    contains(https://www.googleapis.com/auth/photos.native)\n    ```\n\n    Or if you have an older version of Google Photos, try\n\n    ```text\n    contains(www.googleapis.com%2Fauth%2Fplus.photos.readwrite)\n    ```\n\n5. Open Google Photos app and login with your account.\n6. A single request should appear.  \n   Copy request body as text.\n\n#### Troubleshooting\n\n- **No Auth Request Intercepted**  \n  1. Log out of your Google account.\n  2. Log in again.\n  3. Try `Android App via Frida` interception method in HTTP Toolkit.\n\n\u003c/details\u003e\n\n## Build\n\nFollow official wails3 guide\n[https://v3alpha.wails.io/getting-started/installation/](https://v3alpha.wails.io/getting-started/installation/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxob0t%2Fgotohp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxob0t%2Fgotohp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxob0t%2Fgotohp/lists"}