Bad Authentication Error
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.
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.
-
urllib3made some change on how it handle TLS at1.26.0. Any attempt to authenticate against google servers withurllib3>=1.26.0and 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).
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)
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-reinstallI 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?
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
@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 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.
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.
is it work now?
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.
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.