aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-11-16 14:55:22 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2014-11-16 14:55:22 +0100
commit6a68bb574acaf4df3f3f01d3330498cad5101773 (patch)
tree70f89403f1134548ec187dbce123a781aff3e2c3
parent0cf166ad4fe7e26dcb2d07feb2339da3276fa81f (diff)
downloadyoutube-dl-6a68bb574acaf4df3f3f01d3330498cad5101773.tar.xz
[eporner] Fix duration (Closes #4188)
-rw-r--r--test/test_utils.py1
-rw-r--r--youtube_dl/extractor/eporner.py6
-rw-r--r--youtube_dl/utils.py7
3 files changed, 9 insertions, 5 deletions
diff --git a/test/test_utils.py b/test/test_utils.py
index edd95c3e3..0fa873147 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -218,6 +218,7 @@ class TestUtil(unittest.TestCase):
self.assertEqual(parse_duration('0m0s'), 0)
self.assertEqual(parse_duration('0s'), 0)
self.assertEqual(parse_duration('01:02:03.05'), 3723.05)
+ self.assertEqual(parse_duration('T30M38S'), 1838)
def test_fix_xml_ampersands(self):
self.assertEqual(
diff --git a/youtube_dl/extractor/eporner.py b/youtube_dl/extractor/eporner.py
index bb231ecb1..4de8d4bc5 100644
--- a/youtube_dl/extractor/eporner.py
+++ b/youtube_dl/extractor/eporner.py
@@ -20,7 +20,7 @@ class EpornerIE(InfoExtractor):
'display_id': 'Infamous-Tiffany-Teen-Strip-Tease-Video',
'ext': 'mp4',
'title': 'Infamous Tiffany Teen Strip Tease Video',
- 'duration': 194,
+ 'duration': 1838,
'view_count': int,
'age_limit': 18,
}
@@ -57,9 +57,7 @@ class EpornerIE(InfoExtractor):
formats.append(fmt)
self._sort_formats(formats)
- duration = parse_duration(self._search_regex(
- r'class="mbtim">([0-9:]+)</div>', webpage, 'duration',
- fatal=False))
+ duration = parse_duration(self._html_search_meta('duration', webpage))
view_count = str_to_int(self._search_regex(
r'id="cinemaviews">\s*([0-9,]+)\s*<small>views',
webpage, 'view count', fatal=False))
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 67be4a9ae..58897231d 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -1115,7 +1115,12 @@ def parse_duration(s):
s = s.strip()
m = re.match(
- r'(?i)(?:(?:(?P<hours>[0-9]+)\s*(?:[:h]|hours?)\s*)?(?P<mins>[0-9]+)\s*(?:[:m]|mins?|minutes?)\s*)?(?P<secs>[0-9]+)(?P<ms>\.[0-9]+)?\s*(?:s|secs?|seconds?)?$', s)
+ r'''(?ix)T?
+ (?:
+ (?:(?P<hours>[0-9]+)\s*(?:[:h]|hours?)\s*)?
+ (?P<mins>[0-9]+)\s*(?:[:m]|mins?|minutes?)\s*
+ )?
+ (?P<secs>[0-9]+)(?P<ms>\.[0-9]+)?\s*(?:s|secs?|seconds?)?$''', s)
if not m:
return None
res = int(m.group('secs'))