Wichtig
Dieses Projekt ist archiviert und wird nicht mehr gepflegt.
Ein Befehlszeilentool zum Herunterladen von Android-Anwendungen direkt aus dem Google Play Store.
PlaystoreDownloader ist ein Tool zum Herunterladen von Android-Anwendungen direkt aus dem Google Play Store. Nach einer ersten (einmaligen) Konfiguration können Anwendungen unter Angabe ihres Paketnamens heruntergeladen werden.
Dieses Projekt dient ausschließlich Lernzwecken und steht in keiner Verbindung zu Google .
Befehlszeilenschnittstelle |
---|
Webinterface |
---|
Es gibt zwei Möglichkeiten, eine Arbeitskopie von PlaystoreDownloader auf Ihren eigenen Computer zu laden: entweder durch die Verwendung von Docker oder durch die direkte Verwendung des Quellcodes in einer Python 3
-Umgebung. In beiden Fällen müssen Sie zunächst eine lokale Kopie dieses Repositorys erstellen. Öffnen Sie also ein Terminal in dem Verzeichnis, in dem Sie das Projekt speichern möchten, und klonen Sie das Repository:
$ git clone https://github.com/ClaudiuGeorgiu/PlaystoreDownloader.git
Dies ist die empfohlene Methode zur Installation von PlaystoreDownloader, da die einzige Voraussetzung darin besteht, eine aktuelle Version von Docker installiert zu haben:
$ docker --version
Docker version 20.10.7, build f0df350
Das offizielle PlaystoreDownloader Docker-Image ist auf Docker Hub verfügbar (wird automatisch aus diesem Repository erstellt):
$ # Download the Docker image.
$ docker pull claudiugeorgiu/playstore-downloader
$ # Give it a shorter name.
$ docker tag claudiugeorgiu/playstore-downloader downloader
Wenn Sie das offizielle Image von Docker Hub heruntergeladen haben, können Sie das Tool verwenden. Lesen Sie sich also zunächst die Gebrauchsanweisungen durch. Andernfalls führen Sie den folgenden Befehl im zuvor erstellten PlaystoreDownloader/
-Verzeichnis (dem Ordner mit der Dockerfile
) aus, um das zu erstellen Docker-Image:
$ # 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 .
Wenn das Docker-Image fertig ist, führen Sie einen kurzen Test durch, um zu überprüfen, ob alles korrekt installiert wurde:
$ docker run --rm -it downloader --help
usage: python3 -m playstoredownloader.cli [-h] [-b] [-s] [-c FILE] [-o DIR] [-t TAG] package [package ...]
...
PlaystoreDownloader ist jetzt einsatzbereit. Weitere Informationen finden Sie in der Gebrauchsanweisung.
Abgesehen von gültigen Anmeldeinformationen für den Google Play Store ist die einzige Voraussetzung für dieses Projekt eine funktionierende Python 3
Installation (mindestens 3.7
) und pipenv
(zur Abhängigkeitsverwaltung).
Führen Sie die folgenden Befehle im Hauptverzeichnis des Projekts ( PlaystoreDownloader/
) aus, um die erforderlichen Abhängigkeiten zu installieren:
$ # 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
Nachdem alles installiert ist, machen Sie einen kurzen Test, um zu überprüfen, ob alles richtig funktioniert:
$ pipenv run python3 -m playstoredownloader.cli --help
usage: python3 -m playstoredownloader.cli [-h] [-b] [-s] [-c FILE] [-o DIR] [-t TAG] package [package ...]
...
PlaystoreDownloader ist jetzt einsatzbereit. Weitere Informationen finden Sie in der Gebrauchsanweisung.
Bevor Sie mit dem Google Play Store interagieren, müssen Sie gültige Anmeldeinformationen und eine mit Ihrem Konto verknüpfte ANDROID-ID angeben. Bitte ändern Sie die Datei „credentials.json“ und geben Sie die erforderlichen Informationen ein, bevor Sie versuchen, dieses Tool zu verwenden (und überlegen Sie es sich zweimal, bevor Sie diese Datei nach der Änderung festschreiben, da sonst Ihre Anmeldeinformationen verloren gehen könnten):
Geben Sie Ihre Google-E-Mail-Adresse und Ihr Passwort in die Felder USERNAME
und PASSWORD
der Datei credentials.json ein. Diese Informationen werden zur Authentifizierung bei den Servern von Google benötigt. Falls Sie die Bestätigung in zwei Schritten aktiviert haben, müssen Sie ein App-Passwort für das Feld PASSWORD
generieren.
Verwenden Sie die oben genannten Anmeldeinformationen auf einem Android-Gerät (echt oder emuliert) und laden Sie mindestens eine Anwendung über den offiziellen Google Play Store auf das Gerät herunter. Dieser Schritt ist erforderlich, um die ANDROID-ID des Geräts mit Ihrem Konto zu verknüpfen, damit Sie Anwendungen herunterladen können, als ob Sie Ihr Gerät direkt verwenden würden. Entfernen Sie das Konto nicht vom Gerät, da sonst seine ANDROID-ID nicht mehr gültig ist.
Rufen Sie die ANDROID-ID des Geräts ab und füllen Sie das Feld ANDROID_ID
der Datei credentials.json aus. Sie können die ANDROID-ID erhalten, indem Sie die Geräte-ID-Anwendung auf Ihrem Gerät installieren und dann die Zeichenfolge kopieren, die dem Google Service Framework (GSF)
entspricht (verwenden Sie diese Zeichenfolge anstelle der von der Anwendung angezeigten Android Device ID
).
Sollten nach den oben genannten Schritten Fehler im Zusammenhang mit der Authentifizierung auftreten, ziehen Sie die folgenden Maßnahmen in Betracht (besuchen Sie die Links, während Sie mit dem Konto angemeldet sind, mit dem Sie die Anwendungen heruntergeladen haben):
Erlauben Sie weniger sicheren Apps den Zugriff auf Ihr Konto (https://myaccount.google.com/lesssecureapps)
Den Zugriff auf Ihr Konto vorübergehend entsperren (https://accounts.google.com/DisplayUnlockCaptcha)
Beachten Sie, dass Sie nur die Anwendungen herunterladen können, die mit dem Gerät kompatibel sind, das der oben genannten ANDROID-ID entspricht, und dass weitere Einschränkungen die Gesamtzahl der zum Download verfügbaren Anwendungen beeinflussen können .
Nachdem Sie die Anmeldeinformationen für den Google Play Store wie in der Konfiguration beschrieben konfiguriert haben, sollten Sie über eine gültige Datei credentials.json
verfügen, die verwendet werden kann. Die Gebrauchsanweisungen hängen davon ab, wie Sie das Tool installiert haben.
Die Datei mit den Anmeldeinformationen ist nicht im Docker-Image enthalten und muss daher in den Container eingebunden werden. Es muss auch ein Download-Verzeichnis gemountet werden, sonst ist die heruntergeladene Anwendung für den Host-Rechner nicht zugänglich. Wenn das aktuelle Verzeichnis ( ${PWD}
) die Datei credentials.json
und einen Ordner output/
enthält, lautet der Befehl zum Herunterladen einer Anwendung mit dem Paketnamen com.application.example
wie folgt:
$ 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 "
Wenn der Download erfolgreich ist, wird die resultierende .apk
Datei im Ordner output/
gespeichert, der sich in dem Verzeichnis befindet, in dem der Befehl ausgeführt wurde (geben Sie $ docker run --rm -it downloader --help
ein oder überprüfen Sie die verfügbaren Parameter für weitere Informationen). ).
Es steht auch eine einfache Weboberfläche zur Verfügung:
$ 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.
Rufen Sie im Hauptverzeichnis des Projekts ( PlaystoreDownloader/
) die folgende Anweisung unter Verwendung des Paketnamens der herunterzuladenden App auf:
$ pipenv run python3 -m playstoredownloader.cli " com.application.example "
Wenn der Download erfolgreich ist, wird die resultierende .apk
Datei standardmäßig im PlaystoreDownloader/Downloads/
-Verzeichnis gespeichert. Sie können den Speicherort des Download-Verzeichnisses ändern, indem Sie ein zusätzliches Argument -o "path/to/download/folder/"
angeben (geben Sie $ pipenv run python3 -m playstoredownloader.cli --help
ein oder überprüfen Sie die verfügbaren Parameter für weitere Informationen).
Es steht auch eine einfache Weboberfläche zur Verfügung:
$ pipenv run python3 flask_app.py
$ # Navigate to http://localhost:5000/ to use the web interface.
Alle Parameter werden in der Hilfemeldung beschrieben:
$ # 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 ...]
...
Der einzige obligatorische Parameter ist der package
der herunterzuladenden Anwendung, wie er im Google Play Store erscheint (z. B. com.spotify.music
oder com.whatsapp
). Die anderen optionalen Argumente lauten wie folgt:
-b
ist ein Flag zum Herunterladen der zusätzlichen .obb
Dateien zusammen mit der Anwendung (falls vorhanden). Weitere Informationen finden Sie unter Erweiterungsdateien. Die zusätzlichen Dateien werden im selben Verzeichnis wie die heruntergeladene Anwendung gespeichert. Hinweis: Erweiterungsdateien werden für neue Apps nicht mehr unterstützt .
-s
ist ein Flag zum Herunterladen der zusätzlichen geteilten .apk
Dateien zusammen mit der Anwendung (falls vorhanden). Weitere Informationen finden Sie unter Dynamische Bereitstellung. Die zusätzlichen Dateien werden im selben Verzeichnis wie die heruntergeladene Anwendung gespeichert.
-c CREDENTIALS
wird verwendet, um den Pfad zur JSON-Konfigurationsdatei festzulegen, die die Anmeldeinformationen für den Google Play Store enthält. Wenn nicht angegeben, versucht das Tool standardmäßig, eine Datei mit dem Namen credentials.json
zu verwenden, die sich in dem Verzeichnis befindet, in dem der Befehl ausgeführt wird.
-o DIR
wird verwendet, um den Pfad (relativ oder absolut) des Verzeichnisses festzulegen, in dem die heruntergeladene .apk
Datei gespeichert werden soll (z. B. -o /home/user/Desktop/
). Sollten im Pfad fehlende Verzeichnisse vorhanden sein, werden diese automatisch erstellt. Wenn nichts angegeben wird, wird die Datei standardmäßig in einem Downloads/
-Verzeichnis gespeichert, das dort erstellt wird, wo das Tool ausgeführt wird.
-t TAG
kann verwendet werden, um ein Tag festzulegen, das dem Dateinamen vorangestellt wird. Wenn Sie beispielsweise -t "LABEL"
verwenden, sieht der endgültige Name der heruntergeladenen Anwendung wie folgt aus: [LABEL] filename.apk
. Hinweis: Das Tag wird auf die Hauptanwendung und auf die zusätzlichen Dateien (falls vorhanden) angewendet.
Beachten Sie, dass derzeit nur die Befehlszeilenschnittstelle mit den oben genannten Argumenten konfiguriert werden kann. Die Webschnittstelle fragt nur nach einem Paketnamen und verwendet die Standardwerte für alle anderen Parameter .
Es steht Ihnen frei, diesen Code unter der MIT-Lizenz zu verwenden.