{"id":46160952,"url":"https://github.com/mohammedcha/gplay-scraper","last_synced_at":"2026-03-02T11:01:59.891Z","repository":{"id":318222309,"uuid":"1070425083","full_name":"Mohammedcha/gplay-scraper","owner":"Mohammedcha","description":"GPlay Scraper is a powerful Python Google Play scraper library for extracting comprehensive app data from the Google Play Store. Scrape Google Play Store apps to get ratings, install counts, reviews, ASO metrics, developer information, and 65+ data fields","archived":false,"fork":false,"pushed_at":"2025-11-16T13:34:27.000Z","size":2151,"stargazers_count":246,"open_issues_count":0,"forks_count":23,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-11-16T15:19:14.676Z","etag":null,"topics":["android","app-analytics","crawler","google","google-play","play-store","play-store-api","playstore","scarper","scraper"],"latest_commit_sha":null,"homepage":"https://mohammedcha.github.io/gplay-scraper/","language":"Python","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/Mohammedcha.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-05T22:19:26.000Z","updated_at":"2025-11-16T13:34:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"cf537627-1248-41ae-8ea8-af3c03ddf206","html_url":"https://github.com/Mohammedcha/gplay-scraper","commit_stats":null,"previous_names":["mohammedcha/gplay-scraper"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Mohammedcha/gplay-scraper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mohammedcha%2Fgplay-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mohammedcha%2Fgplay-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mohammedcha%2Fgplay-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mohammedcha%2Fgplay-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mohammedcha","download_url":"https://codeload.github.com/Mohammedcha/gplay-scraper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mohammedcha%2Fgplay-scraper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29999221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T09:59:02.300Z","status":"ssl_error","status_checked_at":"2026-03-02T09:59:02.001Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["android","app-analytics","crawler","google","google-play","play-store","play-store-api","playstore","scarper","scraper"],"created_at":"2026-03-02T11:01:59.237Z","updated_at":"2026-03-02T11:01:59.872Z","avatar_url":"https://github.com/Mohammedcha.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Google Play Scraper - Python Library 📱\n\n[![PyPI version](https://badge.fury.io/py/gplay-scraper.svg)](https://badge.fury.io/py/gplay-scraper)\n[![Python](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Documentation](https://img.shields.io/badge/docs-available-brightgreen.svg)](https://mohammedcha.github.io/gplay-scraper/)\n[![Downloads](https://pepy.tech/badge/gplay-scraper)](https://pepy.tech/project/gplay-scraper)\n[![GitHub stars](https://img.shields.io/github/stars/Mohammedcha/gplay-scraper.svg)](https://github.com/Mohammedcha/gplay-scraper/stargazers)\n[![GitHub issues](https://img.shields.io/github/issues/Mohammedcha/gplay-scraper.svg)](https://github.com/Mohammedcha/gplay-scraper/issues)\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Mohammedcha/gplay-scraper/blob/main/assets/gplay-scraper.png\" alt=\"GPlay Scraper\"\u003e\n\u003c/div\u003e\n\n**GPlay Scraper** is a powerful Python library for extracting comprehensive data from the Google Play Store. Built for developers, data analysts, and researchers, it provides easy access to app information, user reviews, search results, top charts, and market intelligence—all without requiring API keys.\n\n## 🐛 Found a Bug? Help Us Improve!\n\n**We value your feedback!** If you encounter any bugs, errors, or have suggestions for improvements, please [open an issue](https://github.com/Mohammedcha/gplay-scraper/issues). Contributors who report bugs or suggest features will be acknowledged in our [Contributors section](#-contributors) 🙏\n\n## 🎯 What Can You Scrape?\n\n**App Data (65+ Fields)**\n- Basic info: title, developer, description, category, genre\n- Ratings \u0026 reviews: score, ratings count, histogram, user reviews\n- Install metrics: install count ranges, download statistics\n- Pricing: free/paid status, price, in-app purchases, currency\n- Media: icon, screenshots, video, header image URLs\n- Technical: version, size, Android version, release date, last update\n- Content: age rating, privacy policy, developer contact info\n- Features: permissions, what's new, developer website\n\n**Search \u0026 Discovery**\n- Search apps by keyword with filtering and pagination\n- Get search suggestions and autocomplete terms\n- Find similar/competitor apps for any app\n- Access top charts (free, paid, grossing) across 54 categories\n\n**Developer Intelligence**\n- Get complete app portfolio for any developer\n- Track developer's app performance and ratings\n- Analyze developer's market presence\n\n**User Reviews**\n- Extract reviews with ratings, text, and timestamps\n- Get reviewer names and helpful vote counts\n- Filter by newest, most relevant, or highest rated\n- Track app versions mentioned in reviews\n\n**Market Research**\n- Multi-language support (100+ languages)\n- Multi-region data (150+ countries)\n- Localized pricing and availability\n- Competitive analysis and benchmarking\n\n## 🆕 **What's New in v1.0.6** \n\n**✅ Critical Bug Fixes:**\n- **Reviews Pagination Fix** - Fixed critical issue when requesting more reviews than available\n- **NoneType Error Resolution** - Resolved 'NoneType' object is not subscriptable error in reviews\n- **Empty Response Handling** - Better handling of apps with limited reviews\n- **Token Extraction Logic** - Improved pagination token handling for empty responses\n- **Graceful Degradation** - Now returns available reviews instead of crashing\n\n**✅ Enhanced Reliability:**\n- **Safe Bounds Checking** - Added proper bounds checking for pagination tokens\n- **Null Checking** - Enhanced null checking for empty data structures\n- **Error Recovery** - Improved error handling in ReviewsScraper and ReviewsParser\n- **Stability Improvements** - Better handling of edge cases in reviews extraction\n\n**🙏 Acknowledgments:**\n- Thanks to [@PhamDinhThienVu](https://github.com/PhamDinhThienVu) for reporting the reviews pagination bug\n\n**✅ 7 Method Types:**\n- **App Methods** - Extract 65+ data fields from any app (ratings, installs, pricing, permissions, etc.)\n- **Search Methods** - Search Google Play Store apps with comprehensive filtering\n- **Reviews Methods** - Extract user reviews with ratings, timestamps, and detailed feedback\n- **Developer Methods** - Get all apps published by a specific developer\n- **List Methods** - Access top charts (top free, top paid, top grossing) by category\n- **Similar Methods** - Find similar/competitor apps for market research\n- **Suggest Methods** - Get search suggestions and autocomplete for ASO\n\n## ⚡ Key Features\n\n**Powerful \u0026 Flexible**\n- **7 HTTP clients with automatic fallback** - requests, curl_cffi, tls_client, httpx, urllib3, cloudscraper, aiohttp\n- **42 functions across 7 method types** - analyze(), get_field(), get_fields(), print_field(), print_fields(), print_all()\n- **No API keys required** - Direct scraping from Google Play Store\n- **Multi-language \u0026 multi-region** - 100+ languages, 150+ countries\n\n**Reliable \u0026 Safe**\n- **Built-in rate limiting** - Prevents blocking with automatic delays\n- **Automatic HTTP client fallback** - Ensures maximum reliability\n- **Error handling** - Graceful failures with informative messages\n- **Retry logic** - Automatic retries for failed requests\n\n**Developer Friendly**\n- **Simple API** - Intuitive method names and parameters\n- **Comprehensive documentation** - Examples for every use case\n- **Type hints** - Full IDE autocomplete support\n- **Flexible output** - Get data as dict/list or print as JSON\n\n## 📋 Requirements\n\n- Python 3.7+\n- requests (default HTTP client)\n- Optional: curl-cffi, tls-client, httpx, urllib3, cloudscraper, aiohttp (for advanced HTTP clients)\n\n## 🚀 Installation\n\n```bash\n# Install from PyPI\npip install gplay-scraper\n\n# Or install in development mode\npip install -e .\n```\n\n## 📖 Quick Start\n\n```python\nfrom gplay_scraper import GPlayScraper\n\n# Initialize with HTTP client (curl_cffi recommended for best performance)\nscraper = GPlayScraper(http_client=\"curl_cffi\")\n\n# Get app details with different image sizes\napp_id = \"com.whatsapp\"\nscraper.app_print_all(app_id, lang=\"en\", country=\"us\", assets=\"LARGE\")\n\n# Get high-quality app data\ndata = scraper.app_analyze(app_id, assets=\"ORIGINAL\")  # Maximum image quality\nicon_small = scraper.app_get_field(app_id, \"icon\", assets=\"SMALL\")  # 512px icon\n\n# Print specific fields with custom image sizes\nscraper.app_print_field(app_id, \"icon\", assets=\"LARGE\")  # Print large icon URL\nscraper.app_print_fields(app_id, [\"icon\", \"screenshots\"], assets=\"ORIGINAL\")  # Print multiple fields\n\n# Search for apps\nscraper.search_print_all(\"social media\", count=10, lang=\"en\", country=\"us\")\n\n# Get reviews\nscraper.reviews_print_all(app_id, count=50, sort=\"NEWEST\", lang=\"en\", country=\"us\")\n\n# Get developer apps\nscraper.developer_print_all(\"5700313618786177705\", count=20, lang=\"en\", country=\"us\")\n\n# Get top charts\nscraper.list_print_all(\"TOP_FREE\", \"GAME\", count=20, lang=\"en\", country=\"us\")\n\n# Get similar apps\nscraper.similar_print_all(app_id, count=30, lang=\"en\", country=\"us\")\n\n# Get search suggestions\nscraper.suggest_print_all(\"fitness\", count=5, lang=\"en\", country=\"us\")\n```\n\n## 🎯 7 Method Types\n\nGPlay Scraper provides 7 method types with 42 functions to interact with Google Play Store data:\n\n### 1. [App Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/APP_METHODS.md) - Extract app details (65+ fields)\n### 2. [Search Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/SEARCH_METHODS.md) - Search for apps by keyword\n### 3. [Reviews Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/REVIEWS_METHODS.md) - Get user reviews and ratings\n### 4. [Developer Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/DEVELOPER_METHODS.md) - Get all apps from a developer\n### 5. [List Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/LIST_METHODS.md) - Get top charts (free, paid, grossing)\n### 6. [Similar Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/SIMILAR_METHODS.md) - Find similar/related apps\n### 7. [Suggest Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/SUGGEST_METHODS.md) - Get search suggestions/autocomplete\n\nEach method type has 6 functions:\n- `analyze()` - Get all data as dictionary/list\n- `get_field()` - Get single field value\n- `get_fields()` - Get multiple fields\n- `print_field()` - Print single field to console\n- `print_fields()` - Print multiple fields to console\n- `print_all()` - Print all data as JSON\n\n## 🎯 Method Examples\n\n### 1. [App Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/APP_METHODS.md) - Get App Details\nExtract comprehensive information about any app including ratings, installs, pricing, and 65+ data fields.\n\n📖 **[View detailed documentation →](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/APP_METHODS.md)**\n\n```python\nfrom gplay_scraper import GPlayScraper\n\nscraper = GPlayScraper(http_client=\"curl_cffi\")\n\n# Print all app data as JSON\nscraper.app_print_all(\"com.whatsapp\", lang=\"en\", country=\"us\")\n```\n\n**What you get:** Complete app profile with title, developer, ratings, install counts, pricing, screenshots, permissions, and more.\n\n📄 **[View JSON example →](https://github.com/Mohammedcha/gplay-scraper/blob/main/output/app_example.json)**\n\n---\n\n### 2. [Search Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/SEARCH_METHODS.md) - Find Apps by Keyword\nSearch the Play Store by keyword, app name, or category to discover apps.\n\n📖 **[View detailed documentation →](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/SEARCH_METHODS.md)**\n\n```python\nfrom gplay_scraper import GPlayScraper\n\nscraper = GPlayScraper(http_client=\"curl_cffi\")\n\n# Print all search results as JSON\nscraper.search_print_all(\"fitness tracker\", count=20, lang=\"en\", country=\"us\")\n```\n\n**What you get:** List of apps matching your search with titles, developers, ratings, prices, and Play Store URLs.\n\n📄 **[View JSON example →](https://github.com/Mohammedcha/gplay-scraper/blob/main/output/search_example.json)**\n\n---\n\n### 3. [Reviews Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/REVIEWS_METHODS.md) - Extract User Reviews\nGet user reviews with ratings, comments, timestamps, and helpful votes for sentiment analysis.\n\n📖 **[View detailed documentation →](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/REVIEWS_METHODS.md)**\n\n```python\nfrom gplay_scraper import GPlayScraper\n\nscraper = GPlayScraper(http_client=\"curl_cffi\")\n\n# Print all reviews as JSON\nscraper.reviews_print_all(\"com.whatsapp\", count=100, sort=\"NEWEST\", lang=\"en\", country=\"us\")\n```\n\n**What you get:** User reviews with names, ratings (1-5 stars), review text, timestamps, app versions, and helpful vote counts.\n\n📄 **[View JSON example →](https://github.com/Mohammedcha/gplay-scraper/blob/main/output/reviews_example.json)**\n\n---\n\n### 4. [Developer Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/DEVELOPER_METHODS.md) - Get Developer's Apps\nRetrieve all apps published by a specific developer using their developer ID.\n\n📖 **[View detailed documentation →](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/DEVELOPER_METHODS.md)**\n\n```python\nfrom gplay_scraper import GPlayScraper\n\nscraper = GPlayScraper(http_client=\"curl_cffi\")\n\n# Print all developer apps as JSON\nscraper.developer_print_all(\"5700313618786177705\", count=50, lang=\"en\", country=\"us\")\n```\n\n**What you get:** Complete portfolio of apps from a developer with titles, ratings, prices, and descriptions.\n\n📄 **[View JSON example →](https://github.com/Mohammedcha/gplay-scraper/blob/main/output/developer_example.json)**\n\n---\n\n### 5. [List Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/LIST_METHODS.md) - Get Top Charts\nAccess Play Store top charts including top free, top paid, and top grossing apps by category.\n\n📖 **[View detailed documentation →](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/LIST_METHODS.md)**\n\n```python\nfrom gplay_scraper import GPlayScraper\n\nscraper = GPlayScraper(http_client=\"curl_cffi\")\n\n# Print top free games as JSON\nscraper.list_print_all(\"TOP_FREE\", \"GAME\", count=50, lang=\"en\", country=\"us\")\n```\n\n**What you get:** Top-ranked apps with titles, developers, ratings, install counts, prices, and screenshots.\n\n📄 **[View JSON example →](https://github.com/Mohammedcha/gplay-scraper/blob/main/output/list_example.json)**\n\n---\n\n### 6. [Similar Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/SIMILAR_METHODS.md) - Find Related Apps\nDiscover apps similar to a reference app for competitive analysis and market research.\n\n📖 **[View detailed documentation →](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/SIMILAR_METHODS.md)**\n\n```python\nfrom gplay_scraper import GPlayScraper\n\nscraper = GPlayScraper(http_client=\"curl_cffi\")\n\n# Print similar apps as JSON\nscraper.similar_print_all(\"com.whatsapp\", count=30, lang=\"en\", country=\"us\")\n```\n\n**What you get:** List of similar/competitor apps with titles, developers, ratings, and pricing information.\n\n📄 **[View JSON example →](https://github.com/Mohammedcha/gplay-scraper/blob/main/output/similar_example.json)**\n\n---\n\n### 7. [Suggest Methods](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/SUGGEST_METHODS.md) - Get Search Suggestions\nGet autocomplete suggestions and keyword ideas for ASO and market research.\n\n📖 **[View detailed documentation →](https://github.com/Mohammedcha/gplay-scraper/blob/main/README/SUGGEST_METHODS.md)**\n\n```python\nfrom gplay_scraper import GPlayScraper\n\nscraper = GPlayScraper(http_client=\"curl_cffi\")\n\n# Print search suggestions as JSON\nscraper.suggest_print_all(\"photo editor\", count=10, lang=\"en\", country=\"us\")\n```\n\n**What you get:** List of popular search terms related to your keyword for ASO and keyword research.\n\n📄 **[View JSON example →](https://github.com/Mohammedcha/gplay-scraper/blob/main/output/suggest_example.json)**\n\n---\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create your feature branch\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n## 📄 License\n\nThis project is licensed under the MIT License.\n\n## 🙏 Contributors\n\nSpecial thanks to developers who helped improve this library:\n\n- [@PhamDinhThienVu](https://github.com/PhamDinhThienVu) - Reported reviews pagination bug (v1.0.6)\n- [@elmissouri16](https://github.com/elmissouri16) - Suggested multiple HTTP clients support (v1.0.3)\n\n---\n\n**Happy Analyzing! 🚀**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohammedcha%2Fgplay-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohammedcha%2Fgplay-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohammedcha%2Fgplay-scraper/lists"}