Download APKs from Google Play Store using anonymous authentication. Supports single APKssplit APKs (App Bundles)and OBB expansion files.
v2.0 — Complete Rewrite. This is a ground-up rewrite with a new CLIpure-Python protobuf decoding (no
gpapidependency)and automatic token management. Looking for v1.x? See themasterbranch.
- Anonymous authentication via Aurora Store's token dispenser (no Google account needed)
- 23 device profiles with automatic rotation for reliable token acquisition
- Download base APKssplit APKsand OBB expansion files
- Beautiful terminal UI with real-time download progress bars
- Architecture support: ARM64 (modern phones) and ARMv7 (older phones)
- Custom token dispenser URL support
- Search and browse app details from the command line
Requirements: Python 3.9+
pip install gplaydlgit clone https://github.com/rehmatworks/gplaydl.git
cd gplaydl
pip install .# 1. Get an auth token (automaticanonymous)
gplaydl auth
# 2. Download an app
gplaydl download com.whatsappgplaydl auth # Default (arm64)
gplaydl auth --arch armv7 # Token for older ARM devices
gplaydl auth -d https://my-server/api # Use a custom dispenser
gplaydl auth --clear # Remove all cached tokensTokens are cached at ~/.config/gplaydl/auth-{arch}.on and reused automatically by other commands.
gplaydl download com.whatsapp # Base APK + splits
gplaydl download com.whatsapp -o ./apks # Custom output directory
gplaydl download com.whatsapp -a armv7 # ARMv7 build
gplaydl download com.whatsapp -v 231205015 # Specific version code
gplaydl download com.whatsapp --no-splits # Base APK onlyskip splits
gplaydl download com.some.game --obb # Include OBB expansion files
gplaydl download com.whatsapp -d https://... # Use custom dispenserSplit APKs are saved as individual files. Install them to a device with:
adb install-multiple *.apkgplaydl info com.whatsappDisplays app nameversiondeveloperratingdownload countand Play Store URL.
gplaydl search "whatsapp"
gplaydl search "file manager" --limit 5gplaydl list-splits com.whatsappShows all split APK names (config splitslanguage splitsetc.) without downloading.
python -m gplaydl auth
python -m gplaydl download com.whatsapp- Authentication — Gets an anonymous token from Aurora Store's dispenserrotating through device profiles for reliability
- Details — Fetches app metadata (versionsizesplits) via Google Play's protobuf API
- Purchase — "Purchases" the free app to get download authorization
- Delivery — Gets download URLs for the base APKsplit APKsand OBB files
- Download — Streams files from Google Play CDN with progress tracking
The tool uses Aurora Store's public token dispenser by default (https://auroraoss.com/api/auth). This service provides anonymous Google Play authentication tokens — no personal Google account required.
You can point to a custom/self-hosted dispenser with the --dispenser / -d flag on any command:
gplaydl auth -d https://my-dispenser.example.com/api/auth
gplaydl download com.whatsapp -d https://my-dispenser.example.com/api/authThe tool includes 23 device profiles from Aurora Storeused to authenticate with Google Play's token dispenser. Profiles are rotated automatically during token acquisition to maximize compatibility.
Profiles are stored as .properties files in the gplaydl/profiles/ directory.
| Flag | ABI | Devices |
|---|---|---|
arm64 (default) |
arm64-v8a | Modern phones (2017+) |
armv7 |
armeabi-v7a | Older 32-bit phones |
MIT — see LICENSE for details.