Tony Wang7 Min. LesezeitMetacritic scrapen 2026 (API & Python)
Metacritic 2026 scrapen — Metascores, User Scores und Reviews für Games, Movies und TV — DIY, No-Code oder API, plus die rechtliche Realität.
Am schnellsten scrapst du Metacritic 2026, indem du eine strukturierte API aufrufst, die normalisiertes JSON zurückgibt — Title-Details, Metascore, User Score und Critic-/User-Review-Text — für Games, Movies und TV in derselben Request-Form, statt Metacritics Nuxt.js-gerenderte Seiten selbst zu parsen. Metacritic ist der Referenz-Aggregator für die Frage „ist das gut" über drei getrennte Medientypen hinweg, hat aber keine offene öffentliche API, und die Bedingungen des Eigentümers schränken automatisierte Sammlung ausdrücklich ein. Dieser Guide zeigt dir alle drei Ansätze: was jeder liefert, wo jeder scheitert, und die rechtliche Realität vorab.
Warum Metacritic scrapen?
Metacritics Metascore und User Score sind die Basis für jede Menge Reception-Research, das treibt an:
- Cross-Vertical Rating-Aggregation — vergleichbare Critic-/Audience-Scores für Games, Movies und TV aus einer Quelle statt von drei getrennten Seiten holen.
- Critic- vs. Audience-Sentiment-Analyse — den Metascore eines Titles (Critic-Konsens) mit seinem User Score (Audience-Konsens) vergleichen, um die Lücke zwischen Presse- und Spieler-/Zuschauer-Reaktion aufzuspüren.
- Release- und Genre-Browse-Monitoring — neue Releases nach Genre und Content-Type verfolgen, sobald sie erscheinen und bewertet werden.
- Studio- und Franchise-Performance-Tracking — den Metascore-Trend eines Publishers oder Studios über einen Katalog hinweg über die Zeit verfolgen.
- Enrichment für Media-Kataloge — Metascore- und User-Score-Felder an eine Game-Library, Watchlist oder ein internes Dataset anhängen und dann mit where a title is actually streaming kombinieren für eine vollständige „ist es gut, und kann ich es schauen"-Pipeline.
Ist es legal, Metacritic zu scrapen?
Option 1: DIY in Python (und warum das scheitert)
Metacritic läuft auf Nuxt.js (Vue), nicht auf dem React-/Next.js-Stack, den du bei vielen Media-Seiten erwarten würdest, deshalb muss ein DIY-Scraper sich um ein window.__NUXT__-Payload plus irgendein eingebettetes JSON-LD-schema.org-Markup herumarbeiten:
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.metacritic.com/game/elden-ring/",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# The page also embeds a <script type="application/ld+json"> block with an
# aggregateRating (Metascore only — no User Score, no individual reviews)
Es funktioniert in der Demo und geht dann kaputt:
- Die ToS nennen Scraping direkt, und das Durchsetzungsrisiko ist real. Fandoms Terms of Use nennen "spidering," "scraping," und "data mining" beim Namen, dazu eine separate AI/ML-Training-Einschränkung — das ist keine implizite Einschränkung, die du aus Schweigen ableitest.
- Der JSON-LD-Block ist unvollständig. Das eingebettete
AggregateRating-Schema liefert dir den Metascore und die Review-Anzahl, aber nicht den User Score, einzelne Critic-/User-Reviews, Platform-Breakdowns oder Genre-Tags — für den Rest müsstest du trotzdem das komplette__NUXT__-Payload parsen, und dessen Form ist nicht dokumentiert und ändert sich mit jedem Release. - Drei getrennte Content-Types, drei getrennte Page-Formen. Game-Pages tragen Platform-Breakdowns; Movie- und TV-Pages tragen andere Felder (Season-Count, Networks, IMDb-Cross-Reference) — ein Parser deckt selten alle drei sauber ab.
- Reviews paginieren getrennt. Critic-Reviews und User-Reviews liegen jeweils auf einer eigenen Sub-Page pro Title, ein vollständiger Title-Record bedeutet also mehrere Page-Loads, nicht einen.
Option 2: No-Code-Tools
Ein Äquivalent zu IMDbs non-commercial Datasets-File gibt es hier nicht — Metacritic veröffentlicht keinen Bulk-Data-Download. Marketplace-Scraper-Actors existieren für einmalige Metacritic-Pulls, tragen aber dieselbe ToS-Exposure wie DIY und sind unpraktisch, um sie nach Zeitplan in einer Pipeline laufen zu lassen. Die eine B2B-lizenzierte Alternative, Fabric Origin's Metacritic API, braucht ein kostenpflichtiges Abo und Entwickler-Freigabe, und deckt nur Movies und TV Shows ab — keine Games.
Option 3: Eine strukturierte Metacritic-API
Für einen wiederholbaren Workflow, der alle drei Verticals abdeckt, liefert eine Metacritic scraping API normalisiertes JSON, ohne dass du Page-Parsing pflegen musst. Durchsuche nach Content-Type und Genre, um Titles zu finden:
curl "https://api.crawlora.net/api/v1/metacritic/browse?type=game&genre=Action%20RPG&sort=score" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"type": "game",
"sort": "score",
"total": 500,
"page": 1,
"per_page": 24,
"items": [
{
"id": 1,
"type": "game",
"title": "The Legend of Zelda: Ocarina of Time (1998)",
"slug": "the-legend-of-zelda-ocarina-of-time-1998",
"url": "https://www.metacritic.com/game/the-legend-of-zelda-ocarina-of-time-1998/",
"premiere_year": 1998,
"rating": "E",
"metascore": { "score": 99, "max": 100, "sentiment": "Universal acclaim" },
"user_score": 9.1,
"genres": [{ "name": "Adventure" }]
}
]
}
}
Hol dann ein Game per Slug in Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/metacritic"
game = requests.get(f"{base}/game/elden-ring", headers=h).json()["data"]
critic_reviews = requests.get(f"{base}/game/elden-ring/critic-reviews", headers=h, params={"per_page": 20}).json()["data"]
user_reviews = requests.get(f"{base}/game/elden-ring/user-reviews", headers=h, params={"per_page": 20}).json()["data"]
Game-Detail liefert Metascore und User Score als separate Objekte, plus einen Per-Platform-Breakdown:
{
"code": 200,
"msg": "OK",
"data": {
"id": 123,
"type": "game",
"title": "Elden Ring",
"slug": "elden-ring",
"premiere_year": 2022,
"release_date": "2022-02-25",
"rating": "M",
"metascore": {
"score": 96,
"max": 100,
"review_count": 93,
"positive_count": 86,
"sentiment": "Universal acclaim",
"url": "https://www.metacritic.com/game/elden-ring/critic-reviews/"
},
"user_score": { "score": 8.4, "max": 10, "review_count": 23997, "sentiment": "Generally favorable" },
"genres": [{ "name": "Action RPG" }],
"production": { "companies": ["FromSoftware", "Bandai Namco Games"] },
"platforms": [{ "name": "PlayStation 5", "is_lead": true, "metascore": { "score": 96, "max": 100 } }]
}
}
Dieselbe Form funktioniert für Movies (/metacritic/movie/{slug}, mit tagline- und imdb_id-Feldern) und TV (/metacritic/tv/{slug}, mit season_count und networks) — prüfe die echten Felder pro Content-Type in den docs:
{
"code": 200,
"msg": "OK",
"data": {
"id": 456,
"type": "movie",
"title": "Oppenheimer",
"slug": "oppenheimer",
"tagline": "The World Forever Changes",
"premiere_year": 2023,
"release_date": "2023-07-21",
"rating": "R",
"metascore": { "score": 90, "max": 100, "review_count": 69, "sentiment": "Universal acclaim" },
"user_score": { "score": 8.4, "max": 10, "review_count": 2191, "sentiment": "Universal acclaim" },
"genres": [{ "name": "Biography" }, { "name": "Drama" }],
"production": { "companies": ["Universal Pictures", "Syncopy"] },
"imdb_id": "tt15398776"
}
}
Critic- und User-Reviews kommen über alle drei Verticals hinweg mit derselben reviews[]-Form zurück — Critic-Reviews tragen publication, score, quote, date und (bei Games) platform; User-Reviews tragen author, score, quote und date. Speichere eine Zeile pro Title (oder pro Review) und lass Browse- und Title-Pulls nach Zeitplan erneut laufen.
Was du sammeln kannst
Browse-Listings nach Content-Type und Genre (id, title, slug, url, premiere year, rating, Metascore, user score, genres); Game-/Movie-/TV-Detail (Metascore- und User-Score-Objekte mit Review-Counts und Sentiment-Labels, Release-Date, Genres, Production-Companies, und — je nach Type — Game-Platform-Breakdowns, Movie-Tagline/IMDb-id, oder TV-Season-Count/Networks); und Critic- und User-Reviews pro Title (publication oder author, score, quote, date, und platform bei Games). Nur öffentliche Aggregat- und Review-Daten.
Grenzen und typische Herausforderungen
- Eine der strengeren Plattformen in dieser Serie. Fandoms Terms of Use nennen Scraping und Data Mining ausdrücklich und schränken separat die AI/ML-Training-Nutzung ein — beschränke jedes Projekt auf aggregierte Scores und eine begrenzte, zugeordnete Review-Stichprobe, und hol dir schriftliche Erlaubnis für großangelegte oder kommerzielle Nutzung.
- Keine offizielle Self-Service-API, und der eine lizenzierte Weg ist unvollständig. Fabric Origins B2B-API braucht ein kostenpflichtiges Abo und eine Freigabe, und deckt nur Movie-/TV-Metascores ab — Games sind gar nicht dabei.
- Nuxt.js-Rendering, nicht das Next.js-Pattern, das du erwarten würdest. DIY-Parsing heißt, ein
window.__NUXT__-Payload auseinanderzunehmen, das nicht dokumentiert ist und sich mit Site-Updates ändert; das eingebettete JSON-LD deckt nur den aggregierten Metascore ab, nicht den User Score oder einzelne Reviews. - Reviews paginieren pro Title, pro Review-Type. Ein vollständiger Title-Record braucht zusätzlich zum Detail-Call separate Calls für Critic-Reviews und User-Reviews.
- Reviewer-Identität ist personenbezogene Daten. Usernames und zitierter Review-Text lassen sich auf Einzelpersonen zurückführen — behandle Review-Sammlung unter derselben DSGVO-/CCPA-Linse wie jeden anderen Personal-Data-Scrape, und vermeide es, vollständigen Review-Text im großen Stil zu republizieren.
Wo das eingesetzt wird
- Rating-Research — Metascore-vs.-User-Score-Lücken über Games, Movies und TV vergleichen, um die Divergenz zwischen Critics und Audience zu untersuchen.
- Catalog-Enrichment — aggregierte Scores an eine Media-Library, Watchlist oder ein Recommendation-Feature anhängen.
- Studio- und Franchise-Tracking — verfolgen, wie die Releases eines Publishers oder Studios über die Zeit bewertet werden.
- Release-Monitoring — beobachten, wie neue Releases nach Genre und Content-Type erscheinen und bewertet werden.
Sources
Leg los mit dem Sammeln
Probier es zuerst kostenlos aus: jage eine beliebige öffentliche URL durch den Free Web Scraper oder prüfe mit dem Anti-Bot Checker, ob eine Seite Bots blockiert — ohne Anmeldung.
Teste die Browse-, Game-, Movie- und TV-Endpoints im Playground, sieh dir das Schema in den API docs an und wirf einen Blick aufs pricing. Metacritic sagt dir, wie Critics und Audience einen Title bewertet haben; IMDb sagt dir, wer ihn gemacht hat, und liefert ein eigenes separates Rating; TMDB ergänzt saubere Catalog-Metadaten und Artwork — kombiniere zwei der drei für eine vollständigere Media-Data-Pipeline. Siehe auch how to choose a web scraping API und is web scraping legal.
Häufig gestellte Fragen
Hat Metacritic eine öffentliche API?
Keine Self-Service-API für Dritte. Der einzige dokumentierte offizielle Weg ist Fabric Origins B2B-Lizenz-API, die ein kostenpflichtiges Abo und eine Entwickler-Freigabe braucht und nur Movie- und TV-Metascores abdeckt — keine Games.
Ist es legal, Metacritic zu scrapen?
Fandoms Terms of Use (die metacritic.com regeln) verbieten ausdrücklich unautorisiertes Spidering, Scraping und Data Mining von Content und verlangen separat eine schriftliche Zustimmung, bevor Content zum Trainieren eines ML-/KI-Systems genutzt wird. Beschränke jede Sammlung eng und behandle das als strengere Plattform.
Was ist der Unterschied zwischen Metascore und User Score?
Metascore ist Metacritics gewichtetes Aggregat aus professionellen Critic-Reviews (0-100). User Score ist ein separater Durchschnitt aus von der Audience eingereichten Ratings (0-10). Die Crawlora-API liefert beide als eigene Objekte für jeden Title.
Kann ich Metacritic-Game-Daten scrapen, oder nur Movies und TV?
Crawloras Metacritic-Endpoints decken alle drei Verticals ab — Games, Movies und TV — jeweils mit passenden Detail-, Critic-Reviews- und User-Reviews-Endpoints. Der eine offizielle Fabric-Origin-Lizenzweg deckt nur Movies und TV ab, ohne Game-Daten.
Welche Daten bekomme ich aus einer Metacritic-API?
Browse-Listings nach Content-Type und Genre, Title-Detail (Metascore, User Score, Genres, Release-Date und typspezifische Felder wie Game-Platforms oder TV-Season-Count) sowie Critic-/User-Reviews mit Score, Quote, Date und Publication oder Author.
Wie bekomme ich einzelne Critic-Reviews statt nur den aggregierten Metascore?
Ruf den passenden critic-reviews-Endpoint für den Title auf (z. B. /metacritic/game/{slug}/critic-reviews) — er liefert für jedes Review publication, score, quote, date und platform, getrennt vom aggregierten Score auf dem Detail-Endpoint.
Sind Metacritic-Review-Daten personenbezogene Daten nach DSGVO oder CCPA?
Reviewer-Usernames und zitierter Review-Text lassen sich auf Einzelpersonen zurückführen, behandle Review-Sammlung also unter derselben Personal-Data-Linse wie jeden anderen Scrape — vermeide es, vollständigen Review-Text im großen Stil zu republizieren, und beschränke die Sammlung auf das, was du brauchst.