From 7defb24e1ea1e73260f1e78e7b3d10916d168493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Mon, 28 Aug 2023 18:05:31 +0200 Subject: [PATCH] [reddit] provide video previews if available (#4322) --- gallery_dl/extractor/reddit.py | 10 ++++++++++ gallery_dl/job.py | 2 ++ 2 files changed, 12 insertions(+) diff --git a/gallery_dl/extractor/reddit.py b/gallery_dl/extractor/reddit.py index 39e98ba5..36708f1a 100644 --- a/gallery_dl/extractor/reddit.py +++ b/gallery_dl/extractor/reddit.py @@ -173,6 +173,16 @@ class RedditExtractor(Extractor): return submission["url"] def _previews(self, post): + try: + if "reddit_video_preview" in post["preview"]: + video = post["preview"]["reddit_video_preview"] + if "dash_url" in video: + yield "ytdl:" + video["dash_url"] + if "hls_url" in video: + yield "ytdl:" + video["hls_url"] + except Exception as exc: + self.log.debug("%s: %s", exc.__class__.__name__, exc) + try: for image in post["preview"]["images"]: yield image["source"]["url"] diff --git a/gallery_dl/job.py b/gallery_dl/job.py index 5adb030c..e651d975 100644 --- a/gallery_dl/job.py +++ b/gallery_dl/job.py @@ -404,6 +404,8 @@ class DownloadJob(Job): pass else: text.nameext_from_url(url, kwdict) + if url.startswith("ytdl:"): + kwdict["extension"] = "" self.handle_url(url, kwdict) break except exception.RestartExtraction: