Browse Source

[videos] Add check if youtube fails

Colin Powell 5 months ago
parent
commit
a36efa3b1d
1 changed files with 11 additions and 4 deletions
  1. 11 4
      vrobbler/apps/videos/sources/youtube.py

+ 11 - 4
vrobbler/apps/videos/sources/youtube.py

@@ -1,6 +1,9 @@
 import pendulum
 from meta_yt import Video, YouTube
 from videos.metadata import VideoMetadata, VideoType
+import logging
+
+logger = logging.getLogger(__name__)
 
 YOUTUBE_VIDEO_URL = "https://www.youtube.com/watch?v="
 YOUTUBE_CHANNEL_URL = "https://www.youtube.com/channel/"
@@ -9,12 +12,16 @@ YOUTUBE_CHANNEL_URL = "https://www.youtube.com/channel/"
 def lookup_video_from_youtube(youtube_id: str) -> VideoMetadata:
     from videos.models import Channel
 
-    yt_metadata: Optional[Video] = YouTube(
-        YOUTUBE_VIDEO_URL + youtube_id
-    ).video
+    video_metadata = VideoMetadata(youtube_id=youtube_id)
+    try:
+        yt_metadata: Optional[Video] = YouTube(
+            YOUTUBE_VIDEO_URL + youtube_id
+        ).video
+    except KeyError:
+        logger.warning("Cannot access youtube, probably thinks you're a bot")
+        return video_metadata
 
     if yt_metadata:
-        video_metadata = VideoMetadata(youtube_id=youtube_id)
 
         if yt_metadata.channel:
             channel, _created = Channel.objects.get_or_create(