diff options
| -rw-r--r-- | youtube_dl/extractor/abc.py | 3 | ||||
| -rw-r--r-- | youtube_dl/extractor/common.py | 8 | 
2 files changed, 9 insertions, 2 deletions
diff --git a/youtube_dl/extractor/abc.py b/youtube_dl/extractor/abc.py index 7d89f44ee..69f89320c 100644 --- a/youtube_dl/extractor/abc.py +++ b/youtube_dl/extractor/abc.py @@ -22,8 +22,7 @@ class ABCIE(InfoExtractor):      }      def _real_extract(self, url): -        mobj = re.match(self._VALID_URL, url) -        video_id = mobj.group('id') +        video_id = self._match_id(url)          webpage = self._download_webpage(url, video_id)          urls_info_json = self._search_regex( diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 403791e6b..8d6a6f601 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -166,6 +166,14 @@ class InfoExtractor(object):          return cls._VALID_URL_RE.match(url) is not None      @classmethod +    def _match_id(cls, url): +        if '_VALID_URL_RE' not in cls.__dict__: +            cls._VALID_URL_RE = re.compile(cls._VALID_URL) +        m = cls._VALID_URL_RE.match(url) +        assert m +        return m.group('id') + +    @classmethod      def working(cls):          """Getter method for _WORKING."""          return cls._WORKING  | 
