Rotten Tomatoes Tomatometer & Popcornmeter Score Scraper
Pricing
Pay per event
Rotten Tomatoes Tomatometer & Popcornmeter Score Scraper
Scrape Tomatometer and Popcornmeter scores, critics consensus, genres, release dates, runtime, directors, and streaming provider availability for movies and TV series from Rotten Tomatoes. Discovers titles via the RT sitemap and extracts full score data from each detail page.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
Scrape Tomatometer and Popcornmeter scores, critics consensus, genres, release dates, runtime, directors, and streaming availability for movies and TV series from Rotten Tomatoes.
What It Does
The scraper discovers titles via the RT sitemap (tens of thousands of movies and TV series) and extracts structured score data from each detail page. For targeted runs, pass a list of specific RT URLs directly and skip the sitemap entirely.
Data comes from three embedded JSON blobs per page — the media scorecard, the JSON-LD schema block, and the where-to-watch affiliate list — so it's stable and doesn't depend on CSS selectors that change with redesigns.
Output
Each record contains:
| Field | Type | Description |
|---|---|---|
title | string | Movie or TV series title |
media_type | string | movie or tv |
rt_url | string | Canonical RT detail page URL |
tomatometer_score | integer | Critics score (0–100), or null if unscored |
tomatometer_state | string | certified-fresh, fresh, or rotten |
critics_review_count | integer | Number of critics reviews counted |
audience_score | integer | Audience (Popcornmeter) score (0–100) |
audience_rating_count | integer | Number of audience ratings counted |
critics_consensus | string | RT critics consensus text |
mpaa_rating | string | MPAA/content rating (e.g. PG-13, TV-MA) |
genres | array | Genre list from structured data |
release_date_theaters | string | Theatrical release date |
release_date_streaming | string | Streaming release date |
runtime_minutes | integer | Runtime in minutes |
directors | array | Director name(s) |
streaming_providers | array | Current streaming platforms |
Input
maxItems (integer, required) — Maximum records to return. Set to 10–100 for test runs, leave higher for bulk pulls.
mediaType (string, optional) — Filter by movie, tv, or leave empty to scrape both. Only applies to sitemap-driven discovery; ignored when startUrls are provided.
startUrls (array, optional) — List of specific RT movie or TV detail page URLs. When provided, the scraper hits those pages directly and skips sitemap discovery entirely. Useful for monitoring a watchlist or validating specific titles.
{"maxItems": 100,"mediaType": "movie","startUrls": []}
For targeted runs:
{"maxItems": 5,"startUrls": [{ "url": "https://www.rottentomatoes.com/m/dune_part_two" },{ "url": "https://www.rottentomatoes.com/tv/the_boys_2019" }]}
Discovery Strategy
Full-catalog runs use RT's public sitemap index at /sitemaps/sitemap.xml, which links to dedicated sitemap files for movies (movie_N.xml) and TV series (tv-series_N.xml). The scraper filters to canonical title pages only — season pages, episode pages, and photo galleries are skipped.
RT detail pages serve structured data via embedded <script> blocks, so no JavaScript rendering is required. The actor runs as a lightweight HTML crawler.
Notes
- Scores update as new reviews come in — results reflect whatever RT shows at scrape time.
- Titles with no reviews yet return
nullfortomatometer_scoreandaudience_score. - The
tomatometer_statefield follows RT's own certification logic:certified-freshrequires a minimum review count plus a score above the threshold; otherwise it'sfreshorrottenbased on the score. streaming_providerslists the platforms RT shows in the "Where to Watch" module. This is affiliate data and may not reflect every available platform.