Tony Wang6 min de lecturaCómo scrapear IMDb en 2026 (API y Python)
Scrapea IMDb en 2026 — titles, cast/crew, ratings, reviews y awards — DIY, no-code o API estructurada, con la realidad legal de IMDb.
La forma más rápida de scrapear IMDb en 2026 es llamar a una API estructurada que devuelve JSON normalizado — detalle del title, cast y crew, ratings, reviews de usuarios y awards — en lugar de parsear tú mismo las páginas renderizadas en servidor de IMDb. IMDb es la base de datos por defecto de la web para cine y TV, pero no tiene una API pública de autoservicio, y sus términos restringen el acceso automatizado más explícitamente que la mayoría de sitios de esta serie. Esta guía cubre los tres enfoques, qué devuelve cada uno, dónde se rompe cada uno y la realidad legal desde el principio.
¿Por qué scrapear IMDb?
Los datos de titles y personas de IMDb sostienen la mayoría de los productos de cine/TV, lo que impulsa:
- Enriquecimiento de catálogo — adjuntar title canónico, cast, rating y datos de género a una app de media, watchlist o dataset interno.
- Recomendación y descubrimiento — construir features de "titles similares" o de recomendación basada en género/época.
- Investigación de recepción y sentimiento — rastrear cómo se mueven en el tiempo el rating y el tono de las reviews de un title.
- Seguimiento de talento y filmografía — seguir la obra y el historial de awards de un director o una actriz.
- Investigación comparativa de streaming — combinar los datos de title/rating con dónde está realmente disponible un title para ver qué es aclamado frente a qué es fácil de ver.
¿Es legal scrapear IMDb?
Opción 1: DIY en Python (y por qué se rompe)
Las páginas de IMDb están renderizadas en servidor a partir de un blob JSON embebido en vez de HTML semántico limpio, así que un scraper DIY parsea ese blob desde la página:
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.imdb.com/title/tt1375666/",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Title, rating, and genres live inside a __NEXT_DATA__ / structured-data
# JSON blob, not selectable markup — you parse JSON out of a <script> tag
Funciona en la demo y luego se rompe:
- Los ToS son explícitos, y se hacen cumplir. A diferencia de varias plataformas de esta serie, las Conditions of Use y el
robots.txtde IMDb no solo restringen una feature protegida por login — nombran directamente el data mining y el screen scraping, así que aquí empieza un riesgo real, no solo teórico. - Sin markup estable. La página está renderizada con Next.js con los datos embebidos como JSON en una etiqueta script; la forma cambia con rediseños y A/B tests, rompiendo tu parser sin aviso.
- Anti-bot a escala Amazon. IMDb está detrás de infraestructura de nivel Amazon — las IPs de datacenter y los clientes ingenuos reciben rate-limit o bloqueo rápidamente.
- Todo se pagina por separado. El cast y crew completo, las reviews, los episodios por temporada y los awards viven cada uno en su propia subpágina paginada — una sola carga de página nunca te da un title entero.
Opción 2: herramientas no-code y datasets gratuitos
IMDb publica sus propios Non-Commercial Datasets — archivos TSV actualizados a diario en datasets.imdbws.com que cubren titles, nombres, ratings y crew. Son la primera parada honesta para trabajo offline por lotes de uso personal, pero la licencia es solo personal y no comercial, y los archivos omiten por completo los resúmenes de plot, las reviews y las imágenes — así que cualquier uso comercial, o que necesite esos campos, tiene que buscar en otro lado. Los actors de scraper de los marketplaces cubren parte de ese hueco para extracciones puntuales, pero son incómodos dentro de un pipeline y cargan la misma exposición a los ToS que el DIY.
Opción 3: una API estructurada de IMDb
Para un workflow repetible y con permisos bien acotados, una IMDb scraping API devuelve JSON normalizado sin ningún parsing de páginas que mantener. Busca un title o una persona:
curl "https://api.crawlora.net/api/v1/imdb/search?query=inception" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "inception",
"limit": 10,
"results": [
{ "id": "tt1375666", "title": "Inception", "url": "https://www.imdb.com/title/tt1375666/", "year": "2010" }
]
}
}
Luego resuelve el id y trae detalle, créditos y reviews en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/imdb"
hits = requests.get(f"{base}/search", headers=h, params={"query": "inception"}).json()["data"]["results"]
title_id = hits[0]["id"]
title = requests.get(f"{base}/title", headers=h, params={"id": title_id}).json()["data"]
credits = requests.get(f"{base}/title/credits", headers=h, params={"id": title_id}).json()["data"]
reviews = requests.get(f"{base}/title/reviews", headers=h, params={"id": title_id, "limit": 20}).json()["data"]
El detalle del title es JSON normalizado (campos reales — revisa los docs):
{
"code": 200,
"msg": "OK",
"data": {
"id": "tt1375666",
"title": "Inception",
"year": "2010",
"runtime_minutes": 148,
"genres": ["Action", "Adventure", "Sci-Fi"],
"rating_value": 8.8,
"public_page_derived": true
}
}
Los créditos vuelven por sección (Cast, Directed by, Writing Credits, …), y cada fila trae name, url y — para el cast — character:
{
"data": {
"id": "tt1375666",
"sections": [
{ "name": "Cast", "slug": "cast", "credits": [
{ "name": "Leonardo DiCaprio", "url": "https://www.imdb.com/name/nm0000138/", "character": "Dom Cobb" }
] }
]
}
}
Las personas funcionan igual: /imdb/name por id (nm0634240) devuelve bio, datos de nacimiento, profesiones y titles por los que es conocida; /imdb/name/credits devuelve su filmografía. Awards (/imdb/title/awards), episodios por temporada (/imdb/title/episodes), keywords, specs técnicas y parental guide siguen todos el mismo patrón: id entra, JSON normalizado sale. Guarda una fila por title (o por review, por credit) y vuelve a ejecutarlo con un schedule.
Qué puedes recolectar
Metadata pública de titles y personas: resultados de búsqueda (id, title, url, year); detalle del title (rating, género, duración, plot, fecha de estreno, cast, directores); cast y crew completo por sección; reviews de usuarios (title, rating, votos útiles, spoiler flag); awards; episodios por temporada; keywords, specs técnicas, parental guide, trivia, goofs, quotes y locaciones de filmación; créditos de compañías; y perfiles de persona (bio, datos de nacimiento, profesiones, known-for, filmografía). Solo metadata pública.
Límites y desafíos comunes
- La guía legalmente más cautelosa de esta serie. Los términos de IMDb prohíben explícitamente la recolección automatizada — acota cualquier proyecto a campos de referencia pública, nunca republiques en bloque el texto completo de reviews, y consigue permiso por escrito para uso comercial a gran escala.
- Markup frágil, JSON dentro de HTML. El parsing DIY necesita mantenimiento constante a medida que cambia el renderizado de IMDb.
- Anti-bot a escala de Amazon. Espera rate-limiting y bloqueos con requests ingenuas o IPs de datacenter.
- Fan-out por title. Reviews, episodios y créditos completos se paginan cada uno por separado, así que un registro de title completo implica varios calls, no uno.
- Solo datos públicos. Esto recolecta lo que IMDb ya muestra públicamente — nunca una forma de saltarse un muro de login o de construir un producto de catálogo competidor.
Dónde se usa esto
- Enriquecimiento de catálogo — adjuntar title canónico, cast y datos de rating a un producto de media.
- Motores de recomendación — impulsar "titles similares" y descubrimiento basado en género.
- Investigación de recepción — rastrear tendencias de rating y reviews de un title en el tiempo.
- Seguimiento de talento — seguir la filmografía y los awards de un director o una actriz.
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 search, title y credits en el Playground, revisa el schema en los API docs, y consulta el pricing. IMDb te dice qué es un title, quién lo hizo y cómo está calificado; JustWatch te dice dónde se está transmitiendo realmente — combina ambos para un pipeline completo de "qué es bueno y dónde puedo verlo". ¿Tienes curiosidad de si alguien está buscando realmente un title? How to scrape Google Trends combina datos de rating con demanda de búsqueda real. Del lado de la recepción, how to scrape Trustpilot reviews cubre el mismo patrón de rating/review pero para negocios en vez de titles. Del lado del dinero, how to scrape Box Office Mojo comparte los mismos ids de title con prefijo tt y añade los datos de recaudación y ranking que IMDb no rastrea. Ver 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
¿IMDb tiene una API oficial?
Ninguna de autoservicio. La oferta oficial de IMDb es licenciamiento de datos B2B para empresas (disponible vía AWS Data Exchange, con un mínimo de seis cifras según reportes), y los Non-Commercial Datasets gratuitos son archivos TSV en bloque solo para uso personal y no comercial que omiten plot, reviews e imágenes — una API estructurada es el camino viable para uso comercial o con muchos campos.
¿Es legal scrapear IMDb?
IMDb es más estricta que la mayoría de plataformas de esta serie: las Conditions of Use y el robots.txt prohíben explícitamente el data mining y el screen scraping sin consentimiento por escrito. Trata esto solo como datos de referencia pública — titles, nombres acreditados, ratings agregados y el texto de review que IMDb ya muestra públicamente — nunca republiques reviews completas en bloque, y consigue permiso por escrito del equipo de licenciamiento de IMDb para uso comercial a gran escala. No es asesoría legal.
¿Cómo consigo el cast y crew de una película o serie?
Busca el id del title en IMDb (por ejemplo tt1375666) o úsalo si ya lo tienes, y llama a /imdb/title/credits. Eso devuelve secciones — Cast, Directed by, Writing Credits y más — cada una con name, url de perfil y, para el cast, el character interpretado.
¿Puedo obtener los ratings y el texto de reviews de IMDb?
Sí. /imdb/title devuelve el rating_value y rating_count agregados de un title; /imdb/title/reviews devuelve filas individuales de reviews públicas (title, rating, votos útiles, spoiler flag). Solo reviews públicas — esto no devuelve actividad privada de cuentas.
¿También puedo buscar actores y directores, no solo titles?
Sí. /imdb/name por id de persona (por ejemplo nm0634240) devuelve bio, datos de nacimiento, profesiones y titles por los que es conocida; /imdb/name/credits devuelve su filmografía completa.
¿Puedo rastrear episodios y temporadas de una serie de TV?
Sí — /imdb/title/episodes acepta un parámetro season y pagina por temporada, así que trae una temporada a la vez para construir una lista completa de episodios de una serie.
¿Bastan los Non-Commercial Datasets gratuitos de IMDb en vez de una API?
Para trabajo offline por lotes de uso personal con campos centrales (title, year, género, ratings básicos), sí. Pero la licencia prohíbe el uso comercial, y los archivos omiten plot, reviews, imágenes y todo lo más reciente que la actualización diaria — una API en vivo cubre ambos huecos.