diff options
| -rw-r--r-- | youtube_dl/extractor/common.py | 2 | ||||
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 10 | 
2 files changed, 9 insertions, 3 deletions
| diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 9e8751877..1272834c5 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -185,6 +185,8 @@ class InfoExtractor(object):                      live stream that goes on instead of a fixed-length video.      start_time:     Time in seconds where the reproduction should start, as                      specified in the url. +    end_time:       Time in seconds where the reproduction should end, as +                    specified in the url.      Unless mentioned otherwise, the fields should be Unicode strings. diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index afbd34f4a..117ef2e77 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -319,7 +319,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):      IE_NAME = 'youtube'      _TESTS = [          { -            'url': 'http://www.youtube.com/watch?v=BaW_jenozKcj&t=1s', +            'url': 'http://www.youtube.com/watch?v=BaW_jenozKcj&t=1s&end=9',              'info_dict': {                  'id': 'BaW_jenozKc',                  'ext': 'mp4', @@ -332,6 +332,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):                  'like_count': int,                  'dislike_count': int,                  'start_time': 1, +                'end_time': 9,              }          },          { @@ -893,12 +894,14 @@ class YoutubeIE(YoutubeBaseInfoExtractor):              else 'https')          start_time = None +        end_time = None          parsed_url = compat_urllib_parse_urlparse(url)          for component in [parsed_url.fragment, parsed_url.query]:              query = compat_parse_qs(component) -            if 't' in query: +            if start_time is None and 't' in query:                  start_time = parse_duration(query['t'][0]) -                break +            if end_time is None and 'end' in query: +                end_time = parse_duration(query['end'][0])          # Extract original video URL from URL with redirection, like age verification, using next_url parameter          mobj = re.search(self._NEXT_URL_RE, url) @@ -1267,6 +1270,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):              'formats': formats,              'is_live': is_live,              'start_time': start_time, +            'end_time': end_time,          } | 
