Tony Wang7 min de lecturaCómo scrapear Metacritic en 2026 (API y Python)
Scrapea Metacritic en 2026 — Metascores, user scores y reseñas de juegos, películas y series — DIY, no-code o API, con la realidad legal.
La forma más rápida de scrapear Metacritic en 2026 es llamar a una API estructurada que devuelve JSON normalizado — detalle del title, Metascore, user score y texto de reviews de crítica/usuarios — para games, movies y TV en la misma forma de request, en lugar de parsear tú mismo las páginas de Metacritic renderizadas con Nuxt.js. Metacritic es el agregador de referencia para responder "¿esto vale la pena?" en tres tipos de medios distintos, pero no tiene una API pública self-serve, y los términos de su dueño restringen explícitamente la recolección automatizada. Esta guía cubre los tres enfoques, qué devuelve cada uno, dónde se rompe cada uno, y la realidad legal por adelantado.
¿Por qué hacer scraping de Metacritic?
El Metascore y el User Score de Metacritic sustentan buena parte de la investigación de recepción, lo que impulsa:
- Agregación de ratings cross-vertical — obtener scores comparables de crítica/audiencia para games, movies y TV desde una sola fuente en lugar de tres sitios separados.
- Análisis de sentimiento crítica vs. audiencia — comparar el Metascore de un title (consenso de crítica) con su User Score (consenso de audiencia) para detectar la brecha entre la reacción de la prensa y la del jugador/espectador.
- Monitoreo de releases y browse por género — seguir nuevos lanzamientos por género y tipo de contenido a medida que aparecen y reciben score.
- Seguimiento de performance de estudio y franquicia — seguir la tendencia del Metascore de un publisher o estudio a lo largo de un catálogo con el tiempo.
- Enriquecimiento para catálogos de media — añadir campos de Metascore y user score a una biblioteca de games, watchlist o dataset interno, y combinarlo con dónde se puede ver realmente un title en streaming para tener un pipeline completo de "es bueno, y ¿puedo verlo?".
¿Es legal hacer scraping de Metacritic?
Opción 1: DIY en Python (y por qué se rompe)
Metacritic corre sobre Nuxt.js (Vue), no sobre el stack React/Next.js que esperarías de muchos sitios de media, así que un scraper DIY tiene que lidiar con un payload window.__NUXT__ más el marcado JSON-LD schema.org que esté embebido:
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)
Funciona en la demo y luego se rompe:
- Los ToS mencionan el scraping directamente, y el riesgo de que se haga cumplir es real. Los Terms of Use de Fandom nombran "spidering," "scraping" y "data mining" explícitamente, más una restricción separada sobre entrenamiento de AI/ML — no es una restricción implícita que estés infiriendo del silencio.
- El bloque JSON-LD está incompleto. El schema
AggregateRatingembebido te da el Metascore y el número de reviews, pero no el User Score, las reviews individuales de crítica/usuarios, el desglose por platform ni los tags de género — para el resto todavía tendrías que parsear el payload__NUXT__completo, y su forma no está documentada y cambia con cada release. - Tres tipos de contenido distintos, tres formas de página distintas. Las páginas de games traen desgloses por platform; las páginas de movies y TV traen campos distintos (season count, networks, cross-reference con IMDb) — un solo parser rara vez cubre las tres limpiamente.
- Las reviews paginan por separado. Las reviews de crítica y de usuarios viven cada una en su propia subpágina por title, así que un registro completo de un title implica varias cargas de página, no una.
Opción 2: Herramientas no-code
No hay un equivalente al archivo de datasets no comerciales de IMDb aquí — Metacritic no publica una descarga masiva de datos. Existen actors de scraping de marketplace para pulls puntuales de Metacritic, pero cargan con la misma exposición a los ToS que el DIY y son incómodos de correr con un schedule dentro de un pipeline. La única alternativa con licencia B2B, la API de Metacritic de Fabric Origin, requiere una suscripción de pago y aprobación de desarrollador, y solo cubre movies y series de TV — no games.
Opción 3: Una API de Metacritic estructurada
Para un workflow repetible que cubra los tres verticales, una API de scraping de Metacritic devuelve JSON normalizado sin que tengas que mantener ningún parsing de páginas. Explora por tipo de contenido y género para encontrar titles:
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" }]
}
]
}
}
Luego trae un game por slug en 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"]
El detalle de un game devuelve Metascore y User Score como objetos separados, más un desglose por platform:
{
"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 } }]
}
}
La misma forma funciona para movies (/metacritic/movie/{slug}, con los campos tagline e imdb_id) y TV (/metacritic/tv/{slug}, con season_count y networks) — revisa los campos reales por tipo de contenido en los 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"
}
}
Las reviews de crítica y de usuarios vuelven con la misma forma reviews[] en los tres verticales — las reviews de crítica traen publication, score, quote, date y (para games) platform; las reviews de usuarios traen author, score, quote y date. Guarda una fila por title (o por review) y vuelve a correr los pulls de browse y de title con un schedule.
Qué puedes recolectar
Listados de browse por tipo de contenido y género (id, title, slug, url, premiere year, rating, Metascore, user score, genres); detalle de game/movie/TV (objetos de Metascore y User Score con review counts y sentiment labels, release date, genres, production companies, y — según el tipo — desgloses de platform para games, tagline/IMDb id para movies, o season count/networks para TV); y reviews de crítica y de usuarios por title (publication o author, score, quote, date, y platform para games). Solo datos agregados y de reviews públicos.
Limitaciones y desafíos comunes
- Una de las plataformas más estrictas de esta serie. Los Terms of Use de Fandom nombran explícitamente el scraping y el data mining, y por separado restringen el uso para entrenamiento de AI/ML — limita cualquier proyecto a scores agregados y una muestra acotada y atribuida de reviews, y consigue permiso por escrito para uso a gran escala o comercial.
- No hay API oficial self-serve, y la única vía con licencia es parcial. La API B2B de Fabric Origin necesita una suscripción de pago y aprobación, y solo cubre Metascores de movies/TV — los games no están incluidos en absoluto.
- Renderizado con Nuxt.js, no el patrón Next.js que esperarías. El parsing DIY implica desarmar un payload
window.__NUXT__que no está documentado y cambia con las actualizaciones del sitio; el JSON-LD embebido solo cubre el Metascore agregado, no el User Score ni las reviews individuales. - Las reviews paginan por title, por tipo de review. Un registro completo de un title necesita llamadas separadas para reviews de crítica y reviews de usuarios, además de la llamada de detalle.
- La identidad del reviewer es un dato personal. Los usernames y el texto citado de las reviews se pueden vincular a personas concretas — trata la recolección de reviews bajo la misma lente de RGPD/CCPA que cualquier otro scrape de datos personales, y evita republicar texto completo de reviews en volumen.
Dónde se usa esto
- Investigación de ratings — comparar las brechas entre Metascore y User Score en games, movies y TV para estudiar la divergencia entre crítica y audiencia.
- Enriquecimiento de catálogo — añadir scores agregados a una biblioteca de media, watchlist o función de recomendación.
- Seguimiento de estudio y franquicia — seguir cómo puntúan con el tiempo los lanzamientos de un publisher o estudio.
- Monitoreo de releases — observar cómo aparecen y reciben score los nuevos lanzamientos por género y tipo de contenido.
Fuentes
Empieza a recolectar
Pruébalo primero, gratis: pasa cualquier URL pública por el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de browse, game, movie y TV en el Playground, revisa el schema en los API docs, y consulta los precios. Metacritic te dice cómo puntuaron un title la crítica y la audiencia; IMDb te dice quién lo hizo y aporta su propio rating independiente; TMDB completa metadata de catálogo limpia y artwork; y Rotten Tomatoes añade un segundo sistema de scoring de crítica/audiencia para contrastar el score de Metacritic — combina cualquier par de los cuatro para un pipeline de datos de media más completo. Consulta también how to choose a web scraping API y is web scraping legal.
Parte de nuestra serie de guías how-to-scrape — todas las plataformas que cubrimos, en un solo índice.
Preguntas frecuentes
¿Metacritic tiene una API pública?
No hay una API self-serve para terceros. La única vía oficial documentada es la API de licencia B2B de Fabric Origin, que necesita una suscripción de pago y aprobación de desarrollador, y solo cubre Metascores de movies y TV — no games.
¿Es legal hacer scraping de Metacritic?
Los Terms of Use de Fandom (que rigen metacritic.com) prohíben explícitamente el spidering, scraping y data mining no autorizados de Content, y exigen por separado consentimiento por escrito antes de usar Content para entrenar un sistema de ML/IA. Limita cualquier recolección de forma estricta y trátala como una plataforma más exigente.
¿Cuál es la diferencia entre Metascore y User Score?
El Metascore es el agregado ponderado de Metacritic de reviews profesionales de crítica (0-100). El User Score es un promedio separado de ratings enviados por la audiencia (0-10). La API de Crawlora devuelve ambos como objetos independientes para cada title.
¿Puedo scrapear datos de games de Metacritic, o solo movies y TV?
Los endpoints de Metacritic de Crawlora cubren los tres verticales — games, movies y TV — cada uno con sus propios endpoints de detalle, reviews de crítica y reviews de usuarios. La única vía oficial con licencia de Fabric Origin solo cubre movies y TV, sin datos de games.
¿Qué datos obtengo de una API de Metacritic?
Listados de browse por tipo de contenido y género, detalle de title (Metascore, User Score, genres, release date y campos específicos por tipo como platforms para games o season count para TV), además de reviews de crítica/usuarios con score, quote, date y publication o author.
¿Cómo obtengo reviews individuales de crítica en lugar de solo el Metascore agregado?
Llama al endpoint correspondiente de critic-reviews para el title (por ejemplo, /metacritic/game/{slug}/critic-reviews) — devuelve para cada review publication, score, quote, date y platform, separado del score agregado del endpoint de detalle.
¿Los datos de reviews de Metacritic son datos personales según el RGPD o la CCPA?
Los usernames de los reviewers y el texto citado de las reviews se pueden vincular a personas concretas, así que trata la recolección de reviews bajo la misma lente de datos personales que cualquier otro scrape — evita republicar texto completo de reviews en volumen y limita la recolección a lo que necesites.