diff --git a/bulkredditdownloader/site_downloaders/gfycat.py b/bulkredditdownloader/site_downloaders/gfycat.py index 8eaf03b..a5051ca 100644 --- a/bulkredditdownloader/site_downloaders/gfycat.py +++ b/bulkredditdownloader/site_downloaders/gfycat.py @@ -28,7 +28,12 @@ class Gfycat(GifDeliveryNetwork): gfycat_id = re.match(r'.*/(.*?)/?$', url).group(1) url = 'https://gfycat.com/' + gfycat_id - page_source = requests.get(url).text + response = requests.get(url) + page_source = response.text + + if 'gifdeliverynetwork' in response.url: + return GifDeliveryNetwork._get_link(url) + soup = BeautifulSoup(page_source, 'html.parser') content = soup.find('script', attrs={'data-react-helmet': 'true', 'type': 'application/ld+json'}) diff --git a/bulkredditdownloader/tests/downloaders/test_gfycat.py b/bulkredditdownloader/tests/downloaders/test_gfycat.py index cca2f4a..a1b2a6d 100644 --- a/bulkredditdownloader/tests/downloaders/test_gfycat.py +++ b/bulkredditdownloader/tests/downloaders/test_gfycat.py @@ -13,6 +13,7 @@ from bulkredditdownloader.site_downloaders.gfycat import Gfycat @pytest.mark.parametrize(('test_url', 'expected_url'), ( ('https://gfycat.com/definitivecaninecrayfish', 'https://giant.gfycat.com/DefinitiveCanineCrayfish.mp4'), ('https://gfycat.com/dazzlingsilkyiguana', 'https://giant.gfycat.com/DazzlingSilkyIguana.mp4'), + ('https://gfycat.com/webbedimpurebutterfly', 'https://thumbs2.redgifs.com/WebbedImpureButterfly.mp4'), )) def test_get_link(test_url: str, expected_url: str): result = Gfycat._get_link(test_url)