imdby
imdby scrapes the IMDb database from Python — movies, people, companies, events, characters, news, charts, and reviews — no official API key required.
| Source | Link |
|---|---|
| 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
pandasDataFrames, 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.