IMDbPY is a Python package for retrieving and managing the data of the IMDb movie database about movies, people and companies.
The last release version 6.8 was at 2019 Jul 20.
The official webpage tells us:
In the release 6.8 (codename "Apollo 11") of IMDbPY, multiple parsers were added and fixes; the new search_movie_advanced method allows advanced movie searches...
The changes of the version 6.8 can be found at GitHub webpage and come with these new features:
#224: introduce the search_movie_advanced(title, adult=None, results=None, sort=None, sort_dir=None) method
#145: names are stored in normal format (Name Surname)
#225: remove the obsolete cookie
#182: box office information
#168: parse series and episode number searching for movies
#217: grab poster from search
#218: extract MPAA rating
#220: extract actor headshot from full credits
The install on Python 3.7.3 is easy with pip3 tool:
C:\Python373\Scripts>pip3 install imdbpy
Collecting imdbpy
...
Installing collected packages: imdbpy
Successfully installed imdbpy-6.8
Let's test the new features:C:\Python373>python.exe
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 21:26:53) [MSC v.1916 32 bit (Inte
l)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import imdb
>>> ia = imdb.IMDb()
>>> movies = ia.search_movie_advanced('debby does dallas', adult=True)
>>> print(movies)
...
>>> people = ia.search_person('Clark Gregg')
>>> print(people)
Let's test it:import imdb
from imdb import IMDb
ia = imdb.IMDb()
# create a file to put the output
file1 = open("_imdb_data.txt","w", encoding='utf-8')
# get movies by movie
# example: Alien
def get_by_movie():
my_movie = str(input('Type the movie name: '))
movies = ia.search_movie_advanced(my_movie, adult=True)
print(type(movies))
return movies
# get filmography by id
filmography_list = []
def get_filmography_by_id(id):
actor_results = ia.get_person_filmography(id)
for item in actor_results['data']['filmography']:
filmography_list.append(str(item))
return filmography_list
# the main function
def main():
a = get_by_movie()
for i in a:
print("________________________")
print("i: ",i)
# you can uncomment this to test Movie class functions
#print("Type:",type(i))
#print("Summary:",i.summary())
#print("ID: ",i.getID())
#print("Smart cannonical title: ",i.smartCanonicalTitle())
#print("caracters ref: ",i.get_charactersRefs())
#print("current info: ",i.get_current_info())
#print("cinematographic process: ",i.get('cinematographic process'))
#print(i["title"])
#print informations items from Movie class
print("~~~~~~~~~~~~~~~~~~~~~~~~")
for k, v in i.items():
print(k, v)
# write to the file the value of a
txt = str(k)+":"+str(v)+"\n"
file1.write(txt)
print("------------------------")
# add a new line on each movie
file1.write('-----^-----\n')
#get filmography by id
id_filmography=get_filmography_by_id('0078748')
# print the filmography
for item in id_filmography:
print(item)
#after write, close the file
file1.close()
if __name__ == '__main__':
main()
This is the first part of the output file named _imdb_data:title:Alien
certificates:['R']
runtimes:['117']
genres:['Horror', 'Sci-Fi']
rating:8.5
votes:719508
metascore:89
gross:78900000
plot:After a space merchant vessel perceives an unknown transmission as a distress call, its landing on the source moon finds one of the crew attacked by a mysterious lifeform, and they soon realize that its life cycle has merely begun.
directors:[]
cast:[, , , ]
cover url:https://m.media-amazon.com/images/M/MV5BMmQ2MmU3NzktZjAxOC00ZDZhLTk4YzEtMDMyMzcxY2IwMDAyXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_UX67_CR0,0,67,98_AL_.jpg
year:1979
kind:movie
canonical title:Alien
long imdb title:Alien (1979)
long imdb canonical title:Alien (1979)
smart canonical title:Alien
smart long imdb canonical title:Alien (1979)
full-size cover url:https://m.media-amazon.com/images/M/MV5BMmQ2MmU3NzktZjAxOC00ZDZhLTk4YzEtMDMyMzcxY2IwMDAyXkEyXkFqcGdeQXVyNzkwMjQ5NzM@.jpg
-----^-----
title:Aliens
certificates:['R']
runtimes:['137']
...