diff options
| -rw-r--r-- | youtube_dl/extractor/generic.py | 16 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 1 | 
2 files changed, 13 insertions, 4 deletions
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index c1792c534..489b3c7c1 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -2332,12 +2332,23 @@ class GenericIE(InfoExtractor):              info_dict.update(json_ld)              return info_dict +        # Look for HTML5 media +        entries = self._parse_html5_media_entries(url, webpage, video_id, m3u8_id='hls') +        if entries: +            for entry in entries: +                entry.update({ +                    'id': video_id, +                    'title': video_title, +                }) +                self._sort_formats(entry['formats']) +            return self.playlist_result(entries) +          def check_video(vurl):              if YoutubeIE.suitable(vurl):                  return True              vpath = compat_urlparse.urlparse(vurl).path              vext = determine_ext(vpath) -            return '.' in vpath and vext not in ('swf', 'png', 'jpg', 'srt', 'sbv', 'sub', 'vtt', 'ttml') +            return '.' in vpath and vext not in ('swf', 'png', 'jpg', 'srt', 'sbv', 'sub', 'vtt', 'ttml', 'js')          def filter_video(urls):              return list(filter(check_video, urls)) @@ -2388,9 +2399,6 @@ class GenericIE(InfoExtractor):              if m_video_type is not None:                  found = filter_video(re.findall(r'<meta.*?property="og:video".*?content="(.*?)"', webpage))          if not found: -            # HTML5 video -            found = re.findall(r'(?s)<(?:video|audio)[^<]*(?:>.*?<source[^>]*)?\s+src=["\'](.*?)["\']', webpage) -        if not found:              REDIRECT_REGEX = r'[0-9]{,2};\s*(?:URL|url)=\'?([^\'"]+)'              found = re.search(                  r'(?i)<meta\s+(?=(?:[a-z-]+="[^"]+"\s+)*http-equiv="refresh")' diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index c259f8bff..044520037 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -782,6 +782,7 @@ class XAttrMetadataError(Exception):      def __init__(self, code=None, msg='Unknown error'):          super(XAttrMetadataError, self).__init__(msg)          self.code = code +        self.msg = msg          # Parsing code and msg          if (self.code in (errno.ENOSPC, errno.EDQUOT) or  | 
