]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/rule34video.py
[ie/mlbtv] Fix extraction (#10296)
[yt-dlp.git] / yt_dlp / extractor / rule34video.py
index e6bb4258e983237ab118570185c6e47191a52ad0..3630f5e40cf99838e9f5be046e2100abefd2cf9a 100644 (file)
@@ -9,7 +9,6 @@
     get_element_html_by_class,
     get_elements_by_class,
     int_or_none,
-    join_nonempty,
     parse_count,
     parse_duration,
     unescapeHTML,
 
 
 class Rule34VideoIE(InfoExtractor):
-    _VALID_URL = r'https?://(?:www\.)?rule34video\.com/videos/(?P<id>\d+)'
+    _VALID_URL = r'https?://(?:www\.)?rule34video\.com/videos?/(?P<id>\d+)'
     _TESTS = [
         {
-            'url': 'https://rule34video.com/videos/3065157/shot-it-mmd-hmv/',
+            'url': 'https://rule34video.com/video/3065157/shot-it-mmd-hmv/',
             'md5': 'ffccac2c23799dabbd192621ae4d04f3',
             'info_dict': {
                 'id': '3065157',
@@ -39,8 +38,8 @@ class Rule34VideoIE(InfoExtractor):
                 'uploader': 'Sweet HMV',
                 'uploader_url': 'https://rule34video.com/members/22119/',
                 'categories': ['3D', 'MMD', 'iwara'],
-                'tags': 'mincount:10'
-            }
+                'tags': 'mincount:10',
+            },
         },
         {
             'url': 'https://rule34video.com/videos/3065296/lara-in-trouble-ep-7-wildeerstudio/',
@@ -57,13 +56,13 @@ class Rule34VideoIE(InfoExtractor):
                 'comment_count': int,
                 'timestamp': 1640131200,
                 'description': '',
-                'creator': 'WildeerStudio',
+                'creators': ['WildeerStudio'],
                 'upload_date': '20211222',
                 'uploader': 'CerZule',
                 'uploader_url': 'https://rule34video.com/members/36281/',
                 'categories': ['3D', 'Tomb Raider'],
-                'tags': 'mincount:40'
-            }
+                'tags': 'mincount:40',
+            },
         },
     ]
 
@@ -81,13 +80,13 @@ def _real_extract(self, url):
                 'quality': quality,
             })
 
-        categories, creator, uploader, uploader_url = [None] * 4
+        categories, creators, uploader, uploader_url = [None] * 4
         for col in get_elements_by_class('col', webpage):
             label = clean_html(get_element_by_class('label', col))
             if label == 'Categories:':
                 categories = list(map(clean_html, get_elements_by_class('item', col)))
             elif label == 'Artist:':
-                creator = join_nonempty(*map(clean_html, get_elements_by_class('item', col)), delim=', ')
+                creators = list(map(clean_html, get_elements_by_class('item', col)))
             elif label == 'Uploaded By:':
                 uploader = clean_html(get_element_by_class('name', col))
                 uploader_url = extract_attributes(get_element_html_by_class('name', col) or '').get('href')
@@ -115,7 +114,7 @@ def _real_extract(self, url):
             'comment_count': int_or_none(self._search_regex(
                 r'[^(]+\((\d+)\)', get_element_by_attribute('href', '#tab_comments', webpage), 'comment count', fatal=False)),
             'age_limit': 18,
-            'creator': creator,
+            'creators': creators,
             'uploader': uploader,
             'uploader_url': uploader_url,
             'categories': categories,