Skip to main content

A Python service for querying IMDb data

Project description

Build Status PyPI Version Python Versions PyPI Downloads

imdbinfo

Your personal gateway to IMDb data. Search for movies, series and people and get structured information in seconds.

Features

  • 🔍 Search movies,series, miniseries and people by name or title
  • 🎬 Detailed movie info including cast, crew, ratings and more
  • 👥 Detailed person info with biography, filmography and images
  • 📺 TV series and miniseries support with seasons and episodes
  • 📅 Release dates and box office information
  • 🌍 International titles and alternate titles
  • 📸 Poster images and backdrops
  • 📊 Ratings from IMDb and other sources
  • 🗂️ Full filmography for actors, directors and writers
  • 📝 Typed Pydantic models for predictable responses
  • No API keys required

Installation

pip install imdbinfo

Quick Start

from imdbinfo.services import search_title, get_movie, get_name, get_season_episodes

# Search for a title
results = search_title("The Matrix")
for movie in results.titles:
    print(f"{movie.title} ({movie.year}) - {movie.imdb_id}")

# Get movie details
movie = get_movie("0133093")  # or 'tt0133093'
print(movie.title, movie.year, movie.rating)

# Get movie kind:
print(movie.kind)  # movie, tvSeries, tvMiniSeries, tvEpisode, video
print(movie.is_series())  # False

# Get person details
person = get_name("nm0000206")  # or '0000206' 
print(person.name, person.birth_date)

Working with Series and Episodes

The movie object provides helpful methods to identify its type:

  • movie.is_series() — Returns True if the movie is a series.
  • movie.is_episode() — Returns True if the movie is an episode.

Depending on the type, you can access additional information:

  • For series: use movie.info_series to get series details.
  • For episodes: use movie.info_episode to get episode details.

Example: Working with Series and Episodes

from imdbinfo.services import get_movie, get_season_episodes

# Fetch a TV series as a Movie object
walking_dead_serie = get_movie("tt1520211")  # Walking Dead

# Check if the object is a series
print(walking_dead_serie.is_series())  # True

# Access series-specific information
print(f"Series Info: {walking_dead_serie.info_series}")

# Retrieve episodes for the series season 1
walking_dead_episodes = get_season_episodes(walking_dead_serie.imdb_id, season=1)

# Print details for the first 3 episodes from the season 1
for episode_info in walking_dead_episodes[:3]:
    print(episode_info)

# Fetch a single episode as a Movie object and check its type
episode_detail = get_movie(episode_info.imdb_id)
print("Is Episode:", episode_detail.is_episode())  # True

# Access episode-specific information: series imdbid, season and episode number ...
print(f"Episode Info: {episode_detail.info_episode}")

⭐⭐New: All episodes in a series⭐⭐

You can now retrieve all episodes in a series with a single call:

from imdbinfo.services import get_all_episodes
# Fetch all episodes for a series
all_episodes = get_all_episodes("tt1520211")  # Walking Dead
for episode in all_episodes:
    print(f"Title: {episode.title} - ({episode.imdbId})")
    print(f"Plot: {episode.plot[:100]}...")
    print(f"Release Date: {episode.release_date}")
    print(f"Rating: {episode.rating}")
    print(f"Duration: {episode.duration/60}min")
    print("" + "="*50)

📝 For more examples see the examples folder.

💡 Looking for a ready-to-use API based on this package? Check out qdMovieAPI — a fast and simple way to access IMDb data via REST!

Why choose imdbinfo?

  • Easy to use Python API
  • Returns clean structured data
  • Powered by requests and lxml
  • Uses Pydantic for type safety
  • No external dependencies or API keys required
  • Ideal for quick scripts and data analysis

Disclaimer

This project and its authors are not affiliated in any way with IMDb Inc. or its affiliates. For more information, please refer to the DISCLAIMER file.

License

imdbinfo is released under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Open an issue or pull request on GitHub.

If you find this project useful, please consider giving it a ⭐ on GitHub!

Please read our Contributing Guidelines and Code of Conduct before contributing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imdbinfo-0.4.2.tar.gz (604.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imdbinfo-0.4.2-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file imdbinfo-0.4.2.tar.gz.

File metadata

  • Download URL: imdbinfo-0.4.2.tar.gz
  • Upload date:
  • Size: 604.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for imdbinfo-0.4.2.tar.gz
Algorithm Hash digest
SHA256 a72f64223a50d52778fc3e0af9d5ab0e0fabb7e015dc57391cec5113f7d42e26
MD5 a85d4d40a9e8e7517dd8f9aed6ad2288
BLAKE2b-256 2437aa3f0498a9f3910ec66f22376939132e244a45d6329e2c89130f9154b68a

See more details on using hashes here.

File details

Details for the file imdbinfo-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: imdbinfo-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for imdbinfo-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e4a60abbbcbb23194d8376ea0f66292d3284417a935acc778055161243f3fd46
MD5 afa20e9d925076f7abaf64dfbc8225c6
BLAKE2b-256 d03ee060dba2c743a021bf2c009e348fcba1355556068c8d2713d554943876da

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page