Importante
Este proyecto está archivado y ya no se mantiene.
Una herramienta de línea de comandos para descargar aplicaciones de Android directamente desde Google Play Store.
PlaystoreDownloader es una herramienta para descargar aplicaciones de Android directamente desde Google Play Store. Después de una configuración inicial (única), las aplicaciones se pueden descargar especificando el nombre de su paquete.
Este proyecto está destinado únicamente a fines de aprendizaje y no está afiliado a Google de ninguna manera .
Interfaz de línea de comando |
---|
Interfaz Web |
---|
Hay dos formas de obtener una copia funcional de PlaystoreDownloader en su propia computadora: usando Docker o usando directamente el código fuente en un entorno Python 3
. En ambos casos, lo primero que debe hacer es obtener una copia local de este repositorio, así que abra una terminal en el directorio donde desea guardar el proyecto y clone el repositorio:
$ git clone https://github.com/ClaudiuGeorgiu/PlaystoreDownloader.git
Esta es la forma sugerida de instalar PlaystoreDownloader, ya que el único requisito es tener instalada una versión reciente de Docker:
$ docker --version
Docker version 20.10.7, build f0df350
La imagen oficial de PlaystoreDownloader Docker está disponible en Docker Hub (creada automáticamente desde este repositorio):
$ # Download the Docker image.
$ docker pull claudiugeorgiu/playstore-downloader
$ # Give it a shorter name.
$ docker tag claudiugeorgiu/playstore-downloader downloader
Si descargó la imagen oficial de Docker Hub, está listo para usar la herramienta, así que continúe y verifique las instrucciones de uso; de lo contrario, ejecute el siguiente comando en el directorio PlaystoreDownloader/
creado previamente (la carpeta que contiene el Dockerfile
) para construir el Imagen acoplable:
$ # 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 .
Cuando la imagen de Docker esté lista, haz una prueba rápida para comprobar que todo se instaló correctamente:
$ docker run --rm -it downloader --help
usage: python3 -m playstoredownloader.cli [-h] [-b] [-s] [-c FILE] [-o DIR] [-t TAG] package [package ...]
...
PlaystoreDownloader ya está listo para usarse; consulte las instrucciones de uso para obtener más información.
Además de las credenciales válidas de Google Play Store, el único requisito de este proyecto es una instalación funcional Python 3
(al menos 3.7
) y pipenv
(para gestión de dependencias).
Ejecute los siguientes comandos en el directorio principal del proyecto ( PlaystoreDownloader/
) para instalar las dependencias necesarias:
$ # 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
Una vez instalado todo, haz una prueba rápida para comprobar que todo funciona correctamente:
$ pipenv run python3 -m playstoredownloader.cli --help
usage: python3 -m playstoredownloader.cli [-h] [-b] [-s] [-c FILE] [-o DIR] [-t TAG] package [package ...]
...
PlaystoreDownloader ya está listo para usarse; consulte las instrucciones de uso para obtener más información.
Antes de interactuar con Google Play Store, debe proporcionar credenciales válidas y una ID de ANDROID asociada a su cuenta. Modifique el archivo credenciales.json e inserte la información requerida antes de intentar utilizar esta herramienta (y piénselo dos veces antes de enviar este archivo después del cambio, o podría filtrar sus credenciales):
Ingrese su correo electrónico y contraseña de Google en los campos USERNAME
y PASSWORD
del archivo credenciales.json. Esta información es necesaria para autenticarse en los servidores de Google. En caso de que tengas activada la verificación en dos pasos, deberás generar una contraseña de aplicación para el campo PASSWORD
.
Utilice las credenciales anteriores en un dispositivo Android (real o emulado) y descargue al menos una aplicación utilizando la tienda oficial de Google Play en el dispositivo. Este paso es necesario para asociar el ID de ANDROID del dispositivo a su cuenta, de modo que pueda descargar aplicaciones como si estuviera usando directamente su dispositivo. No elimine la cuenta del dispositivo o su ID de ANDROID ya no será válida.
Obtenga el ID de ANDROID del dispositivo y complete el campo ANDROID_ID
del archivo credenciales.json. Puede obtener el ID de ANDROID instalando la aplicación Device ID en su dispositivo, luego copie la cadena correspondiente a Google Service Framework (GSF)
(use esta cadena en lugar del Android Device ID
presentado por la aplicación).
En caso de errores relacionados con la autenticación después de los pasos anteriores, considere las siguientes acciones (visite los enlaces mientras está conectado con la cuenta utilizada para descargar las aplicaciones):
permitir que aplicaciones menos seguras accedan a su cuenta (https://myaccount.google.com/lesssecureapps)
desbloquear temporalmente el acceso a su cuenta (https://accounts.google.com/DisplayUnlockCaptcha)
Tenga en cuenta que sólo podrá descargar las aplicaciones compatibles con el dispositivo correspondiente al ID de ANDROID antes mencionado y otras limitaciones pueden influir en la cantidad total de aplicaciones disponibles para descargar .
Después de configurar las credenciales de Google Play Store como se describe en la configuración, debe tener un archivo credentials.json
válido listo para usar. Las instrucciones de uso dependen de cómo instaló la herramienta.
El archivo con las credenciales no está incluido en la imagen de Docker, por lo que debe montarse en el contenedor. También se debe montar un directorio de descarga; de lo contrario, la máquina host no podrá acceder a la aplicación descargada. Si el directorio actual ( ${PWD}
) contiene el archivo credentials.json
y una carpeta output/
, el comando para descargar una aplicación con el nombre de paquete com.application.example
se convierte en:
$ 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 "
Si la descarga se realiza correctamente, el archivo .apk
resultante se guardará en la carpeta output/
contenida en el directorio donde se ejecutó el comando (escriba $ docker run --rm -it downloader --help
o verifique los parámetros disponibles para obtener más información ).
También está disponible una interfaz web sencilla:
$ 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.
En el directorio principal del proyecto ( PlaystoreDownloader/
), llame a la siguiente instrucción usando el nombre del paquete de la aplicación que se descargará:
$ pipenv run python3 -m playstoredownloader.cli " com.application.example "
Si la descarga se realiza correctamente, de forma predeterminada el archivo .apk
resultante se guardará en el directorio PlaystoreDownloader/Downloads/
. Puede cambiar la ubicación del directorio de descarga proporcionando un argumento adicional -o "path/to/download/folder/"
(escriba $ pipenv run python3 -m playstoredownloader.cli --help
o verifique los parámetros disponibles para obtener más información).
También está disponible una interfaz web sencilla:
$ pipenv run python3 flask_app.py
$ # Navigate to http://localhost:5000/ to use the web interface.
Todos los parámetros se describen en el mensaje de ayuda:
$ # 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 ...]
...
El único parámetro obligatorio es el nombre package
de la aplicación que se va a descargar, tal como aparece en Google Play Store (por ejemplo, com.spotify.music
o com.whatsapp
). Los otros argumentos opcionales son los siguientes:
-b
es una marca para descargar los archivos .obb
adicionales junto con la aplicación (si los hay). Consulte Archivos de expansión para obtener más información. Los archivos adicionales se guardarán en el mismo directorio que la aplicación descargada. Nota: los archivos de expansión ya no serán compatibles con las aplicaciones nuevas .
-s
es una marca para descargar los archivos .apk
divididos adicionales junto con la aplicación (si los hay). Consulte Entrega dinámica para obtener más información. Los archivos adicionales se guardarán en el mismo directorio que la aplicación descargada.
-c CREDENTIALS
se utiliza para establecer la ruta al archivo de configuración JSON que contiene las credenciales de Google Play Store. Si no se especifica, de forma predeterminada la herramienta intentará utilizar un archivo llamado credentials.json
ubicado en el directorio donde se ejecuta el comando.
-o DIR
se utiliza para establecer la ruta (relativa o absoluta) del directorio donde guardar el archivo .apk
descargado (por ejemplo, -o /home/user/Desktop/
). Si la ruta contiene directorios faltantes, se crearán automáticamente. Si no se especifica, de forma predeterminada el archivo se guardará en un directorio Downloads/
creado donde se ejecuta la herramienta.
-t TAG
se puede utilizar para establecer una etiqueta que se antepondrá al nombre del archivo, por ejemplo, al usar -t "LABEL"
el nombre final de la aplicación descargada se verá como [LABEL] filename.apk
. Nota: la etiqueta se aplica a la aplicación principal y a los archivos adicionales (si los hay).
Tenga en cuenta que actualmente solo la interfaz de línea de comando se puede configurar con los argumentos anteriores, la interfaz web solo solicitará un nombre de paquete y usará los valores predeterminados para todos los demás parámetros .
Eres libre de utilizar este código bajo la licencia MIT.