مهم
تمت أرشفة هذا المشروع ولم يعد يتم صيانته.
أداة سطر أوامر لتنزيل تطبيقات Android مباشرة من متجر Google Play.
PlaystoreDownloader هي أداة لتنزيل تطبيقات Android مباشرة من متجر Google Play. بعد التكوين الأولي (لمرة واحدة)، يمكن تنزيل التطبيقات عن طريق تحديد اسم الحزمة الخاصة بها.
هذا المشروع مخصص للأغراض التعليمية فقط وليس تابعًا لشركة 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
) من أجل إنشاء الملف صورة عامل الميناء:
$ # 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 المرتبط بحسابك. يرجى تعديل ملف credentials.json وإدراج المعلومات المطلوبة قبل محاولة استخدام هذه الأداة (وفكر مرتين قبل تنفيذ هذا الملف بعد التغيير، وإلا قد تتسرب بيانات الاعتماد الخاصة بك):
أدخل بريدك الإلكتروني وكلمة المرور في Google في حقلي USERNAME
وكلمة PASSWORD
في ملف credentials.json. هذه المعلومات مطلوبة للمصادقة مع خوادم Google. في حالة تنشيط التحقق بخطوتين، فستحتاج إلى إنشاء كلمة مرور التطبيق لحقل PASSWORD
.
استخدم بيانات الاعتماد المذكورة أعلاه على جهاز Android (حقيقي أو مقلد) وقم بتنزيل تطبيق واحد على الأقل باستخدام متجر Google Play الرسمي على الجهاز. هذه الخطوة ضرورية لربط معرف ANDROID الخاص بالجهاز بحسابك، حتى تتمكن من تنزيل التطبيقات كما لو كنت تستخدم جهازك مباشرة. لا تقم بإزالة الحساب من الجهاز وإلا فلن يكون معرف ANDROID الخاص به صالحًا بعد الآن.
احصل على معرف ANDROID الخاص بالجهاز واملأ حقل ANDROID_ID
الخاص بملف credentials.json. يمكنك الحصول على معرف ANDROID عن طريق تثبيت تطبيق معرف الجهاز على جهازك، ثم انسخ السلسلة المقابلة لـ Google Service Framework (GSF)
(استخدم هذه السلسلة بدلاً من Android Device ID
الذي يقدمه التطبيق).
في حالة حدوث أخطاء تتعلق بالمصادقة بعد الخطوات المذكورة أعلاه، فكر في الإجراءات التالية (قم بزيارة الروابط أثناء تسجيل الدخول بالحساب المستخدم لتنزيل التطبيقات):
السماح للتطبيقات الأقل أمانًا بالوصول إلى حسابك (https://myaccount.google.com/lesssecureapps)
فتح الوصول مؤقتًا إلى حسابك (https://accounts.google.com/DisplayUnlockCaptcha)
لاحظ أنك ستتمكن فقط من تنزيل التطبيقات المتوافقة مع الجهاز المتوافق مع معرف ANDROID المذكور أعلاه وقد تؤثر القيود الإضافية على إجمالي عدد التطبيقات المتاحة للتنزيل .
بعد تكوين بيانات اعتماد متجر 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
أو تحقق من المعلمات المتاحة لمزيد من المعلومات ).
تتوفر أيضًا واجهة ويب بسيطة:
$ 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. إذا لم يتم تحديدها، ستحاول الأداة بشكل افتراضي استخدام ملف يسمى credentials.json
الموجود في الدليل حيث يتم تشغيل الأمر.
يتم استخدام -o DIR
لتعيين المسار (نسبي أو مطلق) للدليل حيث سيتم حفظ ملف .apk
الذي تم تنزيله (على سبيل المثال، -o /home/user/Desktop/
). إذا كان المسار يحتوي على أدلة مفقودة، فسيتم إنشاؤها تلقائيًا. إذا لم يتم تحديده، فسيتم حفظ الملف افتراضيًا في دليل Downloads/
الذي تم إنشاؤه حيث يتم تشغيل الأداة.
يمكن استخدام -t TAG
لتعيين علامة سيتم إضافتها مسبقًا إلى اسم الملف، على سبيل المثال، باستخدام -t "LABEL"
سيبدو الاسم النهائي للتطبيق الذي تم تنزيله مثل [LABEL] filename.apk
. ملاحظة: يتم تطبيق العلامة على التطبيق الرئيسي وعلى الملفات الإضافية (إن وجدت).
لاحظ أنه حاليًا فقط واجهة سطر الأوامر هي القابلة للتكوين باستخدام الوسيطات المذكورة أعلاه، وستطلب واجهة الويب فقط اسم الحزمة وستستخدم القيم الافتراضية لجميع المعلمات الأخرى .
أنت حر في استخدام هذا الرمز بموجب ترخيص MIT.