dda3a2f39f
The old caching code could cause a query to be cached for ever, returning always the same set of result for a specific query. This is not a good behaviour, since search results change continuously. In the future, this behaviour could be reintroduced with a better logic (for example, check if the query was in cache longer than some hours or days) Signed-off-by: Domenico Iezzi <domenico.iezzi.201@gmail.com> |
||
---|---|---|
Documentation | ||
gpapi | ||
.gitignore | ||
.travis.yml | ||
googleplay.proto | ||
LICENSE.md | ||
README.md | ||
setup.cfg | ||
setup.py | ||
test.py |
Google play python API
This project contains an unofficial API for google play interactions. The code mainly comes from GooglePlayAPI project which is not maintained anymore. The code was updated with some important changes:
- ac2dm authentication with checkin and device info upload
- updated search and download calls
- using headers of a Nexus 6P. Add you own device under
device.properties
file
Usage
Check the test.py module for a simple example.
An important note about login function:
def login(self, email=None, password=None, gsfId=None, authSubToken=None)
for first time logins, you should only provide email and password. The module will take care of initalizing the api,upload device information to the google account you supplied, and retrieving a Google Service Framework ID (which, from now on, will be the android ID of a device).
For the next logins you should save the gsfId and the authSubToken, and provide them as parameters to the login function. If you login again with email and password only, this is the equivalent of re-initalizing your android device with a google account.
API reversing
Since I started playing with a more recent version of the GooglePlay API on LineageOS 14.1 (Android 7.1) using mitmproxy, I gathered some information about new APIs. Checkout the Documentation folder for more details on single API endpoints.