1
0
mirror of https://github.com/l1ving/youtube-dl synced 2024-12-31 02:52:51 +08:00

[youtube] Extract end_time

This commit is contained in:
Jaime Marquínez Ferrándiz 2015-07-23 13:20:21 +02:00
parent 7c80519cbf
commit 297a564bee
2 changed files with 9 additions and 3 deletions

View File

@ -185,6 +185,8 @@ class InfoExtractor(object):
live stream that goes on instead of a fixed-length video. live stream that goes on instead of a fixed-length video.
start_time: Time in seconds where the reproduction should start, as start_time: Time in seconds where the reproduction should start, as
specified in the url. 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. Unless mentioned otherwise, the fields should be Unicode strings.

View File

@ -319,7 +319,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
IE_NAME = 'youtube' IE_NAME = 'youtube'
_TESTS = [ _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': { 'info_dict': {
'id': 'BaW_jenozKc', 'id': 'BaW_jenozKc',
'ext': 'mp4', 'ext': 'mp4',
@ -332,6 +332,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
'like_count': int, 'like_count': int,
'dislike_count': int, 'dislike_count': int,
'start_time': 1, 'start_time': 1,
'end_time': 9,
} }
}, },
{ {
@ -893,12 +894,14 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
else 'https') else 'https')
start_time = None start_time = None
end_time = None
parsed_url = compat_urllib_parse_urlparse(url) parsed_url = compat_urllib_parse_urlparse(url)
for component in [parsed_url.fragment, parsed_url.query]: for component in [parsed_url.fragment, parsed_url.query]:
query = compat_parse_qs(component) 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]) 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 # Extract original video URL from URL with redirection, like age verification, using next_url parameter
mobj = re.search(self._NEXT_URL_RE, url) mobj = re.search(self._NEXT_URL_RE, url)
@ -1267,6 +1270,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
'formats': formats, 'formats': formats,
'is_live': is_live, 'is_live': is_live,
'start_time': start_time, 'start_time': start_time,
'end_time': end_time,
} }