imdby.
PyPI Version Python Versions Downloads License: MIT

imdby

imdby scrapes the IMDb database from Python — movies, people, companies, events, characters, news, charts, and reviews — no official API key required.

SourceLink
PyPI:https://pypi.org/project/imdby/
Repository:https://github.com/santhoshse7en/imdby/
Documentation:https://santhoshse7en.github.io/imdby_doc/

Why imdby?

IMDb doesn't offer a public API, and existing solutions are often abandoned or limited to a narrow slice of the site. imdby scrapes IMDb's own pages directly and hands the result back as ready-to-use Python objects and pandas DataFrames — no scraping boilerplate, no API key, no rate-limit approval process.

Features

  • Retrieve IMDb data for a title: overview, plot, plot keywords, taglines, full cast & crew, company credits, release info, ratings breakdown, parental guide, technical specs, critic reviews, and external reviews/sites.
  • Retrieve IMDb charts: Top 250, Top 250 (English), Bottom 100, box office, MovieMeter/TVMeter, Top TV, and India-specific charts (Tamil, Telugu, Malayalam, trending, upcoming).
  • Scrape a title's user reviews and score them with VADER and TextBlob sentiment analysis.
  • Look up IMDb IDs for a title, person, company, event, character, or news item by search text.
  • Results come back as plain Python objects and pandas DataFrames, ready for further analysis.
  • Compatible with Python 3.10+ (tested through Python 3.14).

Installation

Install the latest release from PyPI:

pip install imdby

Or install from GitHub for the latest, unreleased changes:

pip install git+https://github.com/santhoshse7en/imdby

Example

Here's an example that demonstrates how to use imdby:

from imdb.imdb import IMDb

ia = IMDb()

# Fetch full cast and crew of a movie by IMDb ID
cast = ia.full_cast_and_crew('tt4154796')

print('Directors:')
for director in cast.directors_name:
    print(director)

# Fetch core movie details
movie = ia.movie('tt4154796')
print(movie.title, movie.rating, movie.genre)

# Browse the IMDb Top 250 as a DataFrame
charts = ia.imdb_charts()
print(charts.top_rated_movies_df.head())

# Search for a person (prompts for a serial number from the printed matches)
people = ia.search_person('Simon Baker')
print(people.person_id, people.name)

The search_* methods (search_movie, search_person, search_company, search_event, search_character, search_news) and upcoming_releases() are interactive — they print numbered suggestions to the console and use input() to read your selection. See Quick Start for a walkthrough, or Usage for the full API reference.