Skip to main content

version travis coveralls license

Python wrapper around The Open Movie Database API (a.k.a. OMDb API): http://omdbapi.com/

NOTE: This library and its author are not endorsed by or affiliated with OMDbAPI.com.

Installation

Using pip:

pip install omdb

Dependencies

  • requests >= 2.0.1

API

Each omdb.py method supports the same parameters as the OMDb API.

Paramters

OMDb API Param

omdb.py Param

Value

Description

s

search

string (optional)

title of media to search for

i

imdbid

string (optional)

a valid IMDb ID

t

title

string (optional)

title of media to return

y

year

year (optional)

year of media

page

page

page (optional)

page to return

Season

season

season (optional)

season number

Episode

episode

episode (optional)

episode number

type

media_type

string (optional)

media type to return (one of movie, episode, or series)

plot=full

fullplot=True

full

include extended plot

plot=short

fullplot=False

short

include short plot (default)

tomatoes=true

tomatoes=True

true (optional)

add Rotten Tomatoes data to response

NOTE: By default all OMDb API responses are formatted as JSON. However, OMDb API also supports responses formatted as XML. Since omdb.py will handle JSON to dict conversion automatically, it’s generally not necessary (nor is it supported by the main ombd.py methods) to return XML formatted responses. But this can be accomplished by directly using omdb.request:

import omdb

# must use OMDb API parameters
res = omdb.request(t='True Grit', y=1969, r='xml')
xml_content = res.content

Methods

All methods are accessible via:

import omdb

# omdb.<method>

Method

Description

Returns

get(**params)

Generic request to OMDb API (requires keyword argument passing of all parameters).

dict

search(search, **params)

Search by string.

list

search_movie(search, **params)

Search movies by string.

list

search_episode(search, **params)

Search episodes by string.

list

search_series(search, **params)

Search series by string.

list

imdbid(imdbid, **params)

Get by IMDB ID

dict

title(title, **params)

Get by title

dict

set_default(key, default)

Set default request parameter

None

Client

Instead of using the omdb module to access the OMDb API, one can create an OMDBClient instance:

from omdb import OMDBClient

client = OMDBClient(apikey=API_KEY)

Class Methods

Description

Returns

get(**omdb_params)

Generic request to OMDb API which can be used for any type of query.

list or dict

request(**omdbapi_params)

Lower-level request to OMDb API which accepts URL query parameters supported by OMDb API.

request.Response

set_default(key, default)

Set default request parameter.

None

API Data

API data returned from the OMDb API is returned as a dictionary with their fields converted from CamelCase to underscore_case.

Search Model Fields

OMDb API Field

omdb.py Field

Title

title

Year

year

Type

type

imdbID

imdb_id

Get Model Fields (tomatoes=False)

OMDb API Field

omdb.py Field

Title

title

Year

year

Type

type

Actors

actors

Awards

awards

Country

country

Director

director

Genre

genre

Episode

episode

Episodes

episodes

Season

season

SeriesID

series_id

Language

language

Metascore

metascore

Plot

plot

Poster

poster

Rated

rated

Ratings

ratings

Released

released

Response

response

Runtime

runtime

Writer

writer

imdbID

imdb_id

imdbRating

imdb_rating

imdbVotes

imdb_votes

Get Model Fields (tomatoes=True)

OMDb API Field

omdb.py Field

Title

title

Year

year

Type

type

Actors

actors

Awards

awards

Country

country

Director

director

Genre

genre

Episode

episode

Season

season

SeriesID

series_id

Language

language

Metascore

metascore

Plot

plot

Poster

poster

Rated

rated

Ratings

ratings

Released

released

Runtime

runtime

Writer

writer

imdbID

imdb_id

imdbRating

imdb_rating

imdbVotes

imdb_votes

BoxOffice

box_office

DVD

dvd

Production

production

Website

website

tomatoConsensus

tomato_consensus

tomatoFresh

tomato_fresh

tomatoImage

tomato_image

tomatoMeter

tomato_meter

tomatoRating

tomato_rating

tomatoReviews

tomato_reviews

tomatoRotten

tomato_rotten

tomatoUserMeter

tomato_user_meter

tomatoUserRating

tomato_user_rating

tomatoUserReviews

tomato_user_reviews

Usage

General Import

import omdb

API Key

Usage of the OMDb API currently requires an API key. Set the OMDb API key with omdb.set_default or when creating a new omdb.OMDBClient instance:

# if using the module level client
omdb.set_default('apikey', API_KEY)

# if creating a new client instance
client = omdb.OMDBClient(apikey=API_KEY)

omdb.get()

# include full plot and Rotten Tomatoes data
omdb.get(title='True Grit', year=1969, fullplot=True, tomatoes=True)

# set timeout of 5 seconds for this request
omdb.get(title='True Grit', year=1969, fullplot=True, tomatoes=True, timeout=5)

omdb.search_movie()

# search movies by string
omdb.search_movie('True Grit')
omdb.search_movie('True Grit', timeout=5)
omdb.search_movie('true', page=2)

