An open API service indexing awesome lists of open source software.

https://github.com/xob0t/gotohp

Unofficial Google Photos Desktop GUI Client
https://github.com/xob0t/gotohp

cross-platform google-photos gui reverse-engineering unlimited-storage unofficial uploader wails3

Last synced: 3 days ago
JSON representation

Unofficial Google Photos Desktop GUI Client

Awesome Lists containing this project

README

          

# gotohp

![demo](readme_assets/app_demo.webp)

Unofficial Google Photos Desktop GUI Client

- Unlimited uploads (can be disabled)
- Drag-and-drop file upload interface
- Credential management
- Real-time upload progress tracking
- Configurable upload threads
- Individual files or directories uploads, with optional recursive scanning
- Skips files already present in your account
- CLI mode
- Configurable, presistent upload settings (stored in "%system config path%/gotohp/gotohp.config")
You can force local config by creating empty gotohp.config next to executable.

## [Download](https://github.com/xob0t/gotohp/releases/latest)

## CLI Usage

### Windows

Windows releases include a dedicated CLI executable (`gotohp-cli.exe`) for command-line usage:

```cmd
gotohp-cli.exe upload C:\path\to\photos --recursive --threads 5
gotohp-cli.exe creds list
gotohp-cli.exe creds add "androidId=..."
gotohp-cli.exe creds set user@gmail.com
gotohp-cli.exe version
```

**Available commands:**

- `upload ` - Upload files or directories
- `-r, --recursive` - Include subdirectories
- `-t, --threads ` - Number of upload threads (default: 3)
- `-f, --force` - Force upload even if file exists
- `-d, --delete` - Delete from host after upload
- `-df, --disable-filter` - Disable file type filtering
- `-l, --log-level ` - Set log level: debug, info, warn, error (default: info)
- `-c, --config ` - Path to config file
- `creds list` (alias: `ls`) - List all credentials
- `creds add ` - Add new credentials
- `creds remove ` (alias: `rm`) - Remove credentials
- `creds set ` (alias: `select`) - Set active credential (supports partial matching)
- `version` - Show version information
- `help` - Show help message

### macOS / Linux

The main executable supports CLI mode:

```bash
./gotohp upload /path/to/photos --recursive --threads 5
./gotohp creds list
./gotohp version
```

## Requires mobile app credentials to work

You only need to do this once.

### Option 1 - ReVanced. No root required

1. Install Google Photos ReVanced on your android device/emulator.
- Install GmsCore [https://github.com/ReVanced/GmsCore/releases](https://github.com/ReVanced/GmsCore/releases)
- 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
2. Connect the device to your PC via ADB.
3. Open the terminal on your PC and execute

Windows

```cmd
adb logcat | FINDSTR "auth%2Fphotos.native"
```

Linux/Mac

```shell
adb logcat | grep "auth%2Fphotos.native"
```

4. If you are already using ReVanced - remove Google Account from GmsCore.
5. Open Google Photos ReVanced on your device and log into your account.
6. One or more identical GmsCore logs should appear in the terminal.
7. Copy text from `androidId=` to the end of the line from any log.
8. That's it! 🎉

### Option 2 - Official apk. Root required

Click to expand

1. Get a rooted android device or an emulator. Recommended Android versions 9-13
2. Connect the device to your PC via ADB.
3. Install [HTTP Toolkit](https://httptoolkit.com)
4. In HTTP Toolkit, select Intercept - `Android Device via ADB`. Filter traffic with

```text
contains(https://www.googleapis.com/auth/photos.native)
```

Or if you have an older version of Google Photos, try

```text
contains(www.googleapis.com%2Fauth%2Fplus.photos.readwrite)
```

5. Open Google Photos app and login with your account.
6. A single request should appear.
Copy request body as text.

#### Troubleshooting

- **No Auth Request Intercepted**
1. Log out of your Google account.
2. Log in again.
3. Try `Android App via Frida` interception method in HTTP Toolkit.

## Build

Follow official wails3 guide
[https://v3alpha.wails.io/getting-started/installation/](https://v3alpha.wails.io/getting-started/installation/)