xob0t/gotohp
GitHub: xob0t/gotohp
非官方 Google Photos 桌面客户端,通过移动端凭据实现批量上传,同时支持 GUI 和 CLI 模式。
Stars: 180 | Forks: 14
# gotohp

非官方 Google Photos 桌面 GUI 客户端
- 无限上传(可禁用)
- 拖放文件上传界面
- 凭据管理
- 实时上传进度追踪
- 可配置的上传线程
- 支持单文件或目录上传,可选递归扫描
- 跳过账户中已存在的文件
- CLI 模式
- 可配置的持久化上传设置(存储在 "%system config path%/gotohp/gotohp.config")
你可以在可执行文件旁创建一个空的 gotohp.config 来强制使用本地配置。
## [下载](https://github.com/xob0t/gotohp/releases/latest)
## CLI 用法
### Windows
Windows 发布版包含一个专用的 CLI 可执行文件 (`gotohp-cli.exe`) 用于命令行操作:
```
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
```
**可用命令:**
- `upload ` - 上传文件或目录
- `-r, --recursive` - 包含子目录
- `-t, --threads ` - 上传线程数(默认值:3)
- `-f, --force` - 即使文件已存在也强制上传
- `-d, --delete` - 上传后从主机删除
- `-df, --disable-filter` - 禁用文件类型过滤
- `--date-from-filename` - 根据文件名设置媒体日期(例如 `20240709_182027.jpg`)
- `-a, --album ` - 将上传的文件添加到相册(使用 `AUTO` 以根据文件夹创建相册)
- `-l, --log-level ` - 设置日志级别:debug, info, warn, error(默认值:info)
- `-c, --config ` - 配置文件路径
- `creds list` (alias: `ls`) - 列出所有凭据
- `creds add ` - 添加新凭据
- `creds remove ` (alias: `rm`) - 移除凭据
- `creds set ` (alias: `select`) - 设置活动凭据(支持部分匹配)
- `version` - 显示版本信息
- `help` - 显示帮助信息
### macOS / Linux
主可执行文件支持 CLI 模式:
```
./gotohp upload /path/to/photos --recursive --threads 5
./gotohp creds list
./gotohp version
```
## 需要移动应用凭据才能工作
你只需要执行一次此操作。
### 选项 1 - ReVanced。无需 root
1. 在你的 Android 设备/模拟器上安装 Google Photos ReVanced。
- 安装 GmsCore [https://github.com/ReVanced/GmsCore/releases](https://github.com/ReVanced/GmsCore/releases)
- 安装修补过的 apk [https://github.com/j-hc/revanced-magisk-module/releases](https://github.com/j-hc/revanced-magisk-module/releases) 或自行修补
2. 通过 ADB 将设备连接到 PC。
3. 在 PC 上打开终端并执行
Windows
adb logcat | FINDSTR "auth%2Fphotos.native"
Linux/Mac
adb logcat | grep "auth%2Fphotos.native"
4. 如果你已经在使用 ReVanced - 从 GmsCore 移除 Google 账号。
5. 在你的设备上打开 Google Photos ReVanced 并登录你的账号。
6. 终端中应该会出现一条或多条相同的 GmsCore 日志。
7. 从任意日志中复制从 `androidId=` 到行尾的文本。
8. 搞定!🎉
### 选项 2 - 官方 apk。需要 root
## 构建
遵循官方 wails3 指南
[https://v3alpha.wails.io/getting-started/installation/](https://v3alpha.wails.io/getting-started/installation/)
点击展开
1. 准备一台已 root 的 Android 设备或模拟器。推荐的 Android 版本为 9-13 2. 通过 ADB 将设备连接到 PC。 3. 安装 [HTTP Toolkit](https://httptoolkit.com) 4. 在 HTTP Toolkit 中,选择 Intercept - `Android Device via ADB`。过滤流量条件为 contains(https://www.googleapis.com/auth/photos.native) 或者如果你使用的是旧版 Google Photos,请尝试 contains(www.googleapis.com%2Fauth%2Fplus.photos.readwrite) 5. 打开 Google Photos 应用并使用你的账号登录。 6. 应该会出现一个请求。 以文本形式复制请求体。 #### 故障排除 - **未拦截到 Auth 请求** 1. 登出你的 Google 账号。 2. 重新登录。 3. 在 HTTP Toolkit 中尝试 `Android App via Frida` 拦截方法。标签:EVTX分析, Golang, Google Photos 客户端, GUI 客户端, 云存储, 云资产清单, 凭据管理, 图片上传工具, 媒体管理, 安全编程, 批量上传, 文件传输, 文件管理, 日志审计, 桌面应用程序, 相册管理, 第三方客户端, 自动化上传, 逆向工程