diff options
author | Philipp Hagemeister <phihag@phihag.de> | 2014-09-28 09:31:58 +0200 |
---|---|---|
committer | Philipp Hagemeister <phihag@phihag.de> | 2014-09-28 09:31:58 +0200 |
commit | ed9266db90023500e687aa634b55e11742c2e18c (patch) | |
tree | 362ebeaa9816a909d5ef26d17c9ba79831e38af3 | |
parent | f4b1c7adb81555fde0dff390b48e4139438b4071 (diff) |
[common] Add new helper function _match_id
-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 |