Skip to content
FgsiDevPublic

About

Command Line Google Play APK downloader. Download APK files to your PC directly from Google Play Store.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gplaydl

Fork dari rehmatworks/gplaydl yang diubah ke Node.js oleh FgsiDev.

Download APKs from Google Play right from your terminal. One command gets you the base APK, split APKs (App Bundles), OBB expansion files and Play Asset Delivery packs.

gplaydl authenticates anonymously through a token dispenser, so you never need a Google account of your own.

Prefer a browser? Use gplaydl web, or view its source code.

Important: This project uses unofficial Google Play access. Google may rate-limit or block requests it sees from unofficial clients. Use at your own risk.

  • Base APK, splits, OBB files and asset packs downloaded together by default
  • arm64, armv7, x86, x86_64 and Android TV builds, several in one command
  • Anonymous tokens from a public dispenser, no account or API key needed
  • Device profiles rotated automatically, both for authentication and for old versions Google only serves to certain devices
  • Compressed transfers when Google Play offers them (often 30-40% smaller)
  • Every APK verified against the SHA-256 Google Play declares for it
  • Language splits on demand, and re-runs fetch only what is missing
  • Pure-JavaScript protobuf decoding with zero runtime dependencies
  • Live progress bars, plus search, info and list-splits for browsing

Sponsored · Rovelix is built by the creator of gplaydl

Rovelix: turn your Google Play portfolio into websites

Installation

Requires Node.js 18 or newer.

npm install -g gplaydl

Or from source:

git clone https://github.com/FgsiDev/gplaydl.git && cd gplaydl
npm install -g .

Tokens

No account or API key is needed. The first command that needs a token asks the dispenser for one anonymously and caches it; later commands reuse it and refresh it automatically before it expires.

Tokens live in ~/.config/gplaydl/auth-{arch}.json. Run gplaydl auth --clear to forget them, or gplaydl auth to fetch one explicitly.

Quick start

gplaydl auth                    # get an anonymous token
gplaydl download com.whatsapp   # base APK + splits + OBB/asset packs

Commands

Every command takes -d/--dispenser to pick a dispenser and --arch for the device architecture.

auth

Gets an anonymous Play token and caches it. You rarely need to run this yourself; the other commands fetch and refresh tokens on their own.

gplaydl auth                              # default (arm64)
gplaydl auth --arch armv7                 # older 32-bit devices
gplaydl auth --arch x86_64                # emulators / desktop
gplaydl auth --clear                      # forget all cached tokens

Tokens live in ~/.config/gplaydl/auth-{arch}.json and refresh automatically before they expire.

download

Fetches the base APK, every split APK, and any extra files unless you opt out.

gplaydl download com.whatsapp                # everything
gplaydl download com.whatsapp -o ./apks      # custom output directory
gplaydl download com.whatsapp -a armv7       # ARMv7 build
gplaydl download com.whatsapp -a arm64,armv7 # several architectures at once
gplaydl download org.videolan.vlc -a x86_64  # emulator / desktop build
gplaydl download com.google.android.katniss -a tv  # Android TV build
gplaydl download com.whatsapp -v 231205015   # specific version code
gplaydl download com.whatsapp -l de,fr,zh-CN # extra language splits
gplaydl download com.whatsapp --no-splits    # skip split APKs
gplaydl download com.whatsapp --no-extras    # skip OBB / asset packs
gplaydl download com.whatsapp --dm           # also fetch the .dm metadata

Downloads are verified: the base APK and every split are hashed while they stream in and checked against the SHA-256 that Google Play declares in the delivery response, so a truncated or corrupted file fails loudly instead of failing later at install time.

Re-runs are incremental. A file that already exists and matches its declared hash is skipped, so running the same command again with an extra architecture (-a arm64,armv7) or more languages (-l de,fr) downloads only the missing splits into the same directory. A corrupted file is noticed and fetched again.

--dm additionally fetches the DEX metadata file ({package}-{vc}.dm, a baseline profile plus vdex) that the Play Store installs alongside the base APK to speed up first launch. It is optional; append it to adb install-multiple after the APKs if you want it.

Old version codes are served by Google only to devices it considers compatible: 32-bit-only APKs are refused for 64-bit-only profiles, and Android 14+ profiles are not served APKs targeting very old SDKs. When that happens, gplaydl retries automatically with low-SDK multi-ABI device profiles until Google agrees to deliver.

Apps that are invisible to phone profiles altogether (Android TV exclusives like com.google.android.katniss, or apps limited to one ABI family) are found the same way: gplaydl rotates through one device of each kind, starting with TV and then each ABI family. Pass -a tv to skip straight to a TV profile, or run gplaydl auth --arch tv if you just want a TV token (~/.config/gplaydl/auth-tv.json).

Type Naming Example
Base APK {package}-{vc}.apk com.whatsapp-231205015.apk
Split APK {package}-{vc}-{split}.apk com.whatsapp-231205015-config.arm64_v8a.apk
OBB (main/patch) {type}.{vc}.{package}.obb main.20925.com.tencent.ig.obb
Asset pack {package}-{vc}-asset.apk com.tencent.ig-20925-asset.apk

Install a split build on a device by naming the app's own files, e.g. adb install-multiple com.whatsapp-231205015*.apk. (Avoid a bare *.apk when other APKs sit in the same directory: adb refuses sessions that mix packages or contain the same split twice.)

Want a single APK instead of splits? Google Play has no universal APK for App Bundle apps. Every client, including the Play Store itself, receives the base plus config splits and installs them as one session. The base APK alone will not run (its native libraries live in the config.<abi> split). If you truly need one file, merge the splits with a tool like APKEditor (APKEditor m -i ./apks); note the merged APK must be re-signed, so it will not receive updates on top of the Play-signed install.

info, search and list-splits

gplaydl info com.whatsapp                 # version, developer, rating, downloads
gplaydl search "file manager" --limit 5   # find apps by name
gplaydl list-splits com.whatsapp          # see splits without downloading

Self-hosting

The dispenser is open source and runs anywhere Go and Postgres do. Any dispenser that speaks the same API works, including one you host yourself:

gplaydl auth -d https://your.dispenser/api/auth
gplaydl download com.whatsapp -d https://your.dispenser/api/auth

Pass -d on whichever command you run, so token refreshes keep using it too.

Architecture support

Flag ABI Devices
arm64 (default) arm64-v8a Modern phones (2017+)
armv7 armeabi-v7a Older 32-bit phones
x86_64 x86_64 Emulators, Chromebooks, desktop
x86 x86 Older 32-bit emulators
tv armeabi-v7a Android TV / Google TV devices

Pass several at once to download with a comma: -a arm64,armv7. The base APK is shared where possible and per-architecture splits (or separate builds, for apps that publish one APK per ABI) land next to each other.

How it works

  1. Authenticate. The dispenser hands back an anonymous Play token, trying device profiles in turn until one is accepted.
  2. Look up. App metadata (version, size, split list) comes from Google Play's protobuf API.
  3. Purchase. Free apps are "purchased" to authorise the download; the delivery token Google returns is passed along to the delivery endpoint.
  4. Download. Base APK, splits, OBB files and asset packs stream in parallel from Google's CDN, using gzip-compressed transfers when offered.

Related projects

Sponsored · Rovelix is built by the creator of gplaydl

Rovelix: turn your Google Play portfolio into websites

License

MIT. See LICENSE.

About

Command Line Google Play APK downloader. Download APK files to your PC directly from Google Play Store.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages