NoMore201 / googleplay-api

Google Play Unofficial Python API
Other
409 stars 208 forks source link

Bad Authentication Error #164

Open iamd0pey opened 1 year ago

iamd0pey commented 1 year ago

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.

Augustin-FL commented 1 year ago

Hi,

I'm having the same problem

It seems that :

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).

Exadra37 commented 1 year ago

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)
iamd0pey commented 1 year ago

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?

Exadra37 commented 1 year ago

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

therealchjones commented 1 year ago

@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!

iamd0pey commented 1 year ago

@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.

Exadra37 commented 1 year ago

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.

YsmanKhamidullin commented 1 year ago

is it work now?

Exadra37 commented 1 year ago

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.

ghost commented 1 year ago

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.