googleplay-api icon indicating copy to clipboard operation
googleplay-api copied to clipboard

Bad Authentication Error

Open ghost opened this issue 3 years ago • 10 comments

Hello, I'm using ubuntu 22.04 and I have tried with multiple python version 3.8, 3.9 and 3.10 and it keeps appearing the error "Bad Authentication". I have tried to use https://github.com/marty0678/googleplay-api and https://github.com/gentoolinux/googleplay-api but keeps giving the same error.

ghost avatar Aug 26 '22 10:08 ghost

Hi,

I'm having the same problem

It seems that :

  • Google does analyze the TLS Hello request made by python. if this request doesn't match precisely what Google expects, a "Bad Authentication" is returned.
  • urllib3 made some change on how it handle TLS at 1.26.0. Any attempt to authenticate against google servers with urllib3>=1.26.0 and default settings, will result to a Bad authentication.
  • marty0678 patched the issue, you can use https://github.com/marty0678/googleplay-api
  • the details of "what's wrong with urllib3>=1.26.0" are available here: https://github.com/urllib3/urllib3/issues/2101

Also: both NoMore201 & gentoolinux versions were not updated following the last Google Play API changes (some new params like droidguard_results are now required by the API, etc...). I am not sure these versions can still be considered as maintained.

Edit: in addition, there is apparently an issue causing "Bad Authentication" on Ubuntu. The issue is specific to Ubuntu and does not happen on other distros (for instance, debian is not affected).

Augustin-FL avatar Sep 14 '22 15:09 Augustin-FL

I made a pull request to fix marty's fix (https://github.com/marty0678/googleplay-api/pull/5). Let's see what happens with it..

I confirm that if use this fix I can now download apks by using an App password, with some caveats:

I need to force the installation of a specific protobuf version:

pip3 install 'protobuf<=3.20.1' --force-reinstall 

I still get this error:

/home/python/workspace/gpapi/googleplay.py:717: RuntimeWarning: Unexpected end-group tag: Not all data was converted
  response = googleplay_pb2.ResponseWrapper.FromString(response.content)

Exadra37 avatar Sep 21 '22 19:09 Exadra37

I made a pull request to fix marty's fix (marty0678#5). Let's see what happens with it..

I confirm that if use this fix I can now download apks by using an App password, with some caveats:

I need to force the installation of a specific protobuf version:

pip3 install 'protobuf<=3.20.1' --force-reinstall 

I still get this error:

/home/python/workspace/gpapi/googleplay.py:717: RuntimeWarning: Unexpected end-group tag: Not all data was converted
  response = googleplay_pb2.ResponseWrapper.FromString(response.content)

I didn't understand, can you download apks or do you get the error?

iamd0pey avatar Sep 22 '22 15:09 iamd0pey

As I said:

I confirm that if use this fix I can now download apks by using an App password,

Check this discussion for more details:

https://github.com/marty0678/googleplay-api/pull/5#issuecomment-1254166488

Exadra37 avatar Sep 22 '22 16:09 Exadra37

@iamd0pey Can you confirm whether this works for you? I suspect it will still not work on Ubuntu 22.04 (unless you've made some other changes), but want to be sure. Thanks!

therealchjones avatar Sep 28 '22 10:09 therealchjones

@iamd0pey Can you confirm whether this works for you? I suspect it will still not work on Ubuntu 22.04 (unless you've made some other changes), but want to be sure. Thanks!

Right now I have not tested it yet, but I think a solution for me would be using docker containers.

iamd0pey avatar Oct 05 '22 18:10 iamd0pey

Right now I have not tested it yet, but I think a solution for me would be using docker containers.

A better Dockerfile from my fork:

https://github.com/Exadra37/googleplay-api/blob/3bebae10c63cde5617e467fa31f1f6c1abc77225/Dockerfile

The bash script to use it:

https://github.com/Exadra37/googleplay-api/blob/3bebae10c63cde5617e467fa31f1f6c1abc77225/bin/python.sh

The python CLI:

https://github.com/Exadra37/googleplay-api/blob/3bebae10c63cde5617e467fa31f1f6c1abc77225/cli/cli.py

Bear in mind that this is still a Work in Progress.

Exadra37 avatar Oct 05 '22 21:10 Exadra37

is it work now?

YsmanKhamidullin avatar Dec 06 '22 14:12 YsmanKhamidullin

See my current approach with a Dockerfile https://github.com/NoMore201/googleplay-api/issues/159#issuecomment-1603905077

In a Nutshell you need a dedicated Gmail account without 2FA enabled and to run on Python 3.6 and use a fork of this repor that is more up to date.

Exadra37 avatar Jun 23 '23 08:06 Exadra37

the Python 3.6 option is a brittle hack that could break at any moment. a better option is to use a TLS client hello matching an Android device, as is used with Python gpsoauth and others.

ghost avatar Jun 24 '23 00:06 ghost