summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/reddit.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/reddit.py')
-rw-r--r--gallery_dl/extractor/reddit.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/gallery_dl/extractor/reddit.py b/gallery_dl/extractor/reddit.py
index 0be7f17..273ac05 100644
--- a/gallery_dl/extractor/reddit.py
+++ b/gallery_dl/extractor/reddit.py
@@ -118,18 +118,25 @@ class RedditExtractor(Extractor):
def _extract_gallery(self, submission):
if submission["gallery_data"] is None:
- self.log.warning("gallery '%s' was deleted", submission["id"])
+ self.log.warning("gallery %s: deleted", submission["id"])
return
meta = submission["media_metadata"]
for item in submission["gallery_data"]["items"]:
- src = meta[item["media_id"]]["s"]
+ data = meta[item["media_id"]]
+ if data["status"] != "valid" or "s" not in data:
+ self.log.warning(
+ "gallery %s: skipping item %s ('status: %s')",
+ submission["id"], item["media_id"], data.get("status"))
+ continue
+ src = data["s"]
url = src.get("u") or src.get("gif") or src.get("mp4")
if url:
yield url.partition("?")[0].replace("/preview.", "/i.", 1)
else:
- self.log.error("Unable to get download URL for item '%s'",
- item["media_id"])
+ self.log.error(
+ "gallery %s: unable to fetch download URL for item %s",
+ submission["id"], item["media_id"])
self.log.debug(src)
@@ -211,6 +218,10 @@ class RedditSubmissionExtractor(RedditExtractor):
"pattern": r"https://i\.redd\.it/\w+\.gif",
"count": 2,
}),
+ # "failed" gallery item (#1127)
+ ("https://www.reddit.com/r/cosplay/comments/jvwaqr", {
+ "count": 1,
+ }),
("https://old.reddit.com/r/lavaporn/comments/2a00np/"),
("https://np.reddit.com/r/lavaporn/comments/2a00np/"),
("https://m.reddit.com/r/lavaporn/comments/2a00np/"),