Importante
Este projeto está arquivado e não é mais mantido.
Uma ferramenta de linha de comando para baixar aplicativos Android diretamente da Google Play Store.
PlaystoreDownloader é uma ferramenta para baixar aplicativos Android diretamente da Google Play Store. Após uma configuração inicial (única), os aplicativos podem ser baixados especificando o nome do pacote.
Este projeto destina-se apenas a fins de aprendizagem e não é afiliado de forma alguma ao Google .
Interface de linha de comando |
---|
Interface Web |
---|
Existem duas maneiras de obter uma cópia funcional do PlaystoreDownloader em seu próprio computador: usando Docker ou usando diretamente o código-fonte em um ambiente Python 3
. Em ambos os casos, a primeira coisa a fazer é obter uma cópia local deste repositório, então abra um terminal no diretório onde deseja salvar o projeto e clone o repositório:
$ git clone https://github.com/ClaudiuGeorgiu/PlaystoreDownloader.git
Esta é a forma sugerida de instalação do PlaystoreDownloader, pois o único requisito é ter uma versão recente do Docker instalada:
$ docker --version
Docker version 20.10.7, build f0df350
A imagem oficial do PlaystoreDownloader Docker está disponível no Docker Hub (construída automaticamente a partir deste repositório):
$ # Download the Docker image.
$ docker pull claudiugeorgiu/playstore-downloader
$ # Give it a shorter name.
$ docker tag claudiugeorgiu/playstore-downloader downloader
Se você baixou a imagem oficial do Docker Hub, você está pronto para usar a ferramenta, então vá em frente e verifique as instruções de uso, caso contrário, execute o seguinte comando no diretório PlaystoreDownloader/
criado anteriormente (a pasta que contém o Dockerfile
) para construir o Imagem do Docker:
$ # Make sure to run the command in PlaystoreDownloader/ directory.
$ # It will take some time to download and install all the dependencies.
$ docker build -t downloader .
Quando a imagem Docker estiver pronta, faça um teste rápido para verificar se tudo foi instalado corretamente:
$ docker run --rm -it downloader --help
usage: python3 -m playstoredownloader.cli [-h] [-b] [-s] [-c FILE] [-o DIR] [-t TAG] package [package ...]
...
O PlaystoreDownloader agora está pronto para ser usado, consulte as instruções de uso para obter mais informações.
Além das credenciais válidas da Google Play Store, o único requisito deste projeto é uma instalação funcional Python 3
(pelo menos 3.7
) e pipenv
(para gerenciamento de dependências).
Execute os seguintes comandos no diretório principal do projeto ( PlaystoreDownloader/
) para instalar as dependências necessárias:
$ # Make sure to run the commands in PlaystoreDownloader/ directory.
$ # This project uses pipenv (https://github.com/pypa/pipenv) for dependency management.
$ # It can be installed with the following command:
$ # python3 -m pip install pipenv
$ # Install PlaystoreDownloader's requirements (a virtual environment will be created).
$ pipenv install --deploy
Depois de tudo instalado, faça um teste rápido para verificar se tudo funciona corretamente:
$ pipenv run python3 -m playstoredownloader.cli --help
usage: python3 -m playstoredownloader.cli [-h] [-b] [-s] [-c FILE] [-o DIR] [-t TAG] package [package ...]
...
O PlaystoreDownloader agora está pronto para ser usado, consulte as instruções de uso para obter mais informações.
Antes de interagir com a Google Play Store você deve fornecer credenciais válidas e um ANDROID ID associado à sua conta. Modifique o arquivo credenciais.json e insira as informações necessárias antes de tentar usar esta ferramenta (e pense duas vezes antes de enviar este arquivo após a alteração, ou você poderá vazar suas credenciais):
Digite seu e-mail e senha do Google nos campos USERNAME
e PASSWORD
do arquivo credenciais.json. Essas informações são necessárias para autenticação nos servidores do Google. Caso você tenha a verificação em duas etapas ativada, será necessário gerar uma senha de aplicativo para o campo PASSWORD
.
Use as credenciais acima em um dispositivo Android (real ou emulado) e baixe pelo menos um aplicativo usando a Google Play Store oficial no dispositivo. Esta etapa é necessária para associar o ANDROID ID do dispositivo à sua conta, para que você possa baixar aplicativos como se estivesse usando diretamente o seu dispositivo. Não remova a conta do dispositivo ou seu ANDROID ID não será mais válido.
Obtenha o ANDROID ID do dispositivo e preencha o campo ANDROID_ID
do arquivo credenciais.json. Você pode obter o ANDROID ID instalando o aplicativo Device ID em seu dispositivo e, em seguida, copiar a string correspondente ao Google Service Framework (GSF)
(use esta string em vez do Android Device ID
apresentado pelo aplicativo).
Em caso de erros relacionados à autenticação após os passos acima, considere as seguintes ações (acesse os links enquanto estiver logado com a conta utilizada para baixar os aplicativos):
permitir que aplicativos menos seguros acessem sua conta (https://myaccount.google.com/lesssecureapps)
desbloquear temporariamente o acesso à sua conta (https://accounts.google.com/DisplayUnlockCaptcha)
Observe que você poderá baixar apenas os aplicativos compatíveis com o dispositivo correspondente ao mencionado ANDROID ID e outras limitações podem influenciar o número total de aplicativos disponíveis para download .
Depois de configurar as credenciais da Google Play Store conforme descrito na configuração, você deverá ter um arquivo credentials.json
válido pronto para ser usado. As instruções de uso dependem de como você instalou a ferramenta.
O arquivo com as credenciais não está incluído na imagem do Docker, portanto deve ser montado no contêiner. Um diretório de download também deve ser montado, caso contrário o aplicativo baixado não estará acessível à máquina host. Se o diretório atual ( ${PWD}
) contiver o arquivo credentials.json
e uma pasta output/
, o comando para baixar um aplicativo com o nome do pacote com.application.example
se tornará:
$ docker run
-u $( id -u ) : $( id -g )
-v " ${PWD} /credentials.json " : " /app/credentials.json "
-v " ${PWD} /output/ " : " /app/Downloads/ "
--rm -it downloader " com.application.example "
Se o download for bem-sucedido, o arquivo .apk
resultante será salvo na pasta output/
contida no diretório onde o comando foi executado (digite $ docker run --rm -it downloader --help
ou verifique os parâmetros disponíveis para obter mais informações ).
Uma interface web simples também está disponível:
$ docker run
-u $( id -u ) : $( id -g )
-v " ${PWD} /credentials.json " : " /app/credentials.json "
-v " ${PWD} /output/ " : " /app/Downloads/ "
-p 5000:5000
--entrypoint=python3
--rm -it downloader flask_app.py
$ # Navigate to http://localhost:5000/ to use the web interface.
No diretório principal do projeto ( PlaystoreDownloader/
), chame a seguinte instrução usando o nome do pacote do aplicativo a ser baixado:
$ pipenv run python3 -m playstoredownloader.cli " com.application.example "
Se o download for bem-sucedido, por padrão, o arquivo .apk
resultante será salvo no diretório PlaystoreDownloader/Downloads/
. Você pode alterar o local do diretório de download fornecendo um argumento adicional -o "path/to/download/folder/"
(digite $ pipenv run python3 -m playstoredownloader.cli --help
ou verifique os parâmetros disponíveis para obter mais informações).
Uma interface web simples também está disponível:
$ pipenv run python3 flask_app.py
$ # Navigate to http://localhost:5000/ to use the web interface.
Todos os parâmetros estão descritos na mensagem de ajuda:
$ # With Docker.
$ docker run --rm -it downloader --help
$ # With source.
$ pipenv run python3 -m playstoredownloader.cli --help
usage: python3 -m playstoredownloader.cli [-h] [-b] [-s] [-c FILE] [-o DIR] [-t TAG] package [package ...]
...
O único parâmetro obrigatório é o nome package
do aplicativo a ser baixado, conforme aparece na Google Play Store (por exemplo, com.spotify.music
ou com.whatsapp
). Os outros argumentos opcionais são os seguintes:
-b
é um sinalizador para baixar os arquivos .obb
adicionais junto com o aplicativo (se houver). Consulte Arquivos de expansão para obter mais informações. Os arquivos adicionais serão salvos no mesmo diretório do aplicativo baixado. Observação: os arquivos de expansão não serão mais compatíveis com novos aplicativos .
-s
é um sinalizador para baixar os arquivos .apk
divididos adicionais junto com o aplicativo (se houver). Consulte Entrega Dinâmica para obter mais informações. Os arquivos adicionais serão salvos no mesmo diretório do aplicativo baixado.
-c CREDENTIALS
é usado para definir o caminho para o arquivo de configuração JSON que contém as credenciais da Google Play Store. Se não for especificado, por padrão a ferramenta tentará usar um arquivo chamado credentials.json
localizado no diretório onde o comando é executado.
-o DIR
é usado para definir o caminho (relativo ou absoluto) do diretório onde salvar o arquivo .apk
baixado (por exemplo, -o /home/user/Desktop/
). Se o caminho contiver diretórios ausentes, eles serão criados automaticamente. Se não for especificado, por padrão o arquivo será salvo em um diretório Downloads/
criado onde a ferramenta é executada.
-t TAG
pode ser usado para definir uma tag que será anexada ao nome do arquivo, por exemplo, usando -t "LABEL"
o nome final do aplicativo baixado será semelhante a [LABEL] filename.apk
. Nota: a tag é aplicada ao aplicativo principal e aos arquivos adicionais (se houver).
Observe que atualmente apenas a interface de linha de comando é configurável com os argumentos acima, a interface web solicitará apenas um nome de pacote e usará os valores padrão para todos os outros parâmetros .
Você está livre para usar este código sob a licença do MIT.