Giter Site home page Giter Site logo

claudiugeorgiu / playstoredownloader Goto Github PK

View Code? Open in Web Editor NEW
1.1K 44.0 218.0 3.85 MB

A command line tool to download Android applications directly from the Google Play Store by specifying their package name (an initial one-time configuration is required)

License: MIT License

Python 94.40% Shell 5.09% Dockerfile 0.51%
android apk google playstore downloader

playstoredownloader's People

Contributors

caimiao avatar chabberwock avatar claudiugeorgiu avatar daniert avatar fernandocollova avatar packmad avatar rooky-c3bo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

playstoredownloader's Issues

Download pay apps

I've downloaded an app on my phone and once I tried to download the package I get this error. How can we handle pay apps ? (I turned off the Less secure app access)

python download.py "com.mlb.RBIBaseball"
26/02/2019 13:32:48> [ERROR][download()] Error for app "com.mlb.RBIBaseball": The Play Store application on your device is outdated and does not support this purchase.
here
Error when downloading "com.mlb.RBIBaseball".

Application Download Failed

Hello, I tried to use the script to download apps, but I got the following error:

[ERROR][playstore.playstore.Playstore][app_details()] Error for app "pdf.tap.scanner": Error retrieving information from server. DF-DFERH-01
18/11/2019 15:20:50> [CRITICAL][main][main()] Error when downloading "pdf.tap.scanner": unable to get app's details

can you please help me to solve the following issue.

thanks in advance
Amir

there is a error

i had modify the config file :credentials.json
but there two error when i run >>>>python3 download.py "com.evozi.deviceid"
and my python is python3.6

[ERROR][playstore.playstore.Playstore][app_details()] Error for app "mobileSSH.feng.gao": Error retrieving information from server. DF-DFERH-01

[CRITICAL][main][main()] Error when downloading "mobileSSH.feng.gao": unable to get app's details

Support of Split APK

silently removed previous stupid problem

I'm trying to download an App which uses Dynamic Delivery with split APKs, and the script only downloads the Base APK for me which lacks the ability to execute (because there's no *.so libs), no ABI Configuration APKs are downloaded.

Would you like to add this feature? so I can make a cron job to grab the specific region-locked apks automatically.

My package name is com.bandainamcoent.imas_millionlive_theaterdays_ch and it use ABI based configuration, but it's only available in limited country.

Chrome does use Split APKs but they are language based configuration. Finally we may need to find a substitute app to test.

Help me > 'Error retrieving information from server. DF-DFERH-01'

python download.py "com.twitter.android"

19/02/2021 03:58:02> 
[ERROR][playstore.playstore.Playstore][app_details()] Error for app 'com.twitter.android': Error retrieving information from server. DF-DFERH-01
19/02/2021 03:58:02>
[CRITICAL][__main__][main()] Error when downloading 'com.twitter.android': unable to get app's details

The Play Store application on your device is outdated and does not support this purchase

I've been using an APK extractor to side-load apps from my phone to devices that are listed as incompatible with a given app (e.g. Minecraft). This stopped working with the latest MCPE version (extracted APK installs but crashes on startup). I noticed that the extracted APK size is much less than what is shown during app download, so I tried to download it using this project. However, I get the following error:

21/04/2020 23:57:19> [INFO][engineio.server][send()] 39d673f13904464da1e2e9e2c080fe65: Sending packet OPEN data {'sid': '39d673f13904464da1e2e9e2c080fe65', 'upgrades': [], 'pingTimeout': 600000, 'pingInterval': 25000}

21/04/2020 23:57:19> [INFO][engineio.server][send()] 39d673f13904464da1e2e9e2c080fe65: Sending packet MESSAGE data 0

21/04/2020 23:57:31> [INFO][engineio.server][receive()] 39d673f13904464da1e2e9e2c080fe65: Received packet MESSAGE data 2["start_download","com.mojang.minecraftpe"]

21/04/2020 23:57:31> [INFO][socketio.server][_handle_event()] received event "start_download" from 39d673f13904464da1e2e9e2c080fe65 [/]

21/04/2020 23:57:32> [ERROR][playstore.playstore.Playstore][_handle_missing_payload()] Error for app 'com.mojang.minecraftpe': The Play Store application on your device is outdated and does not support this purchase.

