]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/xhamster.py
Update to ytdl-commit-2dd6c6e
[yt-dlp.git] / yt_dlp / extractor / xhamster.py
index e42eed7d8e28bb3a4878d07c13df0c850b353358..7af6c8f03702ebbc77bd48a51eed343e689cf430 100644 (file)
@@ -21,7 +21,7 @@
 
 
 class XHamsterIE(InfoExtractor):
-    _DOMAINS = r'(?:xhamster\.(?:com|one|desi)|xhms\.pro|xhamster\d+\.com|xhday\.com)'
+    _DOMAINS = r'(?:xhamster\.(?:com|one|desi)|xhms\.pro|xhamster\d+\.com|xhday\.com|xhvid\.com)'
     _VALID_URL = r'''(?x)
                     https?://
                         (?:.+?\.)?%s/
@@ -120,6 +120,9 @@ class XHamsterIE(InfoExtractor):
     }, {
         'url': 'https://xhday.com/videos/strapless-threesome-xhh7yVf',
         'only_matching': True,
+    }, {
+        'url': 'https://xhvid.com/videos/lk-mm-xhc6wn6',
+        'only_matching': True,
     }]
 
     def _real_extract(self, url):
@@ -234,7 +237,6 @@ def get_height(s):
                                         'Referer': standard_url,
                                     },
                                 })
-            self._sort_formats(formats)
 
             categories_list = video.get('categories')
             if isinstance(categories_list, list):
@@ -311,8 +313,6 @@ def get_height(s):
                 'url': video_url,
             })
 
-        self._sort_formats(formats)
-
         # Only a few videos have an description
         mobj = re.search(r'<span>Description: </span>([^<]+)', webpage)
         description = mobj.group(1) if mobj else None
@@ -373,6 +373,7 @@ def get_height(s):
 
 class XHamsterEmbedIE(InfoExtractor):
     _VALID_URL = r'https?://(?:.+?\.)?%s/xembed\.php\?video=(?P<id>\d+)' % XHamsterIE._DOMAINS
+    _EMBED_REGEX = [r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?xhamster\.com/xembed\.php\?video=\d+)\1']
     _TEST = {
         'url': 'http://xhamster.com/xembed.php?video=3328539',
         'info_dict': {
@@ -387,12 +388,6 @@ class XHamsterEmbedIE(InfoExtractor):
         }
     }
 
-    @staticmethod
-    def _extract_urls(webpage):
-        return [url for _, url in re.findall(
-            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?xhamster\.com/xembed\.php\?video=\d+)\1',
-            webpage)]
-
     def _real_extract(self, url):
         video_id = self._match_id(url)
 
@@ -430,6 +425,9 @@ class XHamsterUserIE(InfoExtractor):
     }, {
         'url': 'https://xhday.com/users/mobhunter',
         'only_matching': True,
+    }, {
+        'url': 'https://xhvid.com/users/pelushe21',
+        'only_matching': True,
     }]
 
     def _entries(self, user_id):