diff --git a/gallery_dl/extractor/gfycat.py b/gallery_dl/extractor/gfycat.py index f878dbd4..a0e4841a 100644 --- a/gallery_dl/extractor/gfycat.py +++ b/gallery_dl/extractor/gfycat.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright 2017-2020 Mike Fährmann +# Copyright 2017-2021 Mike Fährmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -41,8 +41,11 @@ class GfycatExtractor(Extractor): key = fmt + "Url" if key in gfyitem: url = gfyitem[key] + if url.startswith("http:"): + url = "https" + url[4:] gfyitem["extension"] = url.rpartition(".")[2] return url + gfyitem["extension"] = "" return "" def metadata(self): @@ -190,7 +193,11 @@ class GfycatAPI(): while True: data = self._call(endpoint, params) gfycats = data["gfycats"] - yield from gfycats + + for gfycat in gfycats: + if "gfyName" not in gfycat: + gfycat.update(self.gfycat(gfycat["gfyId"])) + yield gfycat if "found" not in data and len(gfycats) < params["count"] or \ not data["gfycats"]: diff --git a/gallery_dl/extractor/redgifs.py b/gallery_dl/extractor/redgifs.py index 0a85be6b..a933aab4 100644 --- a/gallery_dl/extractor/redgifs.py +++ b/gallery_dl/extractor/redgifs.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright 2020 Mike Fährmann +# Copyright 2020-2021 Mike Fährmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -15,7 +15,7 @@ from .. import text class RedgifsExtractor(GfycatExtractor): """Base class for redgifs extractors""" category = "redgifs" - root = "https://www.redgifs.com/" + root = "https://www.redgifs.com" class RedgifsUserExtractor(RedgifsExtractor): @@ -39,8 +39,8 @@ class RedgifsSearchExtractor(RedgifsExtractor): pattern = r"(?:https?://)?(?:www\.)?redgifs\.com/gifs/browse/([^/?#]+)" test = ("https://www.redgifs.com/gifs/browse/jav", { "pattern": r"https://\w+\.(redgifs|gfycat)\.com/[A-Za-z]+\.mp4", - "range": "100-300", - "count": "> 200", + "range": "1-10", + "count": 10, }) def metadata(self): @@ -70,6 +70,6 @@ class RedgifsImageExtractor(RedgifsExtractor): class RedgifsAPI(GfycatAPI): - API_ROOT = "https://napi.redgifs.com/" + API_ROOT = "https://napi.redgifs.com" ACCESS_KEY = ("dBLwVuGn9eq4dtXLs8WSfpjcYFY7bPQe" "AqGPSFgqeW5B9uzj2cMVhF63pTFF4Rg9")