omdb.search_episode()

# search episodes by string
omdb.search_episode('True Grit')
omdb.search_episode('True Grit', timeout=5)
omdb.search_episode('true', page=2)

omdb.search_series()

# search series by string
omdb.search_series('True Grit')
omdb.search_series('True Grit', timeout=5)
omdb.search_series('true', page=2)

omdb.imdbid()

# get by IMDB id
omdb.imdbid('tt0065126')
omdb.imdbid('tt0065126', timeout=5)

omdb.title()

# get by title
omdb.title('True Grit')
omdb.title('True Grit', timeout=5)

omdb.set_default()

# include tomatoes data by default
omdb.set_default('tomatoes', True)
omdb.title('True Grit') == omdb.title('True Grit', tomatoes=True)

# set a global timeout of 5 seconds for all HTTP requests
omdb.set_default('timeout', 5)

omdb.request()

# lower level API request
omdb.request(t='True Grit', y=1969, plot='full', tomatoes='true', timeout=5)

Returns:

A requests.Response object.

Errors and Exceptions

Under the hood, omdb.py uses the requests library. For a listing of explicit exceptions raised by requests, see Requests: Errors and Exceptions.

By default requests will not raise an Exception when an HTTP response’s status code is not 200. However, omdb.py WILL raise an requests.exceptions.HTTPError error for any response with a non-200 status code.

Changelog

v0.9.1 (2018-03-24)

  • Remove omdb.models module and return plain dictionaries from search results instead of custom model classes. (breaking change)

    • Previously, one could access result items using attributes (e.g. result.title) or indexes (e.g. result['title']). Now, results are dict objects so must use result['title'].

  • Rename omdb.Client to omdb.OMDBClient. (breaking change)

  • Make omdb.request|omdb.OMDBClient.request use an API key if it’s set.

v0.8.1 (2017-08-10)

  • Add support for OMDb API key via omdb.set_default(apikey=API_KEY) or client = omdb.Client(apikey=API_KEY). Thanks oshribr!

  • Add Epiodes OMDb API fields as episodes model field.

v0.7.0 (2016-08-03)

  • Add support for page parameter to search. Thanks taserian!

v0.6.0 (2016-05-22)

  • Add support for timeout parameter to all HTTP requests.

v0.5.0 (2015-07-29)

  • Add support for Season/Episode OMDb parameter via season/episode arguments to every main API function. Thanks cihansahin!

v0.4.0 (2015-04-29)

  • Add Season, Episode, and SeriesID OMDb API fields as season, episode, and series_id model fields.

v0.3.1 (2015-01-27)

  • Add metadata to main module:

    • __title__

    • __summary__

    • __url__

    • __version__

    • __author__

    • __email__

    • __license__

v0.3.0 (2015-01-13)

  • Add search_movie.

  • Add search_episode.

  • Add search_series.

  • Add support for type OMDb parameter via media_type argument to every main API function.

v0.2.0 (2014-10-16)

  • Update models.Item with additional OMDb API fields: Awards, Country, Language, and Metascore.

  • Add omdb.request method for easier access to raw request response.

  • Initialization of omdb.Client now accepts keyword arguments for API request parameter defaults. Previously, a dict object needed to be passed in.

  • Full PEP8 compliance.

  • Integrate tox testing into setup.py.

v0.1.1 (2014-02-09)

v0.1.0 (2013-11-24)

  • Convert API response to data models (see omdb/models.py).

  • Add /tests folder and move appropriate doctests there.

  • Return empty data for search and get requests which return no record(s).

  • Add omdb.set_default() for setting default request parameters (e.g. set_default(tomatoes=True) to always include tomatoes data)

v0.0.1 (2013-11-12)

  • Initial release.

Download files

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

Source Distribution

omdb-0.9.1.tar.gz (22.3 kB view details)

Uploaded Source

Built Distribution

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

omdb-0.9.1-py2.py3-none-any.whl (13.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file omdb-0.9.1.tar.gz.

File metadata

  • Download URL: omdb-0.9.1.tar.gz
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for omdb-0.9.1.tar.gz
Algorithm Hash digest
SHA256 3a6ba52b68677c2da1f39b9977d80c753492376c0f4a7631d7af6cead02a798e
MD5 87e65b949e72dd7661cf7184bcf50830
BLAKE2b-256 ee81022900819e827926dcd67d7a0aae411ce0717cfd22e06c99a0674829dc71

See more details on using hashes here.

File details

Details for the file omdb-0.9.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for omdb-0.9.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7fa4fdfdb2905d10389635733c7078f2572ceb37ada2ca1f84ca83f6d4fcab02
MD5 8bf743331e0b1dca52639b28748dd555
BLAKE2b-256 f9dfeef36e875804c2896df591c58d8c018d22318ad8e7b3c796eb9ec0ea58fc

See more details on using hashes here.

Release history Release notifications | RSS feed

0.10.1

2 files

0.10.0

2 files

This release

0.9.1 This release

2 files

0.8.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

1 file

0.0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page