gotohp
!demo
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, persistent upload settings (stored in "%system config path%/gotohp/gotohp.config")
Download
Nix users on Linux, see nix/README.md.
CLI usage
Download the gotohp-cli release artifact for your platform. It runs without the GUI.
gotohp-cli upload /path/to/photos --recursive --threads 5
gotohp-cli creds add "<oauth_token cookie value>" # Embedded Setup sign-in, see below
gotohp-cli creds add "androidId=..." # or a raw credential string
gotohp-cli creds add - < token.txt # or read either from stdin
gotohp-cli creds set [email protected]
The CLI shares the config file with the GUI, but reads only the stored credentials from it. Everything else (proxy, quality, upload behaviour) is set by flags, so a scripted run is unaffected by preferences changed in the GUI. Pass --config to use a different config file and --account to upload with a specific stored account.
Run gotohp-cli help or gotohp-cli upload --help for all commands and options.
The GUI binary runs the same CLI when given a command, e.g. gotohp upload ....
Sign in
Option 1 - Embedded setup
- Open gotohp and click Add Google account.
- Click Open Google sign-in and sign in with the account you want to add.
- Sign in on the Google Embedded Setup page and click I agree. The page may keep loading forever; this is expected.
- Open the browser developer tools. Under Application or Storage, open Cookies for
accounts.google.com. - Copy only the value of the
oauth_tokencookie and paste it into gotohp. - Click Connect account.
gotohp-cli creds add "" .
Option 2 - ReVanced. No root required
Click to expand
- Install Google Photos ReVanced on your android device/emulator.
- Connect the device to your PC via ADB.
- Open the terminal on your PC and execute
adb logcat | FINDSTR "auth%2Fphotos.native"
Linux/Mac
adb logcat | grep "auth%2Fphotos.native"
- If you are already using ReVanced - remove Google Account from GmsCore.
- Open Google Photos ReVanced on your device and log into your account.
- One or more identical GmsCore logs should appear in the terminal.
- Copy text from
androidId=to the end of the line from any log. - That's it! 🎉
Option 3 - Official apk. Root required
Click to expand
- Get a rooted android device or an emulator.
- Connect the device to your PC via ADB.
- Install HTTP Toolkit
- In HTTP Toolkit, select Intercept -
Android Device via ADB. Filter traffic with
contains(https://www.googleapis.com/auth/photos.native)
Or if you have an older version of Google Photos, try
contains(www.googleapis.com%2Fauth%2Fplus.photos.readwrite)
- Open Google Photos app and login with your account.
- A single request should appear.
- Add that credential string in gotohp.
- If gotohp asks for a token binding key, keep the rooted device connected and click
Read from ADB. gotohp will read the account'slstBindingKeyAliasfrom Android AccountManager and save it into the credential.
Troubleshooting
- No Auth Request Intercepted
Android App via Frida interception method in HTTP Toolkit.
- Token binding key not found
Build
Follow official wails3 guide https://v3.wails.io/getting-started/installation/