Spaces:
Sleeping
Sleeping
import requests | |
import os | |
BASE_URL = "https://api.themoviedb.org/3" | |
API_KEY = os.environ['TMDB_API_KEY'] | |
def query_tmdb(endpoint, params={}): | |
headers = { | |
"accept": "application/json", | |
"Authorization": f"Bearer {API_KEY}" | |
} | |
response = requests.get(endpoint, headers=headers, params=params) | |
return response.json() | |
def discover_movie(certification=None, certification_gte=None, certification_lte=None, | |
certification_country=None, include_adult=False, include_video=False, | |
language="en-US", page=1, primary_release_year=None, | |
primary_release_date_gte=None, primary_release_date_lte=None, | |
region=None, release_date_gte=None, release_date_lte=None, | |
sort_by="popularity.desc", vote_average_gte=None, vote_average_lte=None): | |
endpoint = f"{BASE_URL}/discover/movie" | |
params = { | |
'include_adult': include_adult, | |
'include_video': include_video, | |
'language': language, | |
'page': page, | |
'sort_by': sort_by | |
} | |
# Add optional parameters if they're provided | |
if certification: | |
params['certification'] = certification | |
if certification_gte: | |
params['certification.gte'] = certification_gte | |
if certification_lte: | |
params['certification.lte'] = certification_lte | |
if certification_country: | |
params['certification_country'] = certification_country | |
if primary_release_year: | |
params['primary_release_year'] = primary_release_year | |
if primary_release_date_gte: | |
params['primary_release_date.gte'] = primary_release_date_gte | |
if primary_release_date_lte: | |
params['primary_release_date.lte'] = primary_release_date_lte | |
if region: | |
params['region'] = region | |
if release_date_gte: | |
params['release_date.gte'] = release_date_gte | |
if release_date_lte: | |
params['release_date.lte'] = release_date_lte | |
if vote_average_gte: | |
params['vote_average.gte'] = vote_average_gte | |
if vote_average_lte: | |
params['vote_average.lte'] = vote_average_lte | |
response = query_tmdb(endpoint, params=params) | |
return response | |
def get_movie_details(movie_id, append_to_response=None): | |
endpoint = f"{BASE_URL}/movie/{movie_id}" | |
params = {} | |
response = query_tmdb(endpoint, params=params) | |
return response | |
def search_person(query, include_adult=False, language="en-US", page=1): | |
endpoint = f"{BASE_URL}/search/person" | |
params = { | |
'query': query, | |
'include_adult': include_adult, | |
'language': language, | |
'page': page | |
} | |
response = query_tmdb(endpoint, params=params) | |
return response | |
def get_person_details(person_id, language="en-US", append_to_response=None): | |
endpoint = f"{BASE_URL}/person/{person_id}" | |
params = { | |
'language': language | |
} | |
if append_to_response: | |
params['append_to_response'] = append_to_response | |
response = query_tmdb(endpoint, params=params) | |
return response | |
def get_movie_genres(language="en-US"): | |
endpoint = f"{BASE_URL}/genre/movie/list" | |
params = { | |
'language': language | |
} | |
response = query_tmdb(endpoint, params=params) | |
return response | |