A python client library for Google Play Services OAuth.
Project description
gpsoauth
Python client library for Google Play Services OAuth.
gpsoauth
allows python code to use the "master token" flow that KB Sriram described at
http://sbktech.blogspot.com/2014/01/inside-android-play-services-magic.html.
import gpsoauth
email = 'example@gmail.com'
password = 'my-password'
android_id = '0123456789abcdef'
master_response = gpsoauth.perform_master_login(email, password, android_id)
master_token = master_response['Token']
auth_response = gpsoauth.perform_oauth(
email, master_token, android_id,
service='sj', app='com.google.android.music',
client_sig='...')
token = auth_response['Auth']
This can be useful when writing code that poses as a Google app, like gmusicapi does here.
Many thanks to Dima Kovalenko for reverse engineering the EncryptedPasswd signature in https://web.archive.org/web/20150814054004/http://codedigging.com/blog/2014-06-09-about-encryptedpasswd/.
For an explanation of recent changes, see the changelog.
Alternative flow
There is an alternative login flow if you are experiencing BadAuthentication
errors.
- Login to your Google account (Ex: Via https://accounts.google.com/EmbeddedSetup)
- Obtain the value of the
oauth_token
cookie - Perform the token exchange:
import gpsoauth
email = 'example@gmail.com'
android_id = '0123456789abcdef'
token = '...' # insert the oauth_token here
master_response = gpsoauth.exchange_token(email, token, android_id)
master_token = master_response['Token']
auth_response = gpsoauth.perform_oauth(
email, master_token, android_id,
service='sj', app='com.google.android.music',
client_sig='...')
token = auth_response['Auth']
Ports
- C#: https://github.com/vemacs/GPSOAuthSharp
- Ruby: https://github.com/bryanmytko/gpsoauth
- Java: https://github.com/svarzee/gpsoauth-java
- C++: https://github.com/dvirtz/gpsoauth-cpp and https://github.com/Iciclelz/gpsoauthclient
Contributing
See Contributing guidelines. This is an open-source project and all contributions are highly welcomed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.