Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🌍 Google Play Ratings Scraper

Built by krainium

A terminal tool written in Go that pulls Google Play Store reviews for any app across 76 countries in one run. Paste the Play Store URL, pick your settings, walk away. Every review gets written to disk the moment it arrives — the tool never waits until the end to save.


🎯 What It Does

  • 🌐 Scrapes reviews from 76 countries in a single session
  • ⚡ Runs countries in parallel — up to 76 at once
  • 💾 Auto-saves to disk per page as reviews come in — nothing is lost on early exit
  • 🗂️ Creates a clean folder structure with per-country files plus a combined output
  • 🔄 Deduplicates the combined results — reviews that appear in multiple countries are counted once
  • 🛑 Graceful Ctrl+C — stops cleanly, flushes everything collected so far to disk
  • 📊 Live progress bar with ETA, country count, review count, elapsed time
  • 🔍 Filter by star rating, device type, sort order, response language
  • 📋 Saves each review in TXT, CSV, JSON — all three formats per country

🚀 Usage

./main
go run main.go

The tool walks you through a short menu — nothing to memorize.

Step 1 — Paste the Play Store URL:

Play Store URL: https://play.google.com/store/apps/details?id=com.whatsapp

Step 2 — Pick your settings:

Prompt Options Default
Sort order Most Relevant · Newest First · Highest Rating Newest First
Star filter All · 1★ · 2★ · 3★ · 4★ · 5★ All
Device type All · Phone · Tablet · Chromebook All
Reviews per country Any number · 0 = fetch all available 50
Language Any BCP-47 code (en, fr, de, …) en
Workers 1–76 · 1 = sequential, 76 = all countries at once 5

Hit Enter on any prompt to accept the default.


📁 Output Structure

Every run creates a timestamped folder so runs never overwrite each other.

WhatsApp Messenger_20250423_141502/
├── US - United States/
│   ├── reviews.txt
│   ├── reviews.csv
│   └── reviews.json
├── GB - United Kingdom/
│   ├── reviews.txt
│   ├── reviews.csv
│   └── reviews.json
├── IN - India/
│   └── ...
├── (one folder per country — 76 total)
└── all_results/           ← everything merged, duplicates removed
    ├── reviews.txt
    ├── reviews.csv
    └── reviews.json

The all_results/ folder is written after all countries finish. Duplicate reviews — the same review ID appearing in more than one country's response — are removed. The terminal reports how many were deduplicated.


📄 What Each File Contains

reviews.txt — human-readable, one review block per entry:

── Review #1 ──────────────────────────────────────────
  User        : Jane Smith
  Rating      : ★★★★★ (5/5)
  Date        : 2025-04-10
  App Version : 2.24.7
  Thumbs Up   : 312
  Country     : United States (US)
  Review ID   : gp:AOqpTOH...
  URL         : https://play.google.com/...

  Comment:
  Best messaging app I've used. Fast, reliable, no ads.

  Developer Reply (2025-04-11):
  Thank you for the kind words!

reviews.csv — UTF-8 BOM, opens cleanly in Excel:

# Review ID User Name Score Date App Version Thumbs Up Review Content Developer Reply Reply Date Country Review URL

reviews.json — structured, ready for any downstream processing:

{
  "country": "United States (US)",
  "total_scraped": 148,
  "reviews": [
    {
      "review_id": "gp:AOqpTOH...",
      "user_name": "Jane Smith",
      "score": 5,
      "content": "Best messaging app...",
      "date": "2025-04-10",
      "app_version": "2.24.7",
      "thumbs_up": 312,
      "review_url": "https://play.google.com/..."
    }
  ]
}

🌍 Countries Covered

76 countries across all regions:

Americas — US, CA, BR, MX, AR, CL, CO, PE

Europe — GB, DE, FR, IT, ES, NL, PL, SE, NO, DK, FI, PT, BE, CH, AT, CZ, HU, RO, GR, UA, SK, BG, HR, RS, LV, LT, EE

Asia-Pacific — AU, NZ, JP, KR, IN, TW, HK, SG, TH, ID, PH, MY, VN, PK, BD, LK, NP, MM, KH

Middle East / Africa — TR, SA, AE, IL, EG, ZA, NG, GH, KE, DZ, MA, TN, CM, TZ, UG, ET

Central Asia / Caucasus — IR, KZ, UZ, AZ, GE, RU


🔧 Build

Requires Go 1.21+. Zero external dependencies — pure standard library.

git clone https://github.com/krainium/Google-Play-Ratings-Scraper
cd Google-Play-Ratings-Scraper
go build -o main main.go
./main
or run directly
go run main.go

Static binary for distribution:

CGO_ENABLED=0 go build -o main

Cross-compile for Linux from Mac/Windows:

GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o Google-Play-Ratings-Scraper-linux

📦 Project Structure

.
├── main.go    # Entire tool — single file, no dependencies
└── go.mod     # Module file

⚙️ Technical Notes

  • Hits the /_/PlayStoreUi/data/batchexecute endpoint directly — same as the Play Store web client
  • Paginates automatically using the continuation token from each response
  • 300ms delay between pages per country to stay friendly to the API
  • Each country writes to its own files — parallel workers never block each other
  • Ctrl+C triggers a context cancellation; in-flight countries flush their current page before stopping
  • The all_results/ merge iterates countries in the original defined order, not alphabetically

About

A terminal tool written in Go that pulls Google Play Store reviews for any app across 76 countries in one run. Paste the Play Store URL, pick your settings, walk away. Every review gets written to disk the moment it arrives — the tool never waits until the end to save.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages