CinemagoerNG

April 23, 2026 ยท View on GitHub

CinemagoerNG is a Python library and command-line utility for parsing IMDb data. It provides a clean, modern API for accessing movie, TV show, and celebrity information from the IMDb.

Note

This project and its authors are not affiliated with the Internet Movie Database Inc. See the DISCLAIMER.txt file for details about terms of use.

Features

  • Parse comprehensive movie and TV show information.
  • Support for alternate titles (AKAs).
  • Taglines and parental guide information.
  • Episode data for TV series.
  • Modern Python typing support.
  • Clean, intuitive API.

Important notice

As of April 2026, due to WAF policies on the IMDb web site, CinemagoerNG no longer contains any code to retrieve the pages. In order to use the library, you have to provide a function that will return the content for a given IMDb URL:

def fetch_custom(url: str) -> str:
    """Somehow return the contents of the URL."""

import cinemagoerng.web

cinemagoerng.web.fetcher.set(fetch_custom)

This function does not necessarily have to make an HTTP/HTTPS connection; it could also read the content from some files or database that have been populated earlier.

Installation

CinemagoerNG supports Python 3.11 and later versions. You can install it using pip:

pip install cinemagoerng

Basic usage

Here's a simple example of parsing movie information:

from cinemagoerng import web as imdb

# Get basic movie information
movie = imdb.get_title("tt0133093")  # The Matrix
print(movie.title)       # "The Matrix"
print(movie.sort_title)  # "Matrix"
print(movie.year)        # 1999
print(movie.runtime)     # 136

# Access movie genres
for genre in movie.genres:
    print(genre)         # "Action", "Sci-Fi"

# Get director information
for credit in movie.directors:
    print(credit.name)   # "Lana Wachowski", "Lilly Wachowski"

Parsing additional information

You can fetch additional details using the relevant set_ functions:

# Set all taglines
imdb.set_taglines(movie)
for tagline in movie.taglines:
    print(tagline)

# Get alternate titles (AKAs)
imdb.set_akas(movie)
for aka in movie.akas:
    print(f"{aka.title} ({aka.country})")

Available data

CinemagoerNG can parse various types of information:

Basic information

  • Title
  • Year
  • Runtime
  • Genres
  • Plot summary
  • Rating
  • Number of votes

Credits

  • Directors
  • Writers
  • Producers
  • Cast members
  • Crew members

Additional details

  • Taglines
  • Alternative titles (AKAs)
  • Episode information (for TV series)
  • Parental guide

Development

It is recommended to use uv for development:

# Clone the repository
git clone https://github.com/cinemagoer/cinemagoerng.git
cd cinemagoerng

# Set up environment
uv sync

# Run tests
uv run pytest

# Run type checks
uv run mypy src tests

# Check code style
uv run ruff check src tests

# Test under all supported Python versions
uv run tox

License

This project is licensed under the GNU General Public License v3 - see the LICENSE.txt file for details.

Acknowledgments

CinemagoerNG is a modern reimagining of the original Cinemagoer/IMDbPY project. Special thanks to:

  • All contributors to the original Cinemagoer (IMDbPY) project.
  • The IMDb website for providing the data.