From 6ec371cd9e49eb3acf352e9211f05c3d1de72161 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergey=20M=E2=80=A4?= Date: Sun, 30 Apr 2017 18:11:29 +0700 Subject: [PATCH] [xvideos] Extract og:duration (closes #12828) --- youtube_dl/extractor/xvideos.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/youtube_dl/extractor/xvideos.py b/youtube_dl/extractor/xvideos.py index ce3a05e41..eca603028 100644 --- a/youtube_dl/extractor/xvideos.py +++ b/youtube_dl/extractor/xvideos.py @@ -6,8 +6,9 @@ from ..compat import compat_urllib_parse_unquote from ..utils import ( clean_html, - ExtractorError, determine_ext, + ExtractorError, + int_or_none, parse_duration, ) @@ -21,7 +22,7 @@ class XVideosIE(InfoExtractor): 'id': '4588838', 'ext': 'mp4', 'title': 'Biker Takes his Girl', - 'duration': 120, + 'duration': 108, 'age_limit': 18, } } @@ -38,8 +39,11 @@ def _real_extract(self, url): r'(.*?)\s+-\s+XVID', webpage, 'title') video_thumbnail = self._search_regex( r'url_bigthumb=(.+?)&', webpage, 'thumbnail', fatal=False) - video_duration = parse_duration(self._search_regex( - r'<span class="duration">.*?(\d[^<]+)', webpage, 'duration', fatal=False)) + video_duration = int_or_none(self._og_search_property( + 'duration', webpage, default=None)) or parse_duration( + self._search_regex( + r'<span[^>]+class=["\']duration["\'][^>]*>.*?(\d[^<]+)', + webpage, 'duration', fatal=False)) formats = []