21/04/2020 23:57:32> [INFO][socketio.server][emit()] emitting event "download_error" to 39d673f13904464da1e2e9e2c080fe65 [/]

21/04/2020 23:57:32> [INFO][engineio.server][send()] 39d673f13904464da1e2e9e2c080fe65: Sending packet MESSAGE data 2["download_error","Error for app 'com.mojang.minecraftpe': The Play Store application on your device is outdated and does not support this purchase."]

Any thoughts on this problem?

Google Play purchases are not supported in your country

➜  python3 download.py com.symudolcreadigol.prosiectx
12/09/2017 02:57:18> [ERROR][download()] Error for app "com.symudolcreadigol.prosiectx": Google Play purchases are not supported in your country. Unfortunately you will not be able to complete purchases.
Error when downloading "com.symudolcreadigol.prosiectx".

problem when call from php

<?php $id ="com.whatsapp"; $cmd = 'python3 ./PlaystoreDownloader/download.py "'.$id.'" 2>&1'; $output = shell_exec($cmd); var_dump($output);

output

`string(873) "01/11/2017 23:07:52> [CRITICAL][_load_configuration()] Missing configuration file.
Traceback (most recent call last):
File "/var/www/html/PlaystoreDownloader/playstore/playstore.py", line 40, in init
self._load_configuration(config_file)
File "/var/www/html/PlaystoreDownloader/playstore/playstore.py", line 74, in _load_configuration
sys.exit(1)
SystemExit: 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "./PlaystoreDownloader/download.py", line 80, in
main()
File "./PlaystoreDownloader/download.py", line 42, in main
api = Playstore(args.credentials.strip(' '"'))
File "/var/www/html/PlaystoreDownloader/playstore/playstore.py", line 52, in init
except json.decoder.JSONDecodeError as ex:
AttributeError: 'module' object has no attribute 'JSONDecodeError'
"`
what the problem ?! i need to use it on webserver :(

are you can make python file to call download.py from webserver.
example "index.py?id=com.whatsapp" output json code
{"status":"completed","file":"\/com.whatsapp.apk","file_size":"30061 KB"}

and please add message "completed" after download finished

There is a problem about expansion package.

First , Thank your code , it solve the problem that has plagued me for a long time.

But When i use it , i found a problem about some android app have expansion package.

Like "com.pixonic.wwr"

Besides main apk file, there is a obb file.

When you download it at google play, the obb files will download automatically.

Could you fix it later?

Dear ClaudiuGeorigiu!About download country

How did we exactly know what country can download the app when we meet follow problem.

buy app failed Google Play purchases are not supported in your country. Unfortunately you will not be able to complete purchases.

Is there any interface will tell us what country can download the app?

Application Country Download Issues

I need to download the application markets of different countries. How do I need to do it? For example, the United States, Taiwan, and Japan. Frequently your country does not allow downloading this situation.

Application failed to login after working correctly for one day

Script was working correctly till yesterday. Now it fails to login. Credentials are correct, I can install app on my phone
getting this error:
[WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 1s)
09/11/2019 10:01:29> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 2s)
09/11/2019 10:01:31> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 3s)
09/11/2019 10:01:34> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 5s)
09/11/2019 10:01:39> [ERROR][playstore.util][wrapped()] Login failed, please check your credentials (no more retries)
09/11/2019 10:01:39> [CRITICAL][main][main()] Error during the download: Login failed, please check your credentials

I did everything to make it works but it gives me failed login!

I've tried everything to make it works, My username and password are correct, no Gmail security, enabled everything to make it works, copied the android device id, downloaded applications using this account, and no success.

tried to print the error and failed!
08/11/2020 11:20:52> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 1s)
08/11/2020 11:20:53> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 2s)

download free app "Google Play purchases are not supported in your country"

root@server:/var/www/html/PlaystoreDownloader# python3 download.py "com.facebook.lite" 03/11/2017 04:08:59> [ERROR][download()] Error for app "com.facebook.lite": Google Play purchases are not supported in your country. Unfortunately you will not be able to complete purchases. Error when downloading "com.facebook.lite".

is this error depends on credentials.json or google account country ?

TypeError: __init__() got an unexpected keyword argument 'serialized_options'

Hey,

