aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/extractor/gfycat.py
diff options
context:
space:
mode:
authorcoletdjnz <colethedj@protonmail.com>2022-01-05 08:39:24 +0000
committerGitHub <noreply@github.com>2022-01-05 14:09:24 +0530
commit9f517bb1f3f7462ae91624132f98125525d2cea9 (patch)
tree3ec140faf134bb6cf42f3f7be964e61d019b7596 /yt_dlp/extractor/gfycat.py
parentb8eeced286310ced12f5a8b743d974eb67847ab5 (diff)
downloadhypervideo-pre-9f517bb1f3f7462ae91624132f98125525d2cea9.tar.lz
hypervideo-pre-9f517bb1f3f7462ae91624132f98125525d2cea9.tar.xz
hypervideo-pre-9f517bb1f3f7462ae91624132f98125525d2cea9.zip
[gfycat] Support embeds (#2229)
Closes #2214 Authored by: coletdjnz
Diffstat (limited to 'yt_dlp/extractor/gfycat.py')
-rw-r--r--yt_dlp/extractor/gfycat.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/yt_dlp/extractor/gfycat.py b/yt_dlp/extractor/gfycat.py
index 56a6dc03d..2ad03e2b2 100644
--- a/yt_dlp/extractor/gfycat.py
+++ b/yt_dlp/extractor/gfycat.py
@@ -1,6 +1,8 @@
# coding: utf-8
from __future__ import unicode_literals
+import re
+
from .common import InfoExtractor
from ..utils import (
int_or_none,
@@ -11,7 +13,7 @@ from ..utils import (
class GfycatIE(InfoExtractor):
- _VALID_URL = r'https?://(?:(?:www|giant|thumbs)\.)?gfycat\.com/(?:ru/|ifr/|gifs/detail/)?(?P<id>[^-/?#\.]+)'
+ _VALID_URL = r'(?i)https?://(?:(?:www|giant|thumbs)\.)?gfycat\.com/(?:ru/|ifr/|gifs/detail/)?(?P<id>[^-/?#\."\']+)'
_TESTS = [{
'url': 'http://gfycat.com/DeadlyDecisiveGermanpinscher',
'info_dict': {
@@ -78,8 +80,19 @@ class GfycatIE(InfoExtractor):
}, {
'url': 'https://giant.gfycat.com/acceptablehappygoluckyharborporpoise.mp4',
'only_matching': True
+ }, {
+ 'url': 'http://gfycat.com/IFR/JauntyTimelyAmazontreeboa',
+ 'only_matching': True
}]
+ @staticmethod
+ def _extract_urls(webpage):
+ return [
+ mobj.group('url')
+ for mobj in re.finditer(
+ r'<(?:iframe|source)[^>]+\bsrc=["\'](?P<url>%s)' % GfycatIE._VALID_URL,
+ webpage)]
+
def _real_extract(self, url):
video_id = self._match_id(url)