Metadata-Version: 2.5
Name: gphototool
Version: 0.1.0
Summary: Convert any file to video → unlimited Google Photos upload
License-Expression: MIT
Requires-Python: >=3.11
Requires-Dist: fastapi
Requires-Dist: gpmc
Requires-Dist: python-multipart
Requires-Dist: uvicorn[standard]
Provides-Extra: disguise
Requires-Dist: gp-disguise; extra == 'disguise'
Description-Content-Type: text/markdown

# GPhotoTool

Convert any file to video → upload **unlimited** to Google Photos.

No storage quota. No server. Runs 100% locally on your machine.

## Install

```bash
pip install gphototool
pip install gp_disguise@git+https://github.com/xob0t/gp_disguise.git
```

Or one-liner:
```bash
pip install gphototool && pip install gp_disguise@git+https://github.com/xob0t/gp_disguise.git
```

## Usage

```bash
gphototool
```

Opens browser to `http://localhost:8800`. Drag, drop, done.

## How it works

1. Drop any file (ZIP, PDF, APK, ISO, DOC, MP3, anything)
2. `gp_disguise` wraps it as an MP4 video
3. `gpmc` uploads via Pixel XL spoof API — **zero quota charged**
4. File stays on your machine the whole time

## Auth token (one-time setup)

**Easiest:** Open the expandable help in the web UI — it has step-by-step instructions.

**Or:** Copy the AI-agent prompt from [docs/AUTH_TOKEN.md](docs/AUTH_TOKEN.md) and paste it to Claude/ChatGPT. It will guide you through capturing the token.

**Manual:**
```bash
adb logcat -c && adb logcat | grep auth%2Fphotos
# Open Morphe Photos → tap profile → sign in
# Copy the androidId=...&Token=... line
# Save: echo "TOKEN" > ~/.config/gphototool/auth_data && chmod 600 ~/.config/gphototool/auth_data
```

Token expires in ~24 hours. Re-capture when upload fails with auth error.

## Requirements

- Python 3.11+
- `gpd` (gp_disguise) — installed automatically
- `gpmc` — installed automatically

## Architecture

```
Browser (localhost:8800)
  ↕ HTTP
FastAPI server (local)
  → gpd: file → MP4
  → gpmc: MP4 → Google Photos (unlimited)
```

Files never leave your machine. Zero server costs.

## License

MIT
