Extract media thumbnail automatically from YouTube

master
Felix Stupp 2 years ago
parent dfee06106f
commit f0af32c099
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -9,6 +9,8 @@ from youtubesearchpython import ResultMode, Video
from ...models import (
MediaElement,
MediaThumbnail,
thumbnail_sort_key,
)
from ..generic import (
AuthorExtractedData,
@ -99,6 +101,12 @@ class YoutubeMediaExtractor(MediaExtractor[YoutubeVideoData]):
def _update_object_raw(self, object: MediaElement, data: YoutubeVideoData):
object.title = f"{data['title']} - {data['channel']['name']}"
if data.get("thumbnails"):
best_thumb = min(
data["thumbnails"],
key=lambda thumb: thumbnail_sort_key(thumb["width"], thumb["height"]),
)
object.thumbnail = MediaThumbnail.from_uri(best_thumb["url"])
object.release_date = datetime.strptime(
data.get("uploadDate") or data["publishDate"], "%Y-%m-%d"
)

Loading…
Cancel
Save