[videos] Fix TMDB lookup for movies
This commit is contained in:
@ -1,8 +1,9 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
import pendulum
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from themoviedb import TMDb
|
from themoviedb import TMDb
|
||||||
from tmdbv3api import TV, TMDb as TMDb_direct
|
from tmdbv3api import TV, Movie, TMDb as TMDb_direct
|
||||||
from videos.metadata import VideoMetadata, VideoType
|
from videos.metadata import VideoMetadata, VideoType
|
||||||
|
|
||||||
TMDB_KEY = getattr(settings, "TMDB_API_KEY", "")
|
TMDB_KEY = getattr(settings, "TMDB_API_KEY", "")
|
||||||
@ -42,21 +43,29 @@ def lookup_video_from_tmdb(
|
|||||||
media = None
|
media = None
|
||||||
show = None
|
show = None
|
||||||
if len(tmdb_result.movie_results) > 0:
|
if len(tmdb_result.movie_results) > 0:
|
||||||
media = tmdb_result.movie_results[0]
|
media = Movie().details(tmdb_result.movie_results[0].id)
|
||||||
video_metadata.video_type = VideoType.MOVIE.value
|
video_metadata.video_type = VideoType.MOVIE.value
|
||||||
|
video_metadata.title = media.title
|
||||||
video_metadata.cover_url = TMDB_IMAGE_URL + media.poster_path # TODO: enrich this with TMDB url
|
video_metadata.cover_url = TMDB_IMAGE_URL + media.poster_path # TODO: enrich this with TMDB url
|
||||||
|
video_metadata.year = pendulum.parse(media.release_date).year
|
||||||
|
video_metadata.genres = [g.get("name", "") for g in media.genres]
|
||||||
|
|
||||||
if len(tmdb_result.tv_episode_results) > 0:
|
if len(tmdb_result.tv_episode_results) > 0:
|
||||||
video_metadata.video_type = VideoType.TV_EPISODE.value
|
video_metadata.video_type = VideoType.TV_EPISODE.value
|
||||||
media = tmdb_result.tv_episode_results[0]
|
media = tmdb_result.tv_episode_results[0]
|
||||||
series_imdb_id = TV().external_ids(media.show_id).imdb_id[2:]
|
video_metadata.title = media.name
|
||||||
|
video_metadata.cover_url = TMDB_IMAGE_URL + media.still_path # TODO: enrich this with TMDB url
|
||||||
|
video_metadata.episode_number = media.episode_number
|
||||||
|
video_metadata.season_number = media.season_number
|
||||||
|
video_metadata.year = media.air_date.year
|
||||||
|
|
||||||
|
series_imdb_id = TV().external_ids(media.show_id).imdb_id[2:]
|
||||||
series, created = Series.objects.get_or_create(imdb_id=series_imdb_id)
|
series, created = Series.objects.get_or_create(imdb_id=series_imdb_id)
|
||||||
if created:
|
if created:
|
||||||
show_data = TV().details(tv_id=media.show_id)
|
show_data = TV().details(tv_id=media.show_id)
|
||||||
series.name = show_data.name
|
series.name = show_data.name
|
||||||
series.save()
|
series.save()
|
||||||
video_metadata.tv_series_id = series.id
|
video_metadata.tv_series_id = series.id
|
||||||
video_metadata.cover_url = TMDB_IMAGE_URL + media.still_path # TODO: enrich this with TMDB url
|
|
||||||
|
|
||||||
if not media:
|
if not media:
|
||||||
logger.warning("Video not found on TMDB", extra={"imdb_id":imdb_id})
|
logger.warning("Video not found on TMDB", extra={"imdb_id":imdb_id})
|
||||||
@ -64,13 +73,9 @@ def lookup_video_from_tmdb(
|
|||||||
|
|
||||||
video_metadata.tmdb_id = media.id
|
video_metadata.tmdb_id = media.id
|
||||||
video_metadata.run_time_seconds = media.runtime * 60
|
video_metadata.run_time_seconds = media.runtime * 60
|
||||||
video_metadata.title = media.name
|
|
||||||
video_metadata.episode_number = media.episode_number
|
|
||||||
video_metadata.season_number = media.season_number
|
|
||||||
#video_metadata.next_imdb_id = imdb_result.get("next episode", None)
|
|
||||||
video_metadata.year = media.air_date.year
|
|
||||||
video_metadata.plot = media.overview
|
video_metadata.plot = media.overview
|
||||||
video_metadata.imdb_rating = media.vote_average
|
video_metadata.overview = media.overview
|
||||||
#video_metadata.genres = imdb_result.get("genres", [])
|
video_metadata.tmdb_rating = media.vote_average
|
||||||
|
#video_metadata.next_imdb_id = imdb_result.get("next episode", None)
|
||||||
|
|
||||||
return video_metadata
|
return video_metadata
|
||||||
|
|||||||
Reference in New Issue
Block a user