projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #6428 from dstftw/improve-generic-smil-support
[youtube-dl]
/
youtube_dl
/
extractor
/
twitch.py
diff --git
a/youtube_dl/extractor/twitch.py
b/youtube_dl/extractor/twitch.py
index 948c8ce39e6eb4de1fd4c3746af71f2d8d67a7a7..a2b6a35aa3c89c9ff7c40c5c3385a285abc9a0e5 100644
(file)
--- a/
youtube_dl/extractor/twitch.py
+++ b/
youtube_dl/extractor/twitch.py
@@
-7,12
+7,15
@@
import random
from .common import InfoExtractor
from ..compat import (
from .common import InfoExtractor
from ..compat import (
+ compat_parse_qs,
compat_str,
compat_urllib_parse,
compat_str,
compat_urllib_parse,
+ compat_urllib_parse_urlparse,
compat_urllib_request,
)
from ..utils import (
ExtractorError,
compat_urllib_request,
)
from ..utils import (
ExtractorError,
+ parse_duration,
parse_iso8601,
)
parse_iso8601,
)
@@
-185,7
+188,7
@@
class TwitchVodIE(TwitchItemBaseIE):
_ITEM_SHORTCUT = 'v'
_TEST = {
_ITEM_SHORTCUT = 'v'
_TEST = {
- 'url': 'http://www.twitch.tv/riotgames/v/6528877',
+ 'url': 'http://www.twitch.tv/riotgames/v/6528877
?t=5m10s
',
'info_dict': {
'id': 'v6528877',
'ext': 'mp4',
'info_dict': {
'id': 'v6528877',
'ext': 'mp4',
@@
-197,6
+200,7
@@
class TwitchVodIE(TwitchItemBaseIE):
'uploader': 'Riot Games',
'uploader_id': 'riotgames',
'view_count': int,
'uploader': 'Riot Games',
'uploader_id': 'riotgames',
'view_count': int,
+ 'start_time': 310,
},
'params': {
# m3u8 download
},
'params': {
# m3u8 download
@@
-216,6
+220,12
@@
class TwitchVodIE(TwitchItemBaseIE):
item_id, 'mp4')
self._prefer_source(formats)
info['formats'] = formats
item_id, 'mp4')
self._prefer_source(formats)
info['formats'] = formats
+
+ parsed_url = compat_urllib_parse_urlparse(url)
+ query = compat_parse_qs(parsed_url.query)
+ if 't' in query:
+ info['start_time'] = parse_duration(query['t'][0])
+
return info
return info
@@
-310,9
+320,9
@@
class TwitchBookmarksIE(TwitchPlaylistBaseIE):
class TwitchStreamIE(TwitchBaseIE):
IE_NAME = 'twitch:stream'
class TwitchStreamIE(TwitchBaseIE):
IE_NAME = 'twitch:stream'
- _VALID_URL = r'%s/(?P<id>[^/]+)/?(?:\#.*)?$' % TwitchBaseIE._VALID_URL_BASE
+ _VALID_URL = r'%s/(?P<id>[^/
#?
]+)/?(?:\#.*)?$' % TwitchBaseIE._VALID_URL_BASE
- _TEST
=
{
+ _TEST
S = [
{
'url': 'http://www.twitch.tv/shroomztv',
'info_dict': {
'id': '12772022048',
'url': 'http://www.twitch.tv/shroomztv',
'info_dict': {
'id': '12772022048',
@@
-331,7
+341,10
@@
class TwitchStreamIE(TwitchBaseIE):
# m3u8 download
'skip_download': True,
},
# m3u8 download
'skip_download': True,
},
- }
+ }, {
+ 'url': 'http://www.twitch.tv/miracle_doto#profile-0',
+ 'only_matching': True,
+ }]
def _real_extract(self, url):
channel_id = self._match_id(url)
def _real_extract(self, url):
channel_id = self._match_id(url)