I am getting this error when running the download.py file.
I properly installed python 3.8 but still the error is there.
I installed the requirements with pip3 install -r requirements.txt as python3.8 -m pip install -r requirements.txt gave this error
ERROR :

  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.8/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/lib/python3.8/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 29, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/usr/lib/python3/dist-packages/pip/utils/__init__.py", line 23, in <module>
    from pip.locations import (
  File "/usr/lib/python3/dist-packages/pip/locations.py", line 9, in <module>
    from distutils import sysconfig
ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/lib/python3.8/distutils/__init__.py)

FULL ERROR :

Traceback (most recent call last):
  File "download.py", line 10, in <module>
    from playstore.playstore import Playstore
  File "/home/jatin/Documents/tools/PlaystoreDownloader/playstore/playstore.py", line 14, in <module>
    from playstore import playstore_proto_pb2 as playstore_protobuf
  File "/home/jatin/Documents/tools/PlaystoreDownloader/playstore/playstore_proto_pb2.py", line 17, in <module>
    DESCRIPTOR = _descriptor.FileDescriptor(
TypeError: __init__() got an unexpected keyword argument 'serialized_options'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "download.py", line 10, in <module>
    from playstore.playstore import Playstore
  File "/home/jatin/Documents/tools/PlaystoreDownloader/playstore/playstore.py", line 14, in <module>
    from playstore import playstore_proto_pb2 as playstore_protobuf
  File "/home/jatin/Documents/tools/PlaystoreDownloader/playstore/playstore_proto_pb2.py", line 17, in <module>
    DESCRIPTOR = _descriptor.FileDescriptor(
TypeError: __init__() got an unexpected keyword argument 'serialized_options'
 

Default shared/anonymous configuration to download app without giving auth details

Is this feature request related to a problem?

Using this tool require manual configuration of ANDROIDID and inserting authentication data (EMAIL+PASSWORD) to google

Proposed solution

Anonymous mode that use shared account can be used, see for example other projects that implement this:
gplaycli: https://github.com/matlink/gplaycli

By default, gplaycli fetches a token from a token dispenser server located at https://matlink.fr/token/ to login in Google Play.

AuroraStore app:
https://gitlab.com/AuroraOSS/AuroraStore https://github.com/yeriomin/YalpStore

Anonymous accounts — You can log in and download with anonymous accounts so you don't have to use your own account

YalpStore app:

By default Yalp Store connects to Google services using a built-in account, so you do not have to own a Google account to use it

Would you like to submit a pull request for this feature?

No

OSError: Cannot load native module 'Crypto.Cipher._raw_ecb'

While running download.py I am getting the following error:
OSError: Cannot load native module 'Crypto.Cipher._raw_ecb': Trying '_raw_ecb.cpython-38m-darwin.so': dlopen(/Users/tkhairnar/Documents/PlaystoreDownloader/venv/lib/python3.8/site-packages/Crypto/Util/../Cipher/_raw_ecb.cpython-38m-darwin.so, 6): image not found, Trying '_raw_ecb.abi3.so': dlopen(/Users/tkhairnar/Documents/PlaystoreDownloader/venv/lib/python3.8/site-packages/Crypto/Util/../Cipher/_raw_ecb.abi3.so, 6): image not found, Trying '_raw_ecb.so': dlopen(/Users/tkhairnar/Documents/PlaystoreDownloader/venv/lib/python3.8/site-packages/Crypto/Util/../Cipher/_raw_ecb.so, 6): image not found

I followed the installation process and running python3.8.
Can you help me?

Split APK advanced problem

Hi,

I'm using your tool (running 4a18844 from source) to automatically grab APKs for an app in different architecture (arm64-v8a and armeabi-v7a).
I recently found my GSF ID for v8a unable to login anymore, so I switched the GSF ID to a newly generated one, and the ID was generated by Aurora Store.

When I try to download the app (that should be delivered in base/split APKs, formally known as App Bundle) with your -s param,
it downloaded a merged(non-A/B, but still single architecture) apk instead, which is a suprising but unexpected behavior:
I did wanted to download merged apk, but still I want to preserve the ability to download A/B apk as well.
I'm getting ability to download a merged APK, but meanwhile I'm losing ability to download A/B format apks.

But with the same GSF ID I am able to download A/B apk from Aurora Store without problem.

I also generated a new GSF ID for the v7a, through your tool the new ID downloads merged APK for me, and the old ID still downloads A/B APKs like before.

I believe there may be some option for the Playstore API - with the same (v8a) ID I can download merged APK from your tool and A/B from Aurora Store.
If you can figure out what is the difference and make both type of APK available to download, that would be a great help.

Additionally if you can implement a "check" ability to check against if an app is available in A/B or not, it will be even better so I can skip a few redunant steps in my custom setup on demand.

I can provide both of my v7a GSF ID for you if needed.

A big thank you for you great work.

Unable to get app's details

kota@iMac—Kota ~/PlaystoreDownloader
➜  ls                                                                                                             ruby-2.4.0 master ✗
LICENSE          README.md        credentials.json demo.gif         download.py      playstore        requirements.txt
kota@iMac—Kota ~/PlaystoreDownloader
➜  python3 download.py "com.skype.raider"                                                                         ruby-2.4.0 master ✗
24/08/2017 13:33:05> [ERROR][app_details()] Error for app "com.skype.raider": Error retrieving information from server. [RH-02]
Error when downloading "com.skype.raider". Unable to get app's details.
kota@iMac—Kota ~/PlaystoreDownloader

DownloadAuthCookie was not received

PlaystoreDownloader works without any issues for last days, but today I`ve go error almost for all apps:

28/05/2021 01:12:01> [ERROR][playstore.playstore.Playstore][_download_with_progress()] DownloadAuthCookie was not received for 'com.ohbibi.fps'
28/05/2021 01:12:01> [ERROR][playstore.playstore.Playstore][download()] Error during the download: DownloadAuthCookie was not received for 'com.ohbibi.fps'
Traceback (most recent call last):
  File "/PlaystoreDownloader/playstore/playstore.py", line 384, in _download_with_progress
    cookie = delivery_data.downloadAuthCookie[0]
IndexError: list index (0) out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/PlaystoreDownloader/playstore/playstore.py", line 719, in download
    list(
  File "/PlaystoreDownloader/playstore/playstore.py", line 389, in _download_with_progress
    raise RuntimeError(
RuntimeError: DownloadAuthCookie was not received for 'com.ohbibi.fps'
28/05/2021 01:12:01> [CRITICAL][__main__][main()] Error when downloading 'com.ohbibi.fps'

I`ve try few accounts but no luck.

Error retrieving information from server. DF-DFERH-01

root@debian:/home/xxxxxxx/PlaystoreDownloader# python3.7 download.py "com.video.music"
30/09/2019 22:07:24> [ERROR][playstore.playstore.Playstore][app_details()] Error for app "com.video.music": Error retrieving information from server. DF-DFERH-01
30/09/2019 22:07:24> [CRITICAL][main][main()] Error when downloading "com.video.music": unable to get app's details

~uname -ans
Linux debian 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) x86_64 GNU/Linux

_execute_request() dynamic user-agent

Hello,
From what I've read, the useragent of a request to Google Play can have an affect on the ability of a device to download an app.
And so, I was wondering what the reasoning behind the static user-agent used in the _execute_request() method (was this taken into consideration, or is it just impossible to do without the devices specifications?).
Great library!

Error retrieving information from server. DF-DFERH-01

I have configured the credentials.json with valid user and device ID, enabled the "less secure app" option. However, I always get this error message upon downloading any app.

I tried to change LANG_CODE and LANG but no luck. The account does not bind with any 2FA.

15/05/2020 15:19:55> [ERROR][playstore.playstore.Playstore][app_details()] Error for app 'com.google.android.gms': Error retrieving information from server. DF-DFERH-01
15/05/2020 15:19:55> [CRITICAL][__main__][main()] Error when downloading 'com.google.android.gms': unable to get app's details

version of apk file

Is there a way to name the apks by version? We are archiving apk files by version number for clients from china. So version number as part of the output filename would be really neat. Basically if we put this to crontab, even we do not know the version without looking up to web.

how to unlock download limitation ?

we are building a website based on your API ... when we try to download more than three apps/games in the same time the API stop working ... also download speed not that good ... is there any way around these issues

Thank you

Login failed, please check your credentials

Prerequisites

Before opening this issue, I tried the following steps:

Description

I've done the setup as instructed (install from source) but am getting Login failed, please check your credentials

Steps to reproduce

  1. Install from source
  2. Setup `credentials.json`
  3. execute below command
pipenv run python download.py "com.theapache64.papercop"

Expected behavior:

APK Downloaded

Actual behavior:

~/Desktop/Untitled Folder 6/PlaystoreDownloader$ pipenv run python download.py "com.theapache64.papercop"
29/01/2021 07:14:32> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 1s)
29/01/2021 07:14:34> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 2s)
29/01/2021 07:14:36> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 3s)
29/01/2021 07:14:39> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 5s)
29/01/2021 07:14:44> [ERROR][playstore.util][wrapped()] Login failed, please check your credentials (no more retries)
29/01/2021 07:14:44> [CRITICAL][__main__][main()] Error during the download: Login failed, please check your credentials

