|
@@ -148,14 +148,27 @@ class MotherlessGroupIE(InfoExtractor):
|
|
|
else super(MotherlessGroupIE, cls).suitable(url))
|
|
|
|
|
|
def _extract_entries(self, webpage, base):
|
|
|
- return [
|
|
|
- self.url_result(
|
|
|
- compat_urlparse.urljoin(base, video_path),
|
|
|
- MotherlessIE.ie_key(), video_title=title)
|
|
|
- for video_path, title in orderedSet(re.findall(
|
|
|
- r'href="(/[^"]+)"[^>]+>\s+<img[^>]+alt="[^-]+-\s([^"]+)"',
|
|
|
- webpage))
|
|
|
- ]
|
|
|
+ entries = []
|
|
|
+ for mobj in re.finditer(
|
|
|
+ r'href="(?P<href>/[^"]+)"[^>]*>(?:\s*<img[^>]+alt="[^-]+-\s(?P<title>[^"]+)")?',
|
|
|
+ webpage):
|
|
|
+ video_url = compat_urlparse.urljoin(base, mobj.group('href'))
|
|
|
+ if not MotherlessIE.suitable(video_url):
|
|
|
+ continue
|
|
|
+ video_id = MotherlessIE._match_id(video_url)
|
|
|
+ title = mobj.group('title')
|
|
|
+ entries.append(self.url_result(
|
|
|
+ video_url, ie=MotherlessIE.ie_key(), video_id=video_id,
|
|
|
+ video_title=title))
|
|
|
+ # Alternative fallback
|
|
|
+ if not entries:
|
|
|
+ entries = [
|
|
|
+ self.url_result(
|
|
|
+ compat_urlparse.urljoin(base, '/' + video_id),
|
|
|
+ ie=MotherlessIE.ie_key(), video_id=video_id)
|
|
|
+ for video_id in orderedSet(re.findall(
|
|
|
+ r'data-codename=["\']([A-Z0-9]+)', webpage))]
|
|
|
+ return entries
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
group_id = self._match_id(url)
|