About Gpsoauth
Gpsoauth is an MCP server in the Maps category: a python client library for Google Play Services OAuth.
Install
git clone https://github.com/simon-weber/gpsoauthThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Gpsoauth
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
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.
- Go to https://accounts.google.com/EmbeddedSetup
- Log into your Google Account
- Click on "I agree" when prompted. The page may show a loading screen forever; ignore it and move on to the next step.
- Obtain the value of the
oauth_tokencookie. 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
- Typescript: https://github.com/billgreenwald/gpsoauth-js
- 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.
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.