[GH-ISSUE #243] {'Error': 'ServiceDisabled'... #208

Open
opened 2026-02-25 20:34:54 +03:00 by kerem · 2 comments
Owner

Originally created by @h7sj on GitHub (Sep 2, 2025).
Original GitHub issue: https://github.com/B16f00t/whapa/issues/243

Reporting how I fixed this. The answer is buried in the other issue trackers, but it takes some stitching together.

  1. Make sure you have email, password and android ID all setup in cfg/settings.cfg. (This guide is probably more likely to work if you had it working before).
  2. Go to libs and delete the static library for gpsoauth
  3. Uninstall gpsoauth, pip3 uninstall gpsoauth
  4. Modify doc/requirements.txt to remove the hard version link
  5. Reinstall requirements pip3 install -r requirements.txt
  6. Modify libs/whagodri.py, and insert this on line 119 (level with the print statement).
        master_response = gpsoauth.exchange_token(gmail, oauth_token, android_id)
        master_token = master_response['Token']  # if there's no token check the response for more details
  1. (do the dance here https://github.com/simon-weber/gpsoauth?tab=readme-ov-file#alternative-flow. Copied below for convenience).
    a. Go to https://accounts.google.com/EmbeddedSetup
    b. Log into your Google Account
    c. Click on "I agree" when prompted. The page may show a loading screen forever; ignore it and move on to the next step.
    d. Obtain the value of the oauth_token cookie. For more details see the gpsoauth-java readme.
    e. On Firefox, you can go to developer console, select storage, and look for the oauth key.
  2. Quickly copy the value retrieved in the previous step to cfg/settings.cfg
  3. Attempt the download. The code we added to whagodri.py will do the key exchange from the temporary key.
Originally created by @h7sj on GitHub (Sep 2, 2025). Original GitHub issue: https://github.com/B16f00t/whapa/issues/243 Reporting how I fixed this. The answer is buried in the other issue trackers, but it takes some stitching together. 1. Make sure you have email, password and android ID all setup in `cfg/settings.cfg`. (This guide is probably more likely to work if you had it working before). 2. Go to `libs` and delete the static library for `gpsoauth` 3. Uninstall `gpsoauth`, `pip3 uninstall gpsoauth` 4. Modify `doc/requirements.txt` to remove the hard version link 5. Reinstall requirements `pip3 install -r requirements.txt` 6. Modify `libs/whagodri.py`, and insert this on line 119 (level with the print statement). ``` master_response = gpsoauth.exchange_token(gmail, oauth_token, android_id) master_token = master_response['Token'] # if there's no token check the response for more details ``` 7. (do the dance here https://github.com/simon-weber/gpsoauth?tab=readme-ov-file#alternative-flow. Copied below for convenience). a. Go to https://accounts.google.com/EmbeddedSetup b. Log into your Google Account c. Click on "I agree" when prompted. The page may show a loading screen forever; ignore it and move on to the next step. d. Obtain the value of the oauth_token cookie. For more details see [the gpsoauth-java readme](https://github.com/rukins/gpsoauth-java/blob/b74ebca999d0f5bd38a2eafe3c0d50be552f6385/README.md#receiving-an-authentication-token). e. On Firefox, you can go to developer console, select storage, and look for the oauth key. 8. Quickly copy the value retrieved in the previous step to `cfg/settings.cfg` 9. Attempt the download. The code we added to `whagodri.py` will do the key exchange from the temporary key.
Author
Owner

@southall01 commented on GitHub (Dec 14, 2025):

Can u show your whagodri.py, still don't get master code

                print(master_response = gpsoauth.exchange_token(gmail, oauth_token, android_id))
                print(master_token = master_response['Token'])  # if there's no token check the response for more details
                oauth_token = token['Token']
<!-- gh-comment-id:3650073053 --> @southall01 commented on GitHub (Dec 14, 2025): Can u show your whagodri.py, still don't get master code print(master_response = gpsoauth.exchange_token(gmail, oauth_token, android_id)) print(master_token = master_response['Token']) # if there's no token check the response for more details oauth_token = token['Token']
Author
Owner

@southall01 commented on GitHub (Dec 14, 2025):

bakup have 700 files and i just get 466
still don't get where to right down to have the master token

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']

<!-- gh-comment-id:3651748555 --> @southall01 commented on GitHub (Dec 14, 2025): bakup have 700 files and i just get 466 still don't get where to right down to have the master token 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']
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/whapa#208
No description provided.