• Stars
    star
    213
  • Rank 180,315 (Top 4 %)
  • Language
    Python
  • Created over 8 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A lightweight Python library for The Movie Database (TMDb) API. The TMDb API is a resource for developers to integrate movie, TV show and cast data along with posters or movie fan art.

tmdbv3api

Build Status codecov GitHub release (latest by date) PyPI Downloads GitHub commits since latest release (by date) for a branch

A lightweight Python library for The Movie Database (TMDb) API. The TMDb API is a resource for developers to integrate movie, TV show and cast data along with posters or movie fan art. themoviedb.org is a free and community edited database.

Register an account: https://www.themoviedb.org/account/signup

Check out the API documentation: https://developers.themoviedb.org/3/getting-started/introduction

Install

tmdbv3api is available on the Python Package Index (PyPI) at https://pypi.python.org/pypi/tmdbv3api

You can install tmdbv3api using pip.

$ pip install tmdbv3api

Usage

The first step is to initialize a TMDb object and set your API Key.

from tmdbv3api import TMDb
tmdb = TMDb()
tmdb.api_key = 'YOUR_API_KEY'

Alternatively, you can export your API key as an environment variable.

$ export TMDB_API_KEY='YOUR_API_KEY'

Other configuration settings include defining your language and enabling debug mode, for example:

tmdb.language = 'en'
tmdb.debug = True

Then to communicate with TMDb, create an instance of one of the objects and call that instances methods. For example, to retrieve movie recommendations for a given movie id:

from tmdbv3api import Movie

movie = Movie()

recommendations = movie.recommendations(movie_id=111)

for recommendation in recommendations:
    print(recommendation.title)
    print(recommendation.overview)

Examples

Get the list of popular movies on The Movie Database. This list refreshes every day.

movie = Movie()
popular = movie.popular()

for p in popular:
    print(p.id)
    print(p.title)
    print(p.overview)
    print(p.poster_path)

Get the primary information about a movie.

m = movie.details(343611)

print(m.title)
print(m.overview)
print(m.popularity)

Search for movies by title.

search = movie.search('Mad Max')

for res in search:
    print(res.id)
    print(res.title)
    print(res.overview)
    print(res.poster_path)
    print(res.vote_average)

Get the similar movies for a specific movie id.

similar = movie.similar(777)

for result in similar:
    print(result.title)
    print(result.overview)

Search for TV shows by title.

tv = TV()
show = tv.search('Breaking Bad')

for result in show:
    print(result.name)
    print(result.overview)

Get the similar TV shows for a specific tv id.

similar = tv.similar(1396)

for show in similar:
    print(show.name)
    print(show.overview)

Get the details of TV season for a specific tv id.

season = Season()
show_season = season.details(1396, 1)
print(show_season.air_date)
print(len(show_season.episodes))

Get the general person information for a specific id.

person = Person()
p = person.details(12)

print(p.name)
print(p.biography)

Discover movies by different types of data like average rating, number of votes, genres and certifications.

# What movies are in theatres?

discover = Discover()
movie = discover.discover_movies({
    'primary_release_date.gte': '2017-01-20',
    'primary_release_date.lte': '2017-01-25'
})

# What are the most popular movies?

movie = discover.discover_movies({
    'sort_by': 'popularity.desc'
})

# What are the most popular kids movies?

movie = discover.discover_movies({
    'certification_country': 'US',
    'certification.lte': 'G',
    'sort_by': 'popularity.desc'
})

Discover TV shows by different types of data like average rating, number of votes, genres, the network they aired on and air dates.

# What are the most popular TV shows?

show = discover.discover_tv_shows({
    'sort_by': 'popularity.desc'
})

# What are the best dramas?

show = discover.discover_tv_shows({
    'with_genres': 18,
    'sort_by': 'vote_average.desc',
    'vote_count.gte': 10
})

Login to your account and add some movie recommendations to your TMDb watchlist.

from tmdbv3api import Account
from tmdbv3api import Authentication
from tmdbv3api import TMDb, Movie

USERNAME = "YOUR_USERNAME"
PASSWORD = "YOUR_PASSWORD"

tmdb = TMDb()
tmdb.api_key = "YOUR_API_KEY"

auth = Authentication(username=USERNAME, password=PASSWORD)

account = Account()
details = account.details()

print("You are logged in as %s. Your account ID is %s." % (details.username, details.id))
print("This session expires at: %s" % auth.expires_at)

movie = Movie()

s = movie.search("Gangs of New York")
first_result = s[0]
recommendations = movie.recommendations(first_result.id)

for recommendation in recommendations:
    print("Adding %s (%s) to watchlist." % (recommendation.title, recommendation.release_date))
    account.add_to_watchlist(details.id, recommendation.id, "movie")

Running Tests

You can run the tests via the command line. You must export your TMDb API key and Session ID as an environment variables.

Your Session ID can be obtained by running Authentication(username, password).session_id

Mac

$ export TMDB_API_KEY='YOUR_API_KEY'
$ export TMDB_SESSION_ID='YOUR_SESSION_ID'

Windows (Command Prompt)

$ setx TMDB_API_KEY "YOUR_API_KEY"
$ setx TMDB_SESSION_ID "YOUR_SESSION_ID"

Windows (PowerShell)

$ $Env:TMDB_API_KEY="YOUR_API_KEY"
$ $Env:TMDB_SESSION_ID="YOUR_SESSION_ID"

After you've set up your environmental variables then run:

$ python -m unittest discover tests/

More Repositories

1

daftlistings

A library that enables programmatic interaction with daft.ie. Daft.ie has nationwide coverage and contains about 80% of the total available properties in Ireland.
Python
161
star
2

zoopla

An API to allow developers to create applications using hyper local data on 27m homes, over 1m sale and rental listings, and 15 years of sold price data in the UK.
Python
78
star
3

ezflix

Command line utility that enables users to search for TV and movie torrents and stream using Peerflix automatically.
Python
46
star
4

python-cli-template

A starting point for building Python Command Line Applications.
Python
39
star
5

rcp

Python client for RealClearPolitics.
Python
26
star
6

nrql-simple

nrql-simple provides a convenient way to interact with the New Relic Insights query API.
Python
12
star
7

nrql-cli

An interactive command line interface for querying New Relic Insights event data.
Python
8
star
8

recommender

Python client for the Spotify Recommendations API.
Python
7
star
9

github-traffic-insights

Lambda function to send your Github traffic statistics to New Relic Insights.
Python
7
star
10

tweet-generator

A small Python program to generate tweets.
Python
5
star
11

smartmove-api

An API to retrieve property price statistics in Ireland and the UK.
Python
5
star
12

covid-cli

Get the latest COVID-19 information via the command line.
Python
3
star
13

dashboard-email-scheduler

Using New Relic NerdGraph, customers can now retrieve a PDF or image of a given New Relic Dashboard programmatically. This project provides the ability to periodically share a New Relic Dashboard using the GMail API.
Python
3
star
14

fitness-insights-dashboard

I have started to track my daily intake and exercise using MyFitnessPal and other mobile apps. This project pulls data from those sources and sends to New Relic Insights. This allows me to create visualisations and query my fitness and intake data using NRQL.
Python
3
star
15

recommender-client

Music recommendation client powered using the Spotify Recommendations API.
JavaScript
2
star
16

dashboard-exporter

A Python client to export a New Relic dashboard PDF or image programmatically.
Python
1
star
17

setup

My OS setup, including dotfiles and sane defaults for macOS.
Shell
1
star
18

nrscrapy

Monitor Scrapy using the New Relic Python Agent API
Python
1
star