Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
README.md 2.44 KiB
Newer Older
Rahul Patel's avatar
Rahul Patel committed
# GPlayAPI

Google Play Store Protobuf API wrapper in Kotlin

Rahul Patel's avatar
Rahul Patel committed
**For Educational & Research purpose only

## Disclaimer

I'm not resposible for anything that may go wrong with:
1. You 
2. Your Google Account.
3. Socio-economic Life, especially the nudes.
4. Girlfriend.
5. Crypto Wallet.

***Hold your own beer!

Rahul Patel's avatar
Rahul Patel committed
## Build

    git clone https://gitlab.com/AuroraOSS/gplayapi.git
    gradlew :assemble
    gradlew :build

## Work Flow
 1. Obtain AASToken from (Email,Password) pair.
 2.  Obtain AuthData from (Email,AASToken) pair.
 3. Use AuthData to access data.

## Usage
### AASToken
Use one of the following tools
* [Authenticator](https://github.com/whyorean/Authenticator)
* [AASTokenGrabber](https://github.com/whyorean/AASTokenGrabber)

### AuthData 

    val authData = AuthHelper.build(email,aastoken)

### Fetch App Details

    val app = AppDetailsHelper
    .with(authData)
    .getAppByPackageName(packageName)

### Fetch Bulk App Details (Max 20)

    val appList = AppDetailsHelper
    .with(authData)
    .getAppByPackageName(packageNameList)

### Fetch APKs/OBBs/Patches

    val files = PurchaseHelper
    .with(authData)
    .purchase(app.packageName,app.versionCode,app.offerType)

### Fetch All Categories

    val categoryList = CategoryHelper
    .with(authData)
    .getAllCategoriesList(type) //type = GAME or APPLICATION

### Fetch Search Suggestions

    val entries = SearchHelper
    .with(authData)
    .searchSuggestions(query)

### Search Apps & Games

    var helper = SearchHelper.with(authData)
    var searchBundle = helper.searchResults(query) 
    var appList = searchBundle.appList 
	while (true) { 
	    appList = helper.next(searchBundle.subBundles)  
Rahul Patel's avatar
Rahul Patel committed
	}

Rahul Patel's avatar
Rahul Patel committed
### App Reviews

    var helper = ReviewsHelper.with(authData)
    var reviews: List<Review?> = helper.getReviews(packageName, filter) //filter = ALL, POSITIVE, CRITICAL
    while (reviews.size >= ReviewsHelper.DEFAULT_SIZE) {
        reviews = helper.next(packageName, filter)
    }

### User Reviews

Rahul Patel's avatar
Rahul Patel committed
    var helper = ReviewsHelper.with(authData)
    //Submit or Edit review
Rahul Patel's avatar
Rahul Patel committed
    val review = helper.addOrEditReview(packageName, title, content, rating, isBeta)
    //Retrive review
    val review = helper.getUserReview(packageName, isBeta)

Rahul Patel's avatar
Rahul Patel committed
## Credits
1. [googleplay-api](https://github.com/egirault/googleplay-api)
2. [google-play-crawler](https://github.com/Akdeniz/google-play-crawler)
3. [play-store-api](https://github.com/yeriomin/play-store-api)
4. [raccon4](https://github.com/onyxbits/raccoon4)