Versions

  • Installation mode (e.g., from source or with Docker): Source
  • PlaystoreDownloader version (e.g., commit c35f8bc): 4a18844
  • OS (e.g., Ubuntu 18.04): Ubuntu 16.04
  • Python version (e.g., 3.8.6): Python 3.6.12 (default, Aug 18 2020, 02:08:22)

Additional information

can‘t download, login failed

I run the script and get the failed results.
I download apps successfully in real phone using the same accounts.

What's wrong?

ec2-user@ip-172-31-43-179:~/project/PlaystoreDownloader-master> python3 download.py "com.android.vending" 01/04/2020 10:16:14> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 1s) 01/04/2020 10:16:15> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 2s) 01/04/2020 10:16:17> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 3s) 01/04/2020 10:16:20> [WARNING][playstore.util][wrapped()] Login failed, please check your credentials (retrying in 5s)

I cannot get response from LOGIN_URL

When I run the script, the program always blocks when I type 'python3 download.py "com.package.name"', and I can see the debug information: "[DEBUG][urllib3.connectionpool][_new_conn()] Starting new HTTPS connection (1): android.clients.google.com:443". I have checked my network connection and the VPN configuration, and I find no error, I can open Google Play on my chrome browser and download apk in my Pixel. So I wonder what's wrong with my net connection.

