Skip to main content

A python client library for Google Play Services OAuth.

Project description

gpsoauth

CI PyPI version repominder

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.

  1. Login to your Google account (Ex: Via https://accounts.google.com/EmbeddedSetup)
  2. Obtain the value of the oauth_token cookie
  3. 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

Contributing

See Contributing guidelines. This is an open-source project and all contributions are highly welcomed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gpsoauth-1.1.0.tar.gz (6.5 kB view hashes)

Uploaded Source

Built Distribution

gpsoauth-1.1.0-py3-none-any.whl (7.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page