# Google Play Audiobooks - Full Detail & Reviews (`ryyos/google-play-audiobooks-scraper`) Actor

\[$1.5/1000] Crawl every Google Play Audiobooks genre, then get full detail per audiobook: description, author bio, narrator, publisher, ISBN, duration, price, rating breakdown, real reviews with author and text, genres and related titles.

- **URL**: https://apify.com/ryyos/google-play-audiobooks-scraper.md
- **Developed by:** [Rio Dwi Saputra](https://apify.com/ryyos) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

Extract complete Google Play Audiobooks data at scale - full catalog coverage, and full detail on every title - without touching a browser or writing a single line of scraping code.

### What does Google Play Audiobooks Scraper do?

This Actor crawls [Google Play Audiobooks](https://play.google.com/store/books/category/audiobooks)' full catalog, then opens every audiobook it finds to pull complete detail: full synopsis, author bio, narrator, publisher, ISBN, duration, genre tags, price, the rating breakdown by star, real user reviews with author name and full text, and related titles ("More by this author," "More by this narrator," "Related titles"). Run it directly from the [Apify Console](https://console.apify.com), on a schedule, or through the [Apify API](https://docs.apify.com/api/v2) and pull results via integrations with Make, Zapier, Google Sheets and more.

Note: Google Play currently only server-renders real listing content for the general "All audiobooks" tab and the "Children's audiobooks" genre - the other genre-filter links in Google's own navigation return an empty page (see FAQ below). The "All audiobooks" tab is not genre-limited, so this does not reduce catalog coverage - only the ability to target one specific genre.

### Why use Google Play Audiobooks Scraper?

- **Publishing/audio market research** - track which genres, publishers and narrators dominate Google Play Audiobooks over time.
- **Competitive pricing** - monitor audiobook prices across genres and publishers.
- **Review mining** - read what real listeners actually say (not just star averages) to spot what resonates in a genre.
- **Narrator/author tracking** - follow `moreByAuthorAudiobookIds` and `moreByNarratorAudiobookIds` to map an author's or narrator's full catalog.
- **Catalog research** - see publisher, ISBN, duration and abridged/unabridged status at a glance.

### How to use Google Play Audiobooks Scraper

1. Open the Actor's **Input** tab.
2. Leave `genres` empty for full catalog coverage (recommended), or narrow to just the "Children's audiobooks" genre.
3. Set your storefront **country** and **language** (defaults to `us` / `en`).
4. Click **Start** and watch results land in the **Output** tab as they're scraped.
5. Export the dataset as JSON, CSV, Excel, HTML or via the API.

### Input

| Field | Description | Default |
|---|---|---|
| `genres` | Which source(s) to crawl - "All audiobooks" (full catalog) and/or "Children's audiobooks" (the only other genre that currently returns real content - see FAQ). Leave empty for both. | both sources |
| `country` | Two-letter Play Store storefront country code (`gl`), e.g. `us`, `gb`, `id`. | `us` |
| `language` | Language code for scraped text (`hl`), e.g. `en`, `id`, `ja`. | `en` |
| `maxAudiobooksPerSource` | Cap on audiobooks taken per genre page. `0` = take everything Google server-renders on that page (typically ~100-150). | `60` |
| `maxReviewsPerAudiobook` | Cap on reviews kept per audiobook. `0` = skip reviews. | `10` |
| `proxyConfiguration` | Apify Proxy settings. Not required (no anti-bot encountered), but recommended for large runs. | Apify Proxy on |

### Output

Each dataset item is one audiobook, for example:

```json
{
  "audiobookId": "AQAAAIACJwGnEM",
  "title": "Practical Magic",
  "authorName": "Alice Hoffman",
  "narrators": ["Christina Moore"],
  "publisher": "Simon and Schuster",
  "isbn": "9781442362499",
  "durationText": "9h 12m 32s",
  "durationSeconds": 33152,
  "genres": ["Fiction / Fantasy / Contemporary", "Fiction / Family Life / Siblings"],
  "ratingValue": 4.35,
  "ratingHistogram": { "5": 22, "4": 6, "3": 4, "2": 0, "1": 2 },
  "isFree": false,
  "priceFormatted": "$14.95",
  "reviews": [
    { "author": "Elisa Grant-Holler", "rating": 5, "text": "...", "postedAtText": "April 18, 2023", "helpfulCount": 0 }
  ],
  "moreByAuthorAudiobookIds": ["AQAAAICCJ0-n3M", "AQAAAACZX2Zf7M"],
  "url": "https://play.google.com/store/audiobooks/details?id=AQAAAIACJwGnEM&hl=en&gl=us"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel from the **Output** tab or the API.

### Data table

| Field | Description |
|---|---|
| `title`, `description`, `authorBio` | Audiobook title, full synopsis, author biography |
| `coverThumbnailUrl`, `coverImageUrl` | Cover image URLs (thumbnail and large) |
| `authorName`, `authorNames`, `authorUrl`, `narrators` | Author identity (primary and full list), Play page, narrator(s) |
| `isbn`, `publisher`, `publishedDate`, `publishedDateText`, `audiobookLanguage` | Publication metadata |
| `durationIso`, `durationSeconds`, `durationText`, `isAbridged` | Length and abridged/unabridged status |
| `genres` | Genre/subject tags (hierarchical, e.g. "Fiction / Fantasy / Contemporary") |
| `deviceCompatibility`, `exportOption`, `seller`, `additionalDetails` | Device support note, export note, seller of record, and any other info-panel fields |
| `isFree`, `price`, `priceCurrency`, `priceFormatted`, `availability` | Pricing |
| `ratingValue`, `ratingCount`, `ratingHistogram` | Average rating and full 1-5 star breakdown |
| `reviews` | Author, avatar, rating, full text, date, helpful count |
| `continueTheSeriesAudiobookIds`, `moreByAuthorAudiobookIds`, `moreByNarratorAudiobookIds`, `relatedAudiobookIds`, `relatedClusters` | Related titles |
| `sourceCategory` | Which crawled genre first surfaced this audiobook |

### Pricing / Cost estimation

This Actor is priced at **$1.5 per 1,000 audiobooks scraped** (pay-per-result), in line with the sibling [Google Play Books Scraper](https://apify.com/ryyos/google-play-books-scraper) and [Google Play Store App Scraper](https://apify.com/ryyos/google-play-apps-scraper). Apify's free plan includes monthly platform credit, so small test runs cost nothing.

### Tips or advanced options

- Leave `genres` empty for the broadest run (both working sources) - the general "All audiobooks" tab alone already spans categories, so this is the recommended default.
- The same audiobook is only ever detail-scraped once per run even if it appears in both sources (deduplicated automatically); check `sourceCategory` to see where it was first discovered.
- Set `maxReviewsPerAudiobook` to `0` if you only need audiobook metadata - this skips nothing else, reviews are just not requested.
- Brand-new titles may have no reviews or rating yet - these come back as empty/`null` rather than being omitted, so your downstream schema stays consistent.

### FAQ, disclaimers and support

**Why can't I filter by genre like Fiction, Romance or Mystery?** Google Play links to genre-specific audiobook pages from its own Books homepage, but as of this writing most of those pages (15 of 17 tested) return an empty shell rather than server-rendered results - the listing content on those specific routes appears to require client-side JavaScript execution that this Actor, like any plain-HTTP scraper, does not perform. This is a real limitation of the target site today, not a bug in this Actor - the "All audiobooks" tab and the "Children's audiobooks" genre are the two sources confirmed to work, and the former is not genre-limited to begin with, so overall catalog coverage is not reduced.

This Actor only extracts publicly visible data from Google Play Audiobooks pages that anyone can view in a browser without logging in. It does not access, bypass or attempt to circumvent any login wall, CAPTCHA or paid/DRM-protected content. Reviews returned are the batch Google Play itself renders on the audiobook's own page; this Actor does not paginate beyond what Google serves on that page. This Actor covers audiobooks only - Google Play Books (ebooks) is a separate catalog with its own URL and ID scheme, covered by the sibling [Google Play Books Scraper](https://apify.com/ryyos/google-play-books-scraper). Google Play's own layout can change over time, which may require an update to this Actor - please report any issue via the Issues tab. Need a custom scraper or a feature this Actor doesn't cover? Reach out and a tailored solution can be built.

# Actor input Schema

## `genres` (type: `array`):

Which Google Play Audiobooks source pages to browse. Google Play currently only server-renders real listing content for the general 'All audiobooks' tab and the 'Children's audiobooks' genre - the other genre-filter pages linked from Google's own navigation return an empty page (client-side rendering Google has not enabled for those routes at the time of writing). The 'All audiobooks' tab is not genre-limited, so leaving this empty already gives broad cross-category coverage. Leave empty to crawl both working sources.

## `country` (type: `string`):

Two-letter Google Play storefront country code, e.g. 'us', 'gb', 'id', 'jp'. Affects pricing, availability and which audiobooks are shown.

## `language` (type: `string`):

Language code for the scraped UI/text, e.g. 'en', 'id', 'ja'.

## `maxAudiobooksPerSource` (type: `integer`):

Upper bound on how many audiobooks to take from each individual genre page. Set to 0 to take every audiobook Google Play server-renders on that listing page (typically ~100-150). The same audiobook found under multiple genres is only detail-scraped once.

## `maxReviewsPerAudiobook` (type: `integer`):

Upper bound on how many individual reviews (author, rating, text, date) to keep per audiobook, taken from the featured reviews Google Play itself renders on the audiobook page (typically up to 3). Set to 0 to skip review extraction entirely.

## `proxyConfiguration` (type: `object`):

play.google.com did not require proxies during testing (no CAPTCHA/anti-bot challenge on listing or detail pages), but Apify Proxy is recommended for large runs to keep your IP healthy given the request volume of scraping many audiobook detail pages.

## Actor input object example

```json
{
  "genres": [
    "audiobooks",
    "audiobooks_coll_1689"
  ],
  "country": "us",
  "language": "en",
  "maxAudiobooksPerSource": 60,
  "maxReviewsPerAudiobook": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `runInfo` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "genres": [
        "audiobooks",
        "audiobooks_coll_1689"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ryyos/google-play-audiobooks-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "genres": [
        "audiobooks",
        "audiobooks_coll_1689",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("ryyos/google-play-audiobooks-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "genres": [
    "audiobooks",
    "audiobooks_coll_1689"
  ]
}' |
apify call ryyos/google-play-audiobooks-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ryyos/google-play-audiobooks-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JJbpZJVFYJyO3T4f9/builds/IC6WrSvrd7l4qGG5H/openapi.json
