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. Go to https://accounts.google.com/EmbeddedSetup
  2. Log into your Google Account
  3. Click on "I agree" when prompted. The page may show a loading screen forever; ignore it and move on to the next step.
  4. Obtain the value of the oauth_token cookie. For more details see the gpsoauth-java readme.

Then, 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']  # if there's no token check the response for more details

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-2.0.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

gpsoauth-2.0.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file gpsoauth-2.0.0.tar.gz.

File metadata

  • Download URL: gpsoauth-2.0.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.20

File hashes

Hashes for gpsoauth-2.0.0.tar.gz
Algorithm Hash digest
SHA256 9e3b765a6a4e0364dec1bc4157bd3ed7e5ec3066589e285d0b46986910aa6bd2
MD5 d75fc3f4d199ce55edad223fb1782325
BLAKE2b-256 1a6af4fd84bcfd513d512711a2a14039ac431201c440c29a8f76af5584a34614

See more details on using hashes here.

File details

Details for the file gpsoauth-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: gpsoauth-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.20

File hashes

Hashes for gpsoauth-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fb8bf9cb8b6e6bee1dbedbbbe8958ace71cddaccf5950e79b38c4d2ae9870641
MD5 d03866a9cc33551a50d84b0e52d4b58b
BLAKE2b-256 fe7a1dc1e06235732d1a1037640ec6aabd8fc18597a909848885376f1a0cffe3

See more details on using hashes here.

Supported by

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