Важный
Этот проект заархивирован и больше не поддерживается.
Инструмент командной строки для загрузки приложений Android прямо из Google Play Store.
PlaystoreDownloader — инструмент для загрузки приложений Android прямо из Google Play Store. После первоначальной (однократной) настройки приложения можно загружать, указав имя их пакета.
Этот проект предназначен только для образовательных целей и никак не связан с Google .
Интерфейс командной строки |
---|
Веб-интерфейс |
---|
Есть два способа получить рабочую копию PlaystoreDownloader на свой компьютер: либо с помощью Docker, либо напрямую используя исходный код в среде Python 3
. В обоих случаях первое, что нужно сделать, — это получить локальную копию этого репозитория, поэтому откройте терминал в каталоге, в котором вы хотите сохранить проект, и клонируйте репозиторий:
$ git clone https://github.com/ClaudiuGeorgiu/PlaystoreDownloader.git
Это рекомендуемый способ установки PlaystoreDownloader, поскольку единственным требованием является наличие последней версии Docker:
$ docker --version
Docker version 20.10.7, build f0df350
Официальный образ Docker PlaystoreDownloader доступен в 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
), чтобы собрать Докер-образ:
$ # 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 Store, единственным требованием для этого проекта является работающая установка 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 Store, вам необходимо предоставить действительные учетные данные и идентификатор ANDROID, связанный с вашей учетной записью. Пожалуйста, измените файл Credentials.json и вставьте необходимую информацию, прежде чем пытаться использовать этот инструмент (и подумайте дважды, прежде чем сохранять этот файл после изменения, иначе вы можете потерять свои учетные данные):
Введите свой адрес электронной почты и пароль Google в полях USERNAME
и PASSWORD
файла Credition.json. Эта информация необходима для аутентификации на серверах Google. Если у вас активирована двухэтапная аутентификация, вам потребуется сгенерировать пароль приложения для поля PASSWORD
.
Используйте указанные выше учетные данные на устройстве Android (реальном или эмулированном) и загрузите хотя бы одно приложение из официального магазина Google Play на устройстве. Этот шаг необходим для того, чтобы связать ANDROID ID устройства с вашей учетной записью, чтобы вы могли загружать приложения, как если бы вы напрямую использовали свое устройство. Не удаляйте учетную запись с устройства, иначе ее ANDROID ID перестанет быть действительным.
Получите ANDROID ID устройства и заполните поле ANDROID_ID
файла Credition.json. Вы можете получить ANDROID ID , установив приложение Device ID на свое устройство, а затем скопировав строку, соответствующую Google Service Framework (GSF)
(используйте эту строку вместо Android Device ID
представленного приложением).
В случае возникновения ошибок, связанных с аутентификацией после вышеописанных действий, рассмотрите следующие действия (посещайте ссылки, войдя в систему под учетной записью, используемой для загрузки приложений):
разрешить менее безопасным приложениям доступ к вашей учетной записи (https://myaccount.google.com/lesssecureapps)
временно разблокировать доступ к вашей учетной записи (https://accounts.google.com/DisplayUnlockCaptcha)
Обратите внимание, что вы сможете загружать только приложения, совместимые с устройством, соответствующим вышеупомянутому идентификатору ANDROID , и дополнительные ограничения могут повлиять на общее количество приложений, доступных для загрузки .
После настройки учетных данных Google Play Store, как описано в конфигурации, у вас должен быть действительный файл 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
или проверьте доступные параметры для получения дополнительной информации). ).
Также доступен простой веб-интерфейс:
$ 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
или проверьте доступные параметры для получения дополнительной информации).
Также доступен простой веб-интерфейс:
$ 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
используется для установки пути к файлу конфигурации JSON, содержащему учетные данные Google Play Store. Если не указано, по умолчанию инструмент попытается использовать файл credentials.json
, расположенный в каталоге, где выполняется команда.
-o DIR
используется для установки пути (относительного или абсолютного) к каталогу, в котором будет сохранен загруженный файл .apk
(например, -o /home/user/Desktop/
). Если путь содержит отсутствующие каталоги, они будут созданы автоматически. Если не указано, по умолчанию файл будет сохранен в каталоге Downloads/
созданном там, где запускается инструмент.
-t TAG
можно использовать для установки тега, который будет добавлен к имени файла, например, при использовании -t "LABEL"
окончательное имя загруженного приложения будет выглядеть как [LABEL] filename.apk
. Примечание: тег применяется как к основному приложению, так и к дополнительным файлам (если они есть).
Обратите внимание, что в настоящее время с помощью приведенных выше аргументов можно настроить только интерфейс командной строки, веб-интерфейс запрашивает только имя пакета и будет использовать значения по умолчанию для всех остальных параметров .
Вы можете использовать этот код по лицензии MIT.