{"id":23372767,"url":"https://github.com/kdroidfilter/gplayscraper","last_synced_at":"2025-04-10T17:41:50.076Z","repository":{"id":267112847,"uuid":"900280207","full_name":"kdroidFilter/GPlayScraper","owner":"kdroidFilter","description":"The GPlay Scraper Library provides a comprehensive way to extract detailed information about applications listed on the Google Play Store. With this library, you can fetch details such as application descriptions, developer information, categories, reviews, and more.","archived":false,"fork":false,"pushed_at":"2025-03-30T06:47:16.000Z","size":116,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T07:26:51.265Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kdroidFilter.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-08T11:24:07.000Z","updated_at":"2025-03-30T06:47:13.000Z","dependencies_parsed_at":"2024-12-21T16:49:26.891Z","dependency_job_id":"63e507c7-769a-4340-92ed-4dd791fe456b","html_url":"https://github.com/kdroidFilter/GPlayScraper","commit_stats":null,"previous_names":["kdroidfilter/gplay-scrapper","kdroidfilter/gplayscraper"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdroidFilter%2FGPlayScraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdroidFilter%2FGPlayScraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdroidFilter%2FGPlayScraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdroidFilter%2FGPlayScraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kdroidFilter","download_url":"https://codeload.github.com/kdroidFilter/GPlayScraper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248262192,"owners_count":21074261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-21T16:49:30.482Z","updated_at":"2025-04-10T17:41:50.070Z","avatar_url":"https://github.com/kdroidFilter.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💡 GPlay Scrapper Library\n\n## 🔄 Introduction\n\nThis library is a full Kotlin adaptation of the [google-play-scraper](https://github.com/JoMingyu/google-play-scraper) python library.\n\nThe GPlay Scrapper Library provides a comprehensive way to extract detailed information about applications listed on the Google Play Store. With this library, you can fetch details such as application descriptions, developer information, categories, reviews, and more.\n\nThis library is built using Kotlin and leverages kotlinx.serialization for parsing JSON data and Ktor for HTTP requests.\n\n## 📊 Features\n\n- Fetch application details including title, description, developer info, price, etc.\n- Extract application categories and genres.\n- Retrieve app ratings, reviews, and download counts.\n- Identify in-app purchase details and sale statuses.\n- Collect metadata like screenshots, icons, and videos.\n\n## 📦 Installation\n\nThis library is available on Maven Central. Add the following dependency to your project:\n\n### Gradle Kotlin DSL\n\n```kotlin\ndependencies {\n    implementation(\"io.github.kdroidfilter:gplayscrapper:0.1.6\")\n}\n```\n\n### Gradle Groovy DSL\n\n```groovy\ndependencies {\n    implementation 'io.github.kdroidfilter:gplayscrapper:0.1.6'\n}\n```\n\n\n\n\n\n## 🔄 Usage\n\n### Fetching App Information\n\nTo fetch detailed information about a specific app, you can use the `getGooglePlayApplicationInfo` function. This function requires the app ID as a parameter and optionally takes the language and country codes. If the app is not found or accessible, it throws an `IllegalArgumentException`.\n\n#### Parameters:\n\n- `appId: String` (mandatory): The unique identifier of the app.\n- The country and language codes that can be included in the `lang` and `country` parameters described below depend on the ISO 3166 and ISO 639-1 standards, respectively.\n- `lang: String` (optional, default = \"en\"): Language code for the app details.\n- `country: String` (optional, default = \"us\"): Country code for the app details.\n\n#### Example:\n\n```kotlin\nimport com.kdroid.gplayscrapper.services.getGooglePlayApplicationInfo\nimport kotlinx.coroutines.runBlocking\nimport kotlinx.serialization.encodeToString\nimport kotlinx.serialization.json.Json\n\nfun main() {\n    val json = Json {\n        prettyPrint = true\n        ignoreUnknownKeys = true\n        encodeDefaults = true\n    }\n\n    runBlocking {\n        val appId = \"com.android.chrome\"\n        val appInfo = getGooglePlayApplicationInfo(appId)\n        println(json.encodeToString(appInfo))\n    }\n}\n```\n### Using the Library in Java\n\nThe library also supports Java through the `getGooglePlayApplicationInfoAsync` function, which returns a `CompletableFuture`.\n\n#### Example:\n\n```java\nimport com.kdroid.gplayscrapper.GooglePlayApplicationInfo;\nimport static com.kdroid.gplayscrapper.MainKt.getGooglePlayApplicationInfoAsync;\nimport java.util.concurrent.CompletableFuture;\n\npublic class Main {\n    public static void main(String[] args) {\n        String appId = \"com.android.chrome\";\n\n        // Call Kotlin function with parameters\n        CompletableFuture\u003cGooglePlayApplicationInfo\u003e appInfoFuture = getGooglePlayApplicationInfoAsync(\"com.android.chrome\", \"en\", \"us\");\n\n        appInfoFuture.thenAccept(appInfo -\u003e {\n            System.out.println(\"App Info: \" + appInfo.getTitle());\n        }).exceptionally(throwable -\u003e {\n            System.err.println(\"Error : \" + throwable.getMessage());\n            return null;\n        });\n    }\n}\n```\n\n## 🔗 Data Models\n\nThe library uses the following primary data models:\n\n### `GooglePlayApplicationInfo`\n\nRepresents detailed app information, including:\n\n- `title`: App title.\n- `description`: Plain text description of the app.\n- `score`: Overall rating score.\n- `categories`: List of `GooglePlayCategory` objects.\n- `developer`: Developer name.\n- `price`: App price.\n- and more.\n\n#### Example JSON Output\n\nBelow is an example of the JSON output generated for an app:\n\n```json\n{\n    \"title\": \"Google Chrome\",\n    \"description\": \"Google Chrome is a fast, easy to use, and secure web browser. Designed for Android, Chrome brings you personalized news articles, quick links to your favorite sites, downloads, and Google Search and Google Translate built-in. Download now to enjoy the same Chrome web browser experience you love across all your devices.\\n        \\n        \u003cb\u003eBrowse fast and type less.\u003c/b\u003e Choose from personalized search results that instantly appear as you type and quickly browse previously visited web pages. Fill in forms quickly with Autofill.\\n        \\n        \u003cb\u003eIncognito Browsing.\u003c/b\u003e Use Incognito mode to browse the internet without saving your history. Browse privately across all your devices.\\n        \\n        \u003cb\u003eAccess your Chrome across devices.\u003c/b\u003e When you sign in to Chrome, you can save bookmarks, passwords and more in your Google Account, so you can access them on your other devices.\\n        \\n        \u003cb\u003eAll your favorite content, one tap away.\u003c/b\u003e Chrome is not just fast for Google Search, but designed so you are one tap away from all your favorite content. You can tap on your favorite news sites or social media directly from the new tab page. Chrome also has the “Tap to Search”- feature on most webpages. You can tap on any word or phrase to start a Google search while still in the page you are enjoying.\\n        \\n        \u003cb\u003eProtect your phone with Google Safe Browsing.\u003c/b\u003e Chrome has Google Safe Browsing built-in. It keeps your phone safe by showing warnings to you when you attempt to navigate to dangerous sites or download dangerous files.\\n        \\n        \u003cb\u003eFast downloads and view web pages and videos offline\u003c/b\u003e Chrome has a dedicated download button, so you can easily download videos, pictures, and entire webpages with just one tap. Chrome also has downloads home right inside Chrome, where you can access all the content you downloaded, even when you are offline.\\n        \\n        \u003cb\u003eGoogle Voice Search.\u003c/b\u003e Chrome gives you an actual web browser you can talk to. Use your voice to find answers on-the-go without typing and go hands free. You can browse and navigate quicker using your voice anywhere, anytime.\\n        \\n        \u003cb\u003eGoogle Translate built-in: Quickly translate entire web pages.\u003c/b\u003e Chrome has Google Translate built in to help you to translate entire web to your own language with one tap.\\n                \\n        \u003cb\u003eSmart personalized recommendations.\u003c/b\u003e Chrome creates an experience that is tailored to your interests.  On the new tab page, you will find articles that Chrome selected based on your previous browsing history.\",\n    \"descriptionHTML\": \"Google Chrome is a fast, easy to use, and secure web browser. Designed for Android, Chrome brings you personalized news articles, quick links to your favorite sites, downloads, and Google Search and Google Translate built-in. Download now to enjoy the same Chrome web browser experience you love across all your devices.\u003cbr\u003e        \u003cbr\u003e        \u003cb\u003eBrowse fast and type less.\u003c/b\u003e Choose from personalized search results that instantly appear as you type and quickly browse previously visited web pages. Fill in forms quickly with Autofill.\u003cbr\u003e        \u003cbr\u003e        \u003cb\u003eIncognito Browsing.\u003c/b\u003e Use Incognito mode to browse the internet without saving your history. Browse privately across all your devices.\u003cbr\u003e        \u003cbr\u003e        \u003cb\u003eAccess your Chrome across devices.\u003c/b\u003e When you sign in to Chrome, you can save bookmarks, passwords and more in your Google Account, so you can access them on your other devices.\u003cbr\u003e        \u003cbr\u003e        \u003cb\u003eAll your favorite content, one tap away.\u003c/b\u003e Chrome is not just fast for Google Search, but designed so you are one tap away from all your favorite content. You can tap on your favorite news sites or social media directly from the new tab page. Chrome also has the “Tap to Search”- feature on most webpages. You can tap on any word or phrase to start a Google search while still in the page you are enjoying.\u003cbr\u003e        \u003cbr\u003e        \u003cb\u003eProtect your phone with Google Safe Browsing.\u003c/b\u003e Chrome has Google Safe Browsing built-in. It keeps your phone safe by showing warnings to you when you attempt to navigate to dangerous sites or download dangerous files.\u003cbr\u003e        \u003cbr\u003e        \u003cb\u003eFast downloads and view web pages and videos offline\u003c/b\u003e Chrome has a dedicated download button, so you can easily download videos, pictures, and entire webpages with just one tap. Chrome also has downloads home right inside Chrome, where you can access all the content you downloaded, even when you are offline.\u003cbr\u003e        \u003cbr\u003e        \u003cb\u003eGoogle Voice Search.\u003c/b\u003e Chrome gives you an actual web browser you can talk to. Use your voice to find answers on-the-go without typing and go hands free. You can browse and navigate quicker using your voice anywhere, anytime.\u003cbr\u003e        \u003cbr\u003e        \u003cb\u003eGoogle Translate built-in: Quickly translate entire web pages.\u003c/b\u003e Chrome has Google Translate built in to help you to translate entire web to your own language with one tap.\u003cbr\u003e                \u003cbr\u003e        \u003cb\u003eSmart personalized recommendations.\u003c/b\u003e Chrome creates an experience that is tailored to your interests.  On the new tab page, you will find articles that Chrome selected based on your previous browsing history.\",\n    \"summary\": \"Google's fast and secure browser\",\n    \"installs\": \"10,000,000,000+\",\n    \"minInstalls\": 10000000000,\n    \"realInstalls\": 16985273589,\n    \"score\": 4.065567,\n    \"ratings\": 46344164,\n    \"reviews\": 992885,\n    \"histogram\": [\n        5920664,\n        2376727,\n        3450944,\n        5590747,\n        29005054\n    ],\n    \"price\": 0.0,\n    \"free\": true,\n    \"currency\": \"USD\",\n    \"sale\": false,\n    \"saleTime\": null,\n    \"originalPrice\": null,\n    \"saleText\": null,\n    \"offersIAP\": false,\n    \"inAppProductPrice\": \"\",\n    \"developer\": \"Google LLC\",\n    \"developerId\": \"5700313618786177705\",\n    \"developerEmail\": \"apps-help@google.com\",\n    \"developerWebsite\": \"http://www.google.com/chrome/android\",\n    \"developerAddress\": \"1600 Amphitheatre Parkway, Mountain View 94043\",\n    \"privacyPolicy\": \"https://policies.google.com/privacy\",\n    \"genre\": \"Communication\",\n    \"genreId\": \"COMMUNICATION\",\n    \"categories\": [\n        {\n            \"name\": \"Communication\",\n            \"id\": \"COMMUNICATION\"\n        }\n    ],\n    \"icon\": \"https://play-lh.googleusercontent.com/QRRGW2tMZ4-FNw0XWk6WWiXHaQCGxuwM-92HrBhlA4WOd_AGmjVmQkiHyAqQjW2yByc\",\n    \"headerImage\": \"https://play-lh.googleusercontent.com/yZPtmF--wo_V78QRe00YWjnHBnTISZZJeSo4WbSsJpFBRI1MNsv6sN1UxRBIK6mbtQ\",\n    \"screenshots\": [\n        \"https://play-lh.googleusercontent.com/OMmJGYNXlDfnWFX8iS1Veq2hqYJAkp0KF4kjPMEBEkZN4KutaoGLooWJTB86kLyF55uy\",\n        \"https://play-lh.googleusercontent.com/xR_gxXoYDfTahDoexvHc0MB6kkydLLMSlUzshH2xu_5IsnFefSIgi5Bn4yOdgCNpRuWL\",\n        \"https://play-lh.googleusercontent.com/7_ksUyBu73YwRTelEGXzZeqWMNQOyXYWVzIwvWW0-Xyu4g5sOnhMdc4g-Y_u37z2ewI\",\n        \"https://play-lh.googleusercontent.com/_UizlCmKyFhS138Qeh3XXWvwatHa2j9cdAiFSN4FVU7wYP0qaF-Ci3_K-ZkAvhXx3Q\",\n        \"https://play-lh.googleusercontent.com/X_pt3f62938fqokgs44Ga1t8zX0kC0MPldi0qWKU95ivpTUPfawy9hxE5F9RGnf1Uko\",\n        \"https://play-lh.googleusercontent.com/BZwVMcpIt1gZZGe1X5gjKBdYmLrzgSD_cwKlKmJib8BV0lHPdlHly-9oEGm11VTr_iQ\",\n        \"https://play-lh.googleusercontent.com/yBJ1sGeM_eO8YfX-lqrNfPYIaswaC-dCw1csrZOyD6ITG7xfMqUq3nmgGNe_Hv1E4w\",\n        \"https://play-lh.googleusercontent.com/X9aG9oNn9zZbI36AVXnDqzuRQTcogbZKPLbLyWkbmQQy2j0CRizPZJX4Xz935USY-A8\",\n        \"https://play-lh.googleusercontent.com/KeG1x0bwnrev-FJbTjUBsENlNX87a_4vstaz5B7yuDXsrHivKfaQ87fhtNFKD0EjvR1l\",\n        \"https://play-lh.googleusercontent.com/CnkWLDYN25mQm_P1kZLcyKiZxnifwIEIg8KwrthG60dtjxeU8wzhCXazxw_yeslNMysD\",\n        \"https://play-lh.googleusercontent.com/M9ue_W7CxgXh9Po-9Caqmo6kzsNHucTZWp1zFf2exER8bo3TCNGXqMB_4otOyeocAJc\",\n        \"https://play-lh.googleusercontent.com/be88TX-_Gr--Wr6nhpTCU8RElea_WmWHVeQ3eF-90yongEe7hls4kI__QYeBSvE_0nA\",\n        \"https://play-lh.googleusercontent.com/xThFpJIuS_l-MrbK58eExZyJJRFxdCMNNomV9ZG2icN6aLtpjAWMAuYoLKG6FCB98zM\",\n        \"https://play-lh.googleusercontent.com/A5qQ08pUxADMCi3dupQ05glOPtpiGFw9KJK3NmyY2jJ3HomdaKr4ht2St8sQRqlCqRCs\",\n        \"https://play-lh.googleusercontent.com/9jgY1qGCai_9IlPGWGswh6_zD7lzdy_vdm8gYejPHOSVTR1kdFaiJrblwr_z_CaKWjC_\",\n        \"https://play-lh.googleusercontent.com/krpPF6UrPaNVRLqSWTsU5eHOJjCkftn9BVTyxv_UZPDjBw0rKyyDQfMrewcFjF6L2h0E\",\n        \"https://play-lh.googleusercontent.com/tpGGpOkZBtjHC_yf369GU3KbGT4rCvElpaI3R48pimj4T0ryrPdwhbOFrLPtQ3kXOKd9\",\n        \"https://play-lh.googleusercontent.com/HSJ2yPrJxQzJoaKXENj5heR_71PTHBMceoxgMZzVXcV58Y-lD-ol82cb7-tFUAYA2kY\",\n        \"https://play-lh.googleusercontent.com/ltw5iMf8UCQow68CRmLWk4QtJjrdfyHUoVMqFDZ1iBCJGJfvHow40_aGontjAC3fdg\",\n        \"https://play-lh.googleusercontent.com/-x_v44rm5o71w-uD8UuwuRCSNZ10OWqYqgj6wsKi0JkrEJwOlbTBSoJRvA3aCN6XYd4\",\n        \"https://play-lh.googleusercontent.com/WBDmwgh8MR4Cxyc9x5hkoRk--V23PFJDyE_eMdjAN039prqGgF9FEvl22beskx7pUler\",\n        \"https://play-lh.googleusercontent.com/dPVss_a3Z8gHV_TPicWNaNdY1brRePVQaBu2NQJoNrxeJ8RnhkWS4v0n_bSJGST1vA\",\n        \"https://play-lh.googleusercontent.com/xb295JCLDkRu1qlkhF4qiddCd4s5WlRnHXthUKQw2Tz_acYGdiqj6rxOo1tFQo59hQ\",\n        \"https://play-lh.googleusercontent.com/sJePeYjSItM3jOhcKrX9oW5Yot_7z6DnuJTSowlsbol10tS2gygZKGhM615EB_L4VA\",\n        \"https://play-lh.googleusercontent.com/w-_cjSD79Cbqf6IjYhxOOS11wHmZeKOtegM5cbKbBT7D0AHq-6DqRoqfKKVJG_WwWQ\",\n        \"https://play-lh.googleusercontent.com/fKYTjKsPHtBOgcGSFq_FdGCAuKZRY1UJysFO8SW2qN-keySJxTInTNOE5ebtOZ8rvw\",\n        \"https://play-lh.googleusercontent.com/bpyl4wtc00BxVcj-5UlkECqM7GyAFg6FWUYhToDGhqAuRt7d3d6Qi69mvC2d_kmrqAHP\",\n        \"https://play-lh.googleusercontent.com/zR7XKGrFBiTd2__1DvE7He1y2l33E4Tg-qHxfD8VKEvLCBgL4rbpadR7U5fELXb4rg\",\n        \"https://play-lh.googleusercontent.com/NHOqWWhRsfaUx0YF5R90oMv06dlcqKZuuMAvugw6vTvSy3qy-lRrDZQSJPlMj4Ou4J8\",\n        \"https://play-lh.googleusercontent.com/bRrZSOI9y2BkFvnVaRjK3Jzae26pwvdlNnBDrKCIUxCdD-uUu09HIMpwVad1TrZVKLQ\",\n        \"https://play-lh.googleusercontent.com/bVRRznZy7d05YJJCVu0lVEkeoslyGnic1mgfSXOI2nRBSzz1WJ2Qhjg-ArEFfzveMdkk\",\n        \"https://play-lh.googleusercontent.com/GVPTDqFYafYxIO9q_sdJHwGv0g4Vv0D2TPkjS9wroQ2elHct8mV1Rl_IWniqz2lYV1np\"\n    ],\n    \"video\": \"\",\n    \"videoImage\": \"\",\n    \"contentRating\": \"Everyone\",\n    \"contentRatingDescription\": \"\",\n    \"adSupported\": false,\n    \"containsAds\": false,\n    \"released\": \"Feb 7, 2012\",\n    \"updated\": 1733436114,\n    \"version\": \"Varies with device\",\n    \"comments\": [],\n    \"appId\": \"com.android.chrome\",\n    \"url\": \"https://play.google.com/store/apps/details?id=com.android.chrome\u0026hl=en\u0026gl=us\"\n}\n```\n\n### `GooglePlayCategory`\n\nRepresents app categories with:\n\n- `name`: Category name.\n- `id`: Category ID.\n\n## 💧 Configuration\n\n### Logging\n\nThe library includes a logger for debugging. You can customize or disable logging by modifying the `logger` instance in `NetworkUtils`.\n\n### Network Configuration\n\nThe library uses Ktor for network operations. Ensure your project includes the required dependencies for Ktor and that network permissions are properly configured for Android.\n\n## 📚 Contributions\n\nContributions to the library are welcome. If you find a bug or want to request a feature, feel free to open an issue or submit a pull request on GitHub.\n\n## 📄 License\n\nThis library is licensed under the MIT License. See the LICENSE file for details.\n\n## 🛑 Disclaimer\n\nThe user assumes full responsibility for the use of this library and must verify the legality of such use in their country.\n\nThis library is intended for educational and personal use. Scraping data from Google Play Store may violate its terms of service. Use responsibly and at your own risk.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdroidfilter%2Fgplayscraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkdroidfilter%2Fgplayscraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdroidfilter%2Fgplayscraper/lists"}