Package: tmdbsimple
tmdbsimpleA wrapper for The Movie Database API v3tmdbsimpleis a wrapper, written in Python, for The Movie Database (TMDb) API
v3.  By calling the functions available intmdbsimpleyou can simplify your
code and easily access a vast amount of movie, tv, and cast data.  To learn
more about The Movie Database API, check out theoverviewanddocumentation.FeaturesCOMPLETELY UPDATED AND FULLY TESTED.Supports onlyPython versions with TLS
1.2.
Keep it simple!Tested with Python 3.6, 3.7, and 3.8.One-to-one mapping betweentmdbsimplemethods and TMDb endpoints.Implements all TMDb methods, including Accounts and Authentication.Easy to access data using Python class attributes.Easy to experiment withtmdbsimplefunctions inside the Python interpreter.Code tested with unittests.  Refer to the unittest code for method call syntax.Installationtmdbsimpleis available on the Python Package Index (PyPI) athttps://pypi.python.org/pypi/tmdbsimple.You can installtmdbsimpleusing one of the following techniques.Use pip:pip install tmdbsimpleDownload the .zip or .tar.gz file from PyPI and install it yourselfDownload thesource from Githuband
install it yourselfIf you install it yourself, also installrequests.API KeyYou will need an API key to The Movie Database to access the API.  To obtain a
key, follow these steps:Register for and verify anaccount.Log intoyour account.Select the API section on left side of your account page.Click on the link to generate a new API key and follow the instructions.ExamplesOnce you have thetmdbsimplepackage installed and a TMDb API key, you can
start to play with the data.First, import the library and assign your API_KEY.importtmdbsimpleastmdbtmdb.API_KEY='YOUR_API_KEY_HERE'Optionally, set a timeout for requests. Seeherefor more info.tmdb.REQUESTS_TIMEOUT=5# seconds, for both connect and readortmdb.REQUESTS_TIMEOUT=(2,5)# seconds, for connect and read specificallyOptionally, configure the library to use your own REQUESTS_SESSION. Seeherefor more info.importrequeststmdb.REQUESTS_SESSION=requests.Session()To communicate with The Movie Database API, create an instance of one of the
object types, call one of the methods on the instance, and access the instance
attributes.  Use keys to access the values of attributes that are dictionaries.
In this example, we create a movie instance for 'The Matrix' and determine the
budget and certification.>>>movie=tmdb.Movies(603)>>>response=movie.info()>>>movie.title'The Matrix'>>>movie.budget63000000>>>response=movie.releases()>>>forcinmovie.countries:...ifc['iso_3166_1']=='US':...print(c['certification'])...'R'Let's play with the interface a bit more.  Suppose you and your friend are
arguing over which movie in the Bourne series was most popular.  Your friend
says the first in a series is always most popular.  You disagree.>>>search=tmdb.Search()>>>response=search.movie(query='The Bourne')>>>forsinsearch.results:...print(s['title'],s['id'],s['release_date'],s['popularity'])...TheBourneUltimatum25032007-08-0355.2447062124256TheBourneSupremacy25022004-07-2343.4553609681985TheBourneIdentity25012002-06-0638.5531563780592TheBourneLegacy490402012-08-109.90635210153143TheBourneIdentity86771988-05-081.53988446573129BetteBourne:ItGoeswiththeShoes1793040.23You are correct!  Now you claim the producers should be able to make sequels
cheaper, based on what they learned from making the first movie.  To be fair,
you compute the budget per minute of runtime.  Your friend disagrees, claiming
the producers spend more money trying to out do the previous sequel.>>>identity=tmdb.Movies(2501)>>>response=identity.info()>>>identity.budget,identity.runtime(60000000,119)>>>int(identity.budget/identity.runtime)504201>>>supremacy=tmdb.Movies(2502)>>>response=supremacy.info()>>>supremacy.budget,supremacy.runtime(75000000,108)>>>int(supremacy.budget/supremacy.runtime)694444>>>ultimatum=tmdb.Movies(2503)>>>response=ultimatum.info()>>>ultimatum.budget,ultimatum.runtime(70000000,115)>>>int(ultimatum.budget/ultimatum.runtime)608695In this case you are both correct.  The third movie was cheaper than the
second, which was more expensive than the first.You also can call one of the methods without explicitly instanciating an
object.>>>response=tmdb.Movies(603).info()>>>response['budget']63000000If you use Authentication to access a user Account, be sure to check outhttps://www.themoviedb.org/documentation/api/sessions.If you like this wrapper, and would like access to even more movie and TV data,
check outrtsimplehttps://pypi.python.org/pypi/rtsimple, a wrapper for the
Rotten Tomatoes API.