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

Skip to content
README.md 2.34 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

Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
    val app = AppDetailsHelper(authData).getAppByPackageName(packageName)
Rahul Patel's avatar
Rahul Patel committed

Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
### Fetch Bulk App Details
Rahul Patel's avatar
Rahul Patel committed

Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
    val appList = AppDetailsHelper.getAppByPackageName(packageNameList)
Rahul Patel's avatar
Rahul Patel committed

### Fetch APKs/OBBs/Patches

Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
    val files = PurchaseHelper(authData).purchase(
        app.packageName,
        app.versionCode,
        app.offerType
    )
Rahul Patel's avatar
Rahul Patel committed

### Fetch All Categories

Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
    val categoryList = CategoryHelper(authData).getAllCategoriesList(type) //type = GAME or APPLICATION
Rahul Patel's avatar
Rahul Patel committed

### Fetch Search Suggestions

Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
    val entries = SearchHelper(authData).searchSuggestions(query)
Rahul Patel's avatar
Rahul Patel committed

### Search Apps & Games

Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
    var helper = SearchHelper(authData)
    var searchBundle = helper.searchResults(query) 
    var appList = searchBundle.appList 
Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
	
    #To fetch next list 
    appList = helper.next(searchBundle.subBundles)
Rahul Patel's avatar
Rahul Patel committed

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

Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
    var helper = ReviewsHelper(authData)
    var reviewCluster = helper.getReviews(packageName, filter) //filter = ALL, POSITIVE, CRITICAL
    #To fetch next list    
    reviewCluster = helper.next(reviewCluster.nextPageUrl)
Rahul Patel's avatar
Rahul Patel committed

### User Reviews

Rahul Kumar Patel's avatar
Rahul Kumar Patel committed
    var helper = ReviewsHelper(authData)
Rahul Patel's avatar
Rahul Patel committed
    //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)