重要的
该项目已存档,不再维护。
用于直接从 Google Play 商店下载 Android 应用程序的命令行工具。
PlaystoreDownloader是一个直接从 Google Play 商店下载 Android 应用程序的工具。初始(一次性)配置后,可以通过指定应用程序包名称来下载应用程序。
该项目仅用于学习目的,与 Google 没有任何关系。
命令行界面 |
---|
网页界面 |
---|
有两种方法可以在您自己的计算机上获取 PlaystoreDownloader 的工作副本:使用 Docker 或直接在Python 3
环境中使用源代码。在这两种情况下,首先要做的就是获取此存储库的本地副本,因此在要保存项目的目录中打开一个终端并克隆存储库:
$ git clone https://github.com/ClaudiuGeorgiu/PlaystoreDownloader.git
这是安装 PlaystoreDownloader 的建议方法,因为唯一的要求是安装最新版本的 Docker:
$ docker --version
Docker version 20.10.7, build f0df350
官方 PlaystoreDownloader Docker 映像可在 Docker Hub 上找到(从此存储库自动构建):
$ # Download the Docker image.
$ docker pull claudiugeorgiu/playstore-downloader
$ # Give it a shorter name.
$ docker tag claudiugeorgiu/playstore-downloader downloader
如果您从 Docker Hub 下载了官方镜像,那么您就可以使用该工具了,所以请继续检查使用说明,否则在之前创建的PlaystoreDownloader/
目录(包含Dockerfile
的文件夹)中执行以下命令以构建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 .
当 Docker 镜像准备就绪后,进行快速测试以检查所有内容是否已正确安装:
$ docker run --rm -it downloader --help
usage: python3 -m playstoredownloader.cli [-h] [-b] [-s] [-c FILE] [-o DIR] [-t TAG] package [package ...]
...
PlaystoreDownloader 现在可以使用了,请参阅使用说明以获取更多信息。
除了有效的 Google Play 商店凭据之外,该项目的唯一要求是有效的Python 3
(至少3.7
)安装和pipenv
(用于依赖项管理)。
在项目主目录( PlaystoreDownloader/
)中运行以下命令来安装所需的依赖项:
$ # 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
安装完所有内容后,进行快速测试以检查一切是否正常:
$ pipenv run python3 -m playstoredownloader.cli --help
usage: python3 -m playstoredownloader.cli [-h] [-b] [-s] [-c FILE] [-o DIR] [-t TAG] package [package ...]
...
PlaystoreDownloader 现在可以使用了,请参阅使用说明以获取更多信息。
在与 Google Play 商店交互之前,您必须提供有效的凭据以及与您的帐户关联的ANDROID ID 。在尝试使用此工具之前,请修改credentials.json文件并插入所需的信息(更改后提交此文件之前请三思而后行,否则您可能会泄露您的凭据):
在credentials.json 文件的USERNAME
和PASSWORD
字段中输入您的 Google 电子邮件和密码。需要此信息来向 Google 服务器进行身份验证。如果您激活了两步验证,您将需要为PASSWORD
字段生成应用程序密码。
在 Android 设备(真实或模拟)上使用上述凭据,并使用设备上的官方 Google Play 商店下载至少一个应用程序。此步骤是必要的,以便将设备的ANDROID ID与您的帐户相关联,以便您能够像直接使用设备一样下载应用程序。请勿从设备中删除该帐户,否则其ANDROID ID将不再有效。
获取设备的ANDROID ID并填写credentials.json文件的ANDROID_ID
字段。您可以通过在设备上安装设备 ID 应用程序来获取ANDROID ID ,然后复制与Google Service Framework (GSF)
对应的字符串(使用此字符串而不是应用程序提供的Android Device ID
)。
如果执行上述步骤后出现与身份验证相关的错误,请考虑以下操作(使用用于下载应用程序的帐户登录时访问链接):
允许安全性较低的应用程序访问您的帐户 (https://myaccount.google.com/lesssecureapps)
暂时解锁对您帐户的访问权限 (https://accounts.google.com/DisplayUnlockCaptcha)
请注意,您将只能下载与上述ANDROID ID对应的设备兼容的应用程序,进一步的限制可能会影响可供下载的应用程序总数。
按照配置中的说明配置 Google Play 商店凭据后,您应该有一个可供使用的有效的credentials.json
文件。使用说明取决于您安装该工具的方式。
具有凭据的文件不包含在 Docker 映像中,因此必须将其安装到容器中。还必须安装下载目录,否则主机将无法访问下载的应用程序。如果当前目录 ( ${PWD}
) 包含credentials.json
文件和output/
文件夹,则下载包名为com.application.example
的应用程序的命令将变为:
$ 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 "
如果下载成功,生成的.apk
文件将保存在运行命令的目录中包含的output/
文件夹中(键入$ docker run --rm -it downloader --help
或检查可用参数以获取更多信息)。
还提供一个简单的 Web 界面:
$ 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.
在项目主目录( PlaystoreDownloader/
)中,使用待下载应用的包名调用以下指令:
$ pipenv run python3 -m playstoredownloader.cli " com.application.example "
如果下载成功,默认情况下生成的.apk
文件将保存在PlaystoreDownloader/Downloads/
目录中。您可以通过提供额外的-o "path/to/download/folder/"
参数来更改下载目录的位置(输入$ pipenv run python3 -m playstoredownloader.cli --help
或检查可用参数以获取更多信息)。
还提供一个简单的 Web 界面:
$ pipenv run python3 flask_app.py
$ # Navigate to http://localhost:5000/ to use the web interface.
所有参数均在帮助消息中描述:
$ # 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 ...]
...
唯一的强制参数是要下载的应用程序的package
名称,如 Google Play 商店中显示的那样(例如com.spotify.music
或com.whatsapp
)。其他可选参数如下:
-b
是用于随应用程序一起下载附加.obb
文件(如果有)的标志。有关详细信息,请参阅扩展文件。附加文件将保存在与下载的应用程序相同的目录中。注意:新应用程序将不再支持扩展文件。
-s
是一个标志,用于随应用程序一起下载附加的拆分.apk
文件(如果有)。有关详细信息,请参阅动态交付。附加文件将保存在与下载的应用程序相同的目录中。
-c CREDENTIALS
用于设置包含 Google Play 商店凭据的 JSON 配置文件的路径。如果未指定,默认情况下该工具将尝试使用位于运行命令的目录中名为credentials.json
的文件。
-o DIR
用于设置保存下载的.apk
文件的目录路径(相对或绝对)(例如-o /home/user/Desktop/
)。如果路径包含缺失的目录,则会自动创建它们。如果未指定,默认情况下该文件将保存在运行该工具时创建的Downloads/
目录中。
-t TAG
可用于设置将添加到文件名前面的标签,例如,通过使用-t "LABEL"
,下载的应用程序的最终名称将类似于[LABEL] filename.apk
。注意:该标签应用于主应用程序和附加文件(如果有)。
请注意,目前只有命令行界面可以使用上述参数进行配置,Web 界面将仅询问包名称,并将使用所有其他参数的默认值。
您可以根据 MIT 许可证自由使用此代码。