aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-09-28 09:31:58 +0200
committerPhilipp Hagemeister <phihag@phihag.de>2014-09-28 09:31:58 +0200
commited9266db90023500e687aa634b55e11742c2e18c (patch)
tree362ebeaa9816a909d5ef26d17c9ba79831e38af3
parentf4b1c7adb81555fde0dff390b48e4139438b4071 (diff)
[common] Add new helper function _match_id
-rw-r--r--youtube_dl/extractor/abc.py3
-rw-r--r--youtube_dl/extractor/common.py8
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