summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/gfycat.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/gfycat.py')
-rw-r--r--gallery_dl/extractor/gfycat.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/gallery_dl/extractor/gfycat.py b/gallery_dl/extractor/gfycat.py
index b4b0e49..ac1bca3 100644
--- a/gallery_dl/extractor/gfycat.py
+++ b/gallery_dl/extractor/gfycat.py
@@ -28,6 +28,9 @@ class GfycatExtractor(Extractor):
def items(self):
metadata = self.metadata()
for gfycat in self.gfycats():
+ if "gfyName" not in gfycat:
+ self.log.warning("Skipping '%s' (malformed)", gfycat["gfyId"])
+ continue
url = self._select_format(gfycat)
gfycat.update(metadata)
yield Message.Directory, gfycat
@@ -118,6 +121,10 @@ class GfycatImageExtractor(GfycatExtractor):
("https://www.gfycat.com/foolishforkedabyssiniancat", {
"pattern": "https://redgifs.com/watch/foolishforkedabyssiniancat",
}),
+ # malformed API response (#902)
+ ("https://gfycat.com/illexcitablehairstreak", {
+ "count": 0,
+ }),
("https://gfycat.com/gifs/detail/UnequaledHastyAnkole"),
("https://gfycat.com/ifr/UnequaledHastyAnkole"),
("https://gfycat.com/ru/UnequaledHastyAnkole"),
@@ -132,6 +139,9 @@ class GfycatImageExtractor(GfycatExtractor):
data = {"_extractor": RedgifsImageExtractor}
yield Message.Queue, url, data
else:
+ if "gfyName" not in gfycat:
+ self.log.warning("Skipping '%s' (malformed)", gfycat["gfyId"])
+ return
url = self._select_format(gfycat)
yield Message.Directory, gfycat
yield Message.Url, url, gfycat