Add an optional "tag" command line

Let the user specify an optional tag (--tag) for the downloaded file, so that the name of the file will be:

[OPTIONAL_TAG] apkname.apk

GUI Gtk

I could do a graphical interface in Gtk 3, would you agree?

Out of range

When i using the command :
python3 download.py "com.madfingergames.legends"

report an error:

Traceback (most recent call last): File "download.py", line 98, in <module> main() File "download.py", line 90, in main success = api.download(details['package_name'], downloaded_apk_file_path, download_obb=False) File "/data/PlaystoreDownloader/playstore/playstore.py", line 376, in download offer_type = details.docV2.offer[0].offerType File "/usr/local/lib/python3.6/site-packages/google/protobuf/internal/containers.py", line 204, in __getitem__ return self._values[key] IndexError: list index out of range

Wrong code inputted? "Login failed, please check your credentials" error persists.

Disabled all security features including 2-Step Verification.

Working directory:
/C/Source/credentialsfolder or C:\Source\credentialsfolder
Note: credentialsfolder already contains the .json file and the output folder.

Code inputs tried:
$ winpty docker run
-u $(id -u):$(id -g)
-v "${PWD}/credentials.json":"/app/credentials.json"
-v "${PWD}/output/":"/app/Downloads/"
--rm -it downloader "net.zedge.android"

&

$ winpty docker run
-v "/c/Source/credentialsfolder/credentials.json":"/app/credentials.json"
-v "/c/Source/credentialsfolder/output/":"/app/Downloads/"
--rm -it downloader "net.zedge.android"

I assume it's the input's fault and not the credentials.json file. Would you suggest a way of how I could type it, or give an input that works?

Screenshot (68)

Note: I don't know why, but these codes put these odd files and folders in the credentialsfolder.

Error during the apk download

Sometimes there can be errors after the apk download has started, but before it has finished. This exception should be caught (try to download again the apk or mark the download as failed).

Traceback (most recent call last):
  File "download.py", line 80, in <module>
    main()
  File "download.py", line 72, in main
    success = api.download(details['package_name'], downloaded_apk_file_path)
  File "/user/playstore/playstore.py", line 388, in download
    bar_format='{l_bar}{bar}|[{elapsed}<{remaining}, {rate_fmt}]'):
  File "/usr/local/lib/python3.5/dist-packages/tqdm/_tqdm.py", line 872, in __iter__
    for obj in iterable:
  File "/user/.local/lib/python3.5/site-packages/requests/models.py", line 679, in generate
    raise ChunkedEncodingError(e)
