diff options
| -rw-r--r-- | youtube_dl/extractor/common.py | 7 | ||||
| -rw-r--r-- | youtube_dl/extractor/xtube.py | 2 | ||||
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 4 | 
3 files changed, 8 insertions, 5 deletions
| diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 1fc0624a3..939249d7b 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -18,6 +18,7 @@ from ..utils import (      sanitize_filename,      unescapeHTML,  ) +_NO_DEFAULT = object()  class InfoExtractor(object): @@ -281,7 +282,7 @@ class InfoExtractor(object):              video_info['title'] = playlist_title          return video_info -    def _search_regex(self, pattern, string, name, default=None, fatal=True, flags=0): +    def _search_regex(self, pattern, string, name, default=_NO_DEFAULT, fatal=True, flags=0):          """          Perform a regex search on the given string, using a single or a list of          patterns returning the first matching group. @@ -303,7 +304,7 @@ class InfoExtractor(object):          if mobj:              # return the first matching group              return next(g for g in mobj.groups() if g is not None) -        elif default is not None: +        elif default is not _NO_DEFAULT:              return default          elif fatal:              raise RegexNotFoundError(u'Unable to extract %s' % _name) @@ -312,7 +313,7 @@ class InfoExtractor(object):                  u'please report this issue on http://yt-dl.org/bug' % _name)              return None -    def _html_search_regex(self, pattern, string, name, default=None, fatal=True, flags=0): +    def _html_search_regex(self, pattern, string, name, default=_NO_DEFAULT, fatal=True, flags=0):          """          Like _search_regex, but strips HTML tags and unescapes entities.          """ diff --git a/youtube_dl/extractor/xtube.py b/youtube_dl/extractor/xtube.py index e3458d2bd..1a6a7688d 100644 --- a/youtube_dl/extractor/xtube.py +++ b/youtube_dl/extractor/xtube.py @@ -32,7 +32,7 @@ class XTubeIE(InfoExtractor):          video_title = self._html_search_regex(r'<div class="p_5px[^>]*>([^<]+)', webpage, u'title')          video_uploader = self._html_search_regex(r'so_s\.addVariable\("owner_u", "([^"]+)', webpage, u'uploader', fatal=False) -        video_description = self._html_search_regex(r'<p class="video_description">([^<]+)', webpage, u'description', default=None) +        video_description = self._html_search_regex(r'<p class="video_description">([^<]+)', webpage, u'description', fatal=False)          video_url= self._html_search_regex(r'var videoMp4 = "([^"]+)', webpage, u'video_url').replace('\\/', '/')          path = compat_urllib_parse_urlparse(video_url).path          extension = os.path.splitext(path)[1][1:] diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index a68a214ca..c860eedda 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1361,7 +1361,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):                  video_description = u''          def _extract_count(klass): -            count = self._search_regex(r'class="%s">([\d,]+)</span>' % re.escape(klass), video_webpage, klass, fatal=False) +            count = self._search_regex( +                r'class="%s">([\d,]+)</span>' % re.escape(klass), +                video_webpage, klass, default=None)              if count is not None:                  return int(count.replace(',', ''))              return None | 
