|
@ -559,7 +559,8 @@ class TwitchStreamIE(TwitchBaseIE): |
|
|
TwitchAllVideosIE, |
|
|
TwitchAllVideosIE, |
|
|
TwitchUploadsIE, |
|
|
TwitchUploadsIE, |
|
|
TwitchPastBroadcastsIE, |
|
|
TwitchPastBroadcastsIE, |
|
|
TwitchHighlightsIE)) |
|
|
|
|
|
|
|
|
TwitchHighlightsIE, |
|
|
|
|
|
TwitchClipsIE)) |
|
|
else super(TwitchStreamIE, cls).suitable(url)) |
|
|
else super(TwitchStreamIE, cls).suitable(url)) |
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
def _real_extract(self, url): |
|
@ -633,7 +634,7 @@ class TwitchStreamIE(TwitchBaseIE): |
|
|
|
|
|
|
|
|
class TwitchClipsIE(TwitchBaseIE): |
|
|
class TwitchClipsIE(TwitchBaseIE): |
|
|
IE_NAME = 'twitch:clips' |
|
|
IE_NAME = 'twitch:clips' |
|
|
_VALID_URL = r'https?://clips\.twitch\.tv/(?:[^/]+/)*(?P<id>[^/?#&]+)' |
|
|
|
|
|
|
|
|
_VALID_URL = r'https?://(?:clips\.twitch\.tv/(?:[^/]+/)*|(?:www\.)?twitch\.tv/[^/]+/clip/)(?P<id>[^/?#&]+)' |
|
|
|
|
|
|
|
|
_TESTS = [{ |
|
|
_TESTS = [{ |
|
|
'url': 'https://clips.twitch.tv/FaintLightGullWholeWheat', |
|
|
'url': 'https://clips.twitch.tv/FaintLightGullWholeWheat', |
|
@ -653,6 +654,9 @@ class TwitchClipsIE(TwitchBaseIE): |
|
|
# multiple formats |
|
|
# multiple formats |
|
|
'url': 'https://clips.twitch.tv/rflegendary/UninterestedBeeDAESuppy', |
|
|
'url': 'https://clips.twitch.tv/rflegendary/UninterestedBeeDAESuppy', |
|
|
'only_matching': True, |
|
|
'only_matching': True, |
|
|
|
|
|
}, { |
|
|
|
|
|
'url': 'https://www.twitch.tv/sergeynixon/clip/StormyThankfulSproutFutureMan', |
|
|
|
|
|
'only_matching': True, |
|
|
}] |
|
|
}] |
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
def _real_extract(self, url): |
|
|