requests.exceptions.ChunkedEncodingError: ("Connection broken: ConnectionResetError(104, 'Connection reset by peer')", ConnectionResetError(104, 'Connection reset by peer'))

new features

thank you for this awesome apk downloader , can you display the download link and basic app details like name and apk size on the web interface

Splitting the download function

Hey Claudiu,
I has wondering if there are any plans on splitting the _download_with_progress method into the different parts it includes (details, purchase, delivery..) to allow for more modular usage of the project (for example, I need to edit the update section, but would still want to easily merge in future changes).
Again, I really love the project.
Thanks

"Your device is not compatible with this item."

Using the Docker image, I've tried this with 3 working Google accounts each with their own Device ID. I tried downloading ~20 different apps. All of these combinations always end up with:

# docker run -v "/tmp/tmp.KgE9sNyamy/credentials.json":"/app/credentials.json" -v /tmp/dl/:/app/Downloads/ --rm -it downloader org.mozilla.firefox
14/09/2020 10:39:29> [ERROR][playstore.playstore.Playstore][_handle_missing_payload()] Error for app 'org.mozilla.firefox': Your device is not compatible with this item.
14/09/2020 10:39:29> [ERROR][playstore.playstore.Playstore][download()] Error during the download: Error for app 'org.mozilla.firefox': Your device is not compatible with this item.
Traceback (most recent call last):
  File "/app/playstore/playstore.py", line 684, in download
    list(
  File "/app/playstore/playstore.py", line 322, in _download_with_progress
    _handle_missing_payload(response, package_name)
  File "/app/playstore/playstore.py", line 274, in _handle_missing_payload
    raise RuntimeError(
RuntimeError: Error for app 'org.mozilla.firefox': Your device is not compatible with this item.
14/09/2020 10:39:29> [CRITICAL][__main__][main()] Error when downloading 'org.mozilla.firefox'

Is it possible to merge split APK apps?

I try to merge those all into one APK file,but being forced to use a made up signing key means the APK can’t be installed as an update to the genuine app.

Is there maybe an API to get a merged APK include of all the split ones?

Error, el dispositivo no es compatible

python3 download.py "com.google.android.googlequicksearchbox"
08/04/2020 12:56:41> [ERROR][playstore.playstore.Playstore][_download_with_progress()] Error for app 'com.google.android.googlequicksearchbox': Tu dispositivo no es compatible con este elemento.
08/04/2020 12:56:41> [ERROR][playstore.playstore.Playstore][download()] Error during the download: Error for app 'com.google.android.googlequicksearchbox': Tu dispositivo no es compatible con este elemento.
Traceback (most recent call last):
File "/Users/noclastic/Downloads/arsenalOsint/PlaystoreDownloader/playstore/playstore.py", line 750, in download
list(
File "/Users/noclastic/Downloads/arsenalOsint/PlaystoreDownloader/playstore/playstore.py", line 282, in _download_with_progress
raise RuntimeError(
RuntimeError: Error for app 'com.google.android.googlequicksearchbox': Tu dispositivo no es compatible con este elemento.
08/04/2020 12:56:41> [CRITICAL][main][main()] Error when downloading 'com.google.android.googlequicksearchbox'

Me es imposible descargar las apk. ¿Alguna solución a este error? Gracias. Un saludo

error after install

root@ubuntu:~/PlaystoreDownloader# python3 download.py "com.whatsapp"
Traceback (most recent call last):
  File "download.py", line 9, in <module>
    from playstore.playstore import Playstore
  File "/root/PlaystoreDownloader/playstore/playstore.py", line 9, in <module>
    import requests
ImportError: No module named 'requests'
root@ubuntu:~/PlaystoreDownloader# python3 download.py "com.facebook"
Traceback (most recent call last):
  File "download.py", line 9, in <module>
    from playstore.playstore import Playstore
  File "/root/PlaystoreDownloader/playstore/playstore.py", line 9, in <module>
    import requests
ImportError: No module named 'requests'
root@ubuntu:~/PlaystoreDownloader#

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.