imdbinfo


Nameimdbinfo JSON
Version 0.5.4 PyPI version JSON
download
home_pageNone
SummaryA Python service for querying IMDb data
upload_time2025-09-11 06:30:17
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords imdb movie information data
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![PyPI Downloads](https://static.pepy.tech/badge/imdbinfo)](https://pepy.tech/projects/imdbinfo)
[![PyPI Version](https://img.shields.io/pypi/v/imdbinfo?style=flat-square)](https://pypi.org/project/imdbinfo/)
[![Build Status](https://github.com/tveronesi/imdbinfo/actions/workflows/pypi-publish.yml/badge.svg)](https://github.com/tveronesi/imdbinfo/actions/workflows/pypi-publish.yml)
[![Python Versions](https://img.shields.io/pypi/pyversions/imdbinfo?style=flat-square)](https://pypi.org/project/imdbinfo/)

[//]: # (![PyPI - Daily Downloads](https://img.shields.io/pypi/dm/your-package-name?label=PyPI%20downloads&logo=pypi))

# 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
- 🌐 **Localized results** in multiple languages (set globally or per request)
- 📅 **Release dates** and **box office** information
- 🌍 **International titles** and **alternate titles (AKAs)** via `get_akas`
- 📸 **Poster images** and **backdrops**
- 📊 **Ratings** from IMDb and other sources
- 📝 **User reviews and ratings** via `get_reviews`
- 🎭 **Movie trivia and interesting facts** via `get_trivia`
- 🗂️ **Full filmography** for actors, directors and writers
- 📝 **Typed Pydantic models** for predictable responses
- ⚡ **Built-in caching** for faster repeated requests
- ✅ **No API keys required**

## Installation

```bash
pip install imdbinfo
```

## Quick Start

```python
from imdbinfo import search_title, get_movie, get_name, get_season_episodes, get_reviews, get_trivia

# 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, tvMovie, tvEpisode, tvSpecial, tvShort, short, videoGame, video, musicVideo, podcastEpisode, podcastSeries
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

```python
from imdbinfo 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}")
```

#### All episodes in a series
You can now retrieve all episodes in a series with a single call:
```python
from imdbinfo 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)
```

#### Company Credits

* distribution companies, 
* production companies, 
* sales companies, 
* special effects companies, 
* miscellaneous companies

You can now extract information about the companies involved in a movie or series:

```python
from imdbinfo import get_movie

movie = get_movie("tt0133093")  # The Matrix

# Distribution companies
for company in movie.company_credits["distribution"]:
    print(f"Distribution: {company.name} ({company.country})")

# Sales companies
for company in movie.company_credits["sales"]:
    print(f"Sales: {company.name}")

# Production companies
for company in movie.company_credits["production"]:
    print(f"Production: {company.name}")

# Special effects companies
for company in movie.company_credits["specialEffects"]:
    print(f"Special Effects: {company.name}")

# Miscellaneous companies
for company in movie.company_credits["miscellaneous"]:
    print(f"Miscellaneous: {company.name}")
```

#### Alternate titles (AKAs)
Fetch international and alternate titles for any movie or series:
```python
from imdbinfo import get_akas
akas = get_akas("tt0133093")  # The Matrix
for aka in akas["akas"][:5]:
    print(f"{aka.title} ({aka.country_name})")
```

#### Reviews and User Ratings
Get user reviews and ratings for any movie or series:
```python
from imdbinfo import get_reviews
reviews = get_reviews("tt0133093")  # The Matrix
for review in reviews[:3]:
    print(f"Rating: {review['authorRating']}/10")
    print(f"Summary: {review['summary']}")
    print(f"Helpful votes: {review['upVotes']} up, {review['downVotes']} down")
    print(f"Spoiler: {review['spoiler']}")
    print("---")
```

#### Movie Trivia and Facts
Discover interesting trivia and behind-the-scenes facts:
```python
from imdbinfo import get_trivia
trivia = get_trivia("tt0133093")  # The Matrix
for fact in trivia[:3]:
    print(f"Interest Score: {fact['interestScore']}")
    print(f"Fact: {fact['body'][:200]}...")
    print("---")
```

### Localized results in multiple languages (set globally or per request)

Added support for locales in `search_movie`, `get_movie`, `get_episodes`, `get_all_episodes`, `get_name`
```python
from imdbinfo import get_movie, search_title
# Fetch movie details in Italian
movie_it = get_movie("tt0133093", locale="it")  # The Matrix

# Search for titles in Spanish (although IMDb search is mostly in all languages)
results_es = search_title("La Casa de Papel", locale="es")
```

Localized data can be set globally, dont need to pass `locale` every time in the functions:
```python
from imdbinfo import get_movie
from imdbinfo.locale import set_locale
set_locale("it")  # Set default locale to Italian
movie_it = get_movie("tt0133093")  # The Matrix in Italian
```



📝 For more examples see the [examples](examples/) folder.

> 💡 **Looking for a ready-to-use API based on this package? Check out [qdMovieAPI](https://github.com/tveronesi/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 niquests 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](DISCLAIMER.txt) file.

## License

imdbinfo is released under the MIT License.
See the [LICENSE](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](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "imdbinfo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "imdb, movie, information, data",
    "author": null,
    "author_email": "\"@tveronesi\" <tveronesi+imdbinfo@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/7f/02/34086094cbde91c1bdb870e3727d6258b1c861ffb2fb017a61a094bafc0b/imdbinfo-0.5.4.tar.gz",
    "platform": null,
    "description": "[![PyPI Downloads](https://static.pepy.tech/badge/imdbinfo)](https://pepy.tech/projects/imdbinfo)\n[![PyPI Version](https://img.shields.io/pypi/v/imdbinfo?style=flat-square)](https://pypi.org/project/imdbinfo/)\n[![Build Status](https://github.com/tveronesi/imdbinfo/actions/workflows/pypi-publish.yml/badge.svg)](https://github.com/tveronesi/imdbinfo/actions/workflows/pypi-publish.yml)\n[![Python Versions](https://img.shields.io/pypi/pyversions/imdbinfo?style=flat-square)](https://pypi.org/project/imdbinfo/)\n\n[//]: # (![PyPI - Daily Downloads]&#40;https://img.shields.io/pypi/dm/your-package-name?label=PyPI%20downloads&logo=pypi&#41;)\n\n# imdbinfo\n\n**Your personal gateway to IMDb data**. Search for movies, series and people and get structured information in seconds.\n\n## Features\n\n- \ud83d\udd0d **Search movies, series, miniseries and people** by name or title\n- \ud83c\udfac **Detailed movie info** including cast, crew, ratings and more\n- \ud83d\udc65 **Detailed person info** with biography, filmography and images\n- \ud83d\udcfa **TV series and miniseries** support with seasons and episodes\n- \ud83c\udf10 **Localized results** in multiple languages (set globally or per request)\n- \ud83d\udcc5 **Release dates** and **box office** information\n- \ud83c\udf0d **International titles** and **alternate titles (AKAs)** via `get_akas`\n- \ud83d\udcf8 **Poster images** and **backdrops**\n- \ud83d\udcca **Ratings** from IMDb and other sources\n- \ud83d\udcdd **User reviews and ratings** via `get_reviews`\n- \ud83c\udfad **Movie trivia and interesting facts** via `get_trivia`\n- \ud83d\uddc2\ufe0f **Full filmography** for actors, directors and writers\n- \ud83d\udcdd **Typed Pydantic models** for predictable responses\n- \u26a1 **Built-in caching** for faster repeated requests\n- \u2705 **No API keys required**\n\n## Installation\n\n```bash\npip install imdbinfo\n```\n\n## Quick Start\n\n```python\nfrom imdbinfo import search_title, get_movie, get_name, get_season_episodes, get_reviews, get_trivia\n\n# Search for a title\nresults = search_title(\"The Matrix\")\nfor movie in results.titles:\n    print(f\"{movie.title} ({movie.year}) - {movie.imdb_id}\")\n\n# Get movie details\nmovie = get_movie(\"0133093\")  # or 'tt0133093'\nprint(movie.title, movie.year, movie.rating)\n\n# Get movie kind:\nprint(movie.kind)  # movie, tvSeries, tvMiniSeries, tvMovie, tvEpisode, tvSpecial, tvShort, short, videoGame, video, musicVideo, podcastEpisode, podcastSeries\nprint(movie.is_series())  # False\n\n# Get person details\nperson = get_name(\"nm0000206\")  # or '0000206' \nprint(person.name, person.birth_date)\n```\n#### Working with Series and Episodes\n\nThe `movie` object provides helpful methods to identify its type:\n\n- `movie.is_series()` \u2014 Returns `True` if the movie is a series.\n- `movie.is_episode()` \u2014 Returns `True` if the movie is an episode.\n\nDepending on the type, you can access additional information:\n\n- For series: use `movie.info_series` to get series details.\n- For episodes: use `movie.info_episode` to get episode details.\n\n#### Example: Working with Series and Episodes\n\n```python\nfrom imdbinfo import get_movie, get_season_episodes\n\n# Fetch a TV series as a Movie object\nwalking_dead_serie = get_movie(\"tt1520211\")  # Walking Dead\n\n# Check if the object is a series\nprint(walking_dead_serie.is_series())  # True\n\n# Access series-specific information\nprint(f\"Series Info: {walking_dead_serie.info_series}\")\n\n# Retrieve episodes for the series season 1\nwalking_dead_episodes = get_season_episodes(walking_dead_serie.imdb_id, season=1)\n\n# Print details for the first 3 episodes from the season 1\nfor episode_info in walking_dead_episodes[:3]:\n    print(episode_info)\n\n# Fetch a single episode as a Movie object and check its type\nepisode_detail = get_movie(episode_info.imdb_id)\nprint(\"Is Episode:\", episode_detail.is_episode())  # True\n\n# Access episode-specific information: series imdbid, season and episode number ...\nprint(f\"Episode Info: {episode_detail.info_episode}\")\n```\n\n#### All episodes in a series\nYou can now retrieve all episodes in a series with a single call:\n```python\nfrom imdbinfo import get_all_episodes\n# Fetch all episodes for a series\nall_episodes = get_all_episodes(\"tt1520211\")  # Walking Dead\nfor episode in all_episodes:\n    print(f\"Title: {episode.title} - ({episode.imdbId})\")\n    print(f\"Plot: {episode.plot[:100]}...\")\n    print(f\"Release Date: {episode.release_date}\")\n    print(f\"Rating: {episode.rating}\")\n    print(f\"Duration: {episode.duration/60}min\")\n    print(\"\" + \"=\"*50)\n```\n\n#### Company Credits\n\n* distribution companies, \n* production companies, \n* sales companies, \n* special effects companies, \n* miscellaneous companies\n\nYou can now extract information about the companies involved in a movie or series:\n\n```python\nfrom imdbinfo import get_movie\n\nmovie = get_movie(\"tt0133093\")  # The Matrix\n\n# Distribution companies\nfor company in movie.company_credits[\"distribution\"]:\n    print(f\"Distribution: {company.name} ({company.country})\")\n\n# Sales companies\nfor company in movie.company_credits[\"sales\"]:\n    print(f\"Sales: {company.name}\")\n\n# Production companies\nfor company in movie.company_credits[\"production\"]:\n    print(f\"Production: {company.name}\")\n\n# Special effects companies\nfor company in movie.company_credits[\"specialEffects\"]:\n    print(f\"Special Effects: {company.name}\")\n\n# Miscellaneous companies\nfor company in movie.company_credits[\"miscellaneous\"]:\n    print(f\"Miscellaneous: {company.name}\")\n```\n\n#### Alternate titles (AKAs)\nFetch international and alternate titles for any movie or series:\n```python\nfrom imdbinfo import get_akas\nakas = get_akas(\"tt0133093\")  # The Matrix\nfor aka in akas[\"akas\"][:5]:\n    print(f\"{aka.title} ({aka.country_name})\")\n```\n\n#### Reviews and User Ratings\nGet user reviews and ratings for any movie or series:\n```python\nfrom imdbinfo import get_reviews\nreviews = get_reviews(\"tt0133093\")  # The Matrix\nfor review in reviews[:3]:\n    print(f\"Rating: {review['authorRating']}/10\")\n    print(f\"Summary: {review['summary']}\")\n    print(f\"Helpful votes: {review['upVotes']} up, {review['downVotes']} down\")\n    print(f\"Spoiler: {review['spoiler']}\")\n    print(\"---\")\n```\n\n#### Movie Trivia and Facts\nDiscover interesting trivia and behind-the-scenes facts:\n```python\nfrom imdbinfo import get_trivia\ntrivia = get_trivia(\"tt0133093\")  # The Matrix\nfor fact in trivia[:3]:\n    print(f\"Interest Score: {fact['interestScore']}\")\n    print(f\"Fact: {fact['body'][:200]}...\")\n    print(\"---\")\n```\n\n### Localized results in multiple languages (set globally or per request)\n\nAdded support for locales in `search_movie`, `get_movie`, `get_episodes`, `get_all_episodes`, `get_name`\n```python\nfrom imdbinfo import get_movie, search_title\n# Fetch movie details in Italian\nmovie_it = get_movie(\"tt0133093\", locale=\"it\")  # The Matrix\n\n# Search for titles in Spanish (although IMDb search is mostly in all languages)\nresults_es = search_title(\"La Casa de Papel\", locale=\"es\")\n```\n\nLocalized data can be set globally, dont need to pass `locale` every time in the functions:\n```python\nfrom imdbinfo import get_movie\nfrom imdbinfo.locale import set_locale\nset_locale(\"it\")  # Set default locale to Italian\nmovie_it = get_movie(\"tt0133093\")  # The Matrix in Italian\n```\n\n\n\n\ud83d\udcdd For more examples see the [examples](examples/) folder.\n\n> \ud83d\udca1 **Looking for a ready-to-use API based on this package? Check out [qdMovieAPI](https://github.com/tveronesi/qdMovieAPI) \u2014 a fast and simple way to access IMDb data via REST!**\n\n## Why choose imdbinfo?\n\n- Easy to use Python API\n- Returns clean structured data\n- Powered by niquests and lxml\n- Uses Pydantic for type safety\n- No external dependencies or API keys required\n- Ideal for quick scripts and data analysis\n\n## Disclaimer\nThis project and its authors are not affiliated in any way with IMDb Inc. or its affiliates. \nFor more information, please refer to the [DISCLAIMER](DISCLAIMER.txt) file.\n\n## License\n\nimdbinfo is released under the MIT License.\nSee the [LICENSE](LICENSE) file for details.\n\n## Contributing\n\nContributions are welcome! Open an issue or pull request on GitHub.\n\nIf you find this project useful, please consider giving it a \u2b50 on GitHub!\n\nPlease read our [Contributing Guidelines](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Python service for querying IMDb data",
    "version": "0.5.4",
    "project_urls": {
        "Homepage": "https://tveronesi.github.io/imdbinfo/"
    },
    "split_keywords": [
        "imdb",
        " movie",
        " information",
        " data"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2cadfe7b7924948564471d8023d7f2e02fab73daaaed5375ec2f12873032e42d",
                "md5": "dcc8e0baa6ff044ad3b8fb8d60ba820f",
                "sha256": "7fdba5b070ba5684a7f9e474dab1c1199afc30cd7d23081950e335d1d832557b"
            },
            "downloads": -1,
            "filename": "imdbinfo-0.5.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dcc8e0baa6ff044ad3b8fb8d60ba820f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 17994,
            "upload_time": "2025-09-11T06:30:16",
            "upload_time_iso_8601": "2025-09-11T06:30:16.299043Z",
            "url": "https://files.pythonhosted.org/packages/2c/ad/fe7b7924948564471d8023d7f2e02fab73daaaed5375ec2f12873032e42d/imdbinfo-0.5.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7f0234086094cbde91c1bdb870e3727d6258b1c861ffb2fb017a61a094bafc0b",
                "md5": "199c3fb5119e981aa3745080a72d8d4f",
                "sha256": "4fa5a9420847d802c8ab5d6be5f981b472ea150ef0f62aab8514d2a101d005a9"
            },
            "downloads": -1,
            "filename": "imdbinfo-0.5.4.tar.gz",
            "has_sig": false,
            "md5_digest": "199c3fb5119e981aa3745080a72d8d4f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 613645,
            "upload_time": "2025-09-11T06:30:17",
            "upload_time_iso_8601": "2025-09-11T06:30:17.688118Z",
            "url": "https://files.pythonhosted.org/packages/7f/02/34086094cbde91c1bdb870e3727d6258b1c861ffb2fb017a61a094bafc0b/imdbinfo-0.5.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-11 06:30:17",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "imdbinfo"
}
        
Elapsed time: 0.44474s