[videos] At least stop IMDB from breaking

This commit is contained in:
2025-06-13 09:15:48 -04:00
parent c0871a3b9e
commit 53a04d064d
2 changed files with 15 additions and 13 deletions

View File

@ -2,7 +2,6 @@ import logging
from typing import Optional from typing import Optional
from uuid import uuid4 from uuid import uuid4
import pendulum
import requests import requests
from django.conf import settings from django.conf import settings
from django.core.files.base import ContentFile from django.core.files.base import ContentFile
@ -21,8 +20,7 @@ from scrobbles.mixins import (
from taggit.managers import TaggableManager from taggit.managers import TaggableManager
from videos.metadata import VideoMetadata from videos.metadata import VideoMetadata
from videos.sources.imdb import lookup_video_from_imdb from videos.sources.imdb import lookup_video_from_imdb
from videos.sources.youtube import lookup_video_from_youtube
from vrobbler.apps.videos.sources.youtube import lookup_video_from_youtube
YOUTUBE_VIDEO_URL = "https://www.youtube.com/watch?v=" YOUTUBE_VIDEO_URL = "https://www.youtube.com/watch?v="
YOUTUBE_CHANNEL_URL = "https://www.youtube.com/channel/" YOUTUBE_CHANNEL_URL = "https://www.youtube.com/channel/"

View File

@ -72,26 +72,30 @@ def lookup_video_from_imdb(
video_metadata.video_type = VideoType.MOVIE.value video_metadata.video_type = VideoType.MOVIE.value
series_name = None series_name = None
if imdb_result.get("kind") == "episode": if imdb_result.get("kind") == "episode":
series_name = imdb_result.get("episode of", None).data.get( try:
"title", None series_name = imdb_result.get("episode of", None).data.get(
) "title", None
series, _ = Series.objects.get_or_create(name=series_name) )
video_metadata.video_type = VideoType.TV_EPISODE.value except IndexError:
video_metadata.tv_series_id = series.id series_name = None
if series_name:
series, _ = Series.objects.get_or_create(name=series_name)
video_metadata.video_type = VideoType.TV_EPISODE.value
video_metadata.tv_series_id = series.id
if imdb_result.get("runtimes"): if imdb_result.get("runtimes"):
video_metadata.run_time_seconds = ( video_metadata.run_time_seconds = (
int(imdb_result.get("runtimes")[0]) * 60 int(imdb_result.get("runtimes")[0]) * 60
) )
video_metadata.imdb_id = name_or_id
video_metadata.title = imdb_result.get("title", "") video_metadata.title = imdb_result.get("title", "")
video_metadata.imdb_id = imdb_result.get("imdbID")
video_metadata.episode_number = imdb_result.get("episode", None) video_metadata.episode_number = imdb_result.get("episode", None)
video_metadata.season_number = imdb_result.get("season", None) video_metadata.season_number = imdb_result.get("season", None)
video_metadata.next_imdb_id = imdb_result.get("next episode", None) video_metadata.next_imdb_id = imdb_result.get("next episode", None)
video_metadata.year = imdb_result.get("year", None) video_metadata.year = imdb_result.get("year", None)
video_metadata.plot = imdb_result.get("plot outline") video_metadata.plot = imdb_result.get("plot outline", "")
video_metadata.imdb_rating = imdb_result.get("rating") video_metadata.imdb_rating = imdb_result.get("rating", None)
video_metadata.genres = imdb_result.get("genres") video_metadata.genres = imdb_result.get("genres", [])
return video_metadata return video_metadata