|
|
@ -643,7 +643,14 @@ class TwitchStreamIE(TwitchBaseIE): |
|
|
|
|
|
|
|
class TwitchClipsIE(TwitchBaseIE): |
|
|
|
IE_NAME = 'twitch:clips' |
|
|
|
_VALID_URL = r'https?://(?:clips\.twitch\.tv/(?:embed\?.*?\bclip=|(?:[^/]+/)*)|(?:www\.)?twitch\.tv/[^/]+/clip/)(?P<id>[^/?#&]+)' |
|
|
|
_VALID_URL = r'''(?x) |
|
|
|
https?:// |
|
|
|
(?: |
|
|
|
clips\.twitch\.tv/(?:embed\?.*?\bclip=|(?:[^/]+/)*)| |
|
|
|
(?:(?:www|go|m)\.)?twitch\.tv/[^/]+/clip/ |
|
|
|
) |
|
|
|
(?P<id>[^/?#&]+) |
|
|
|
''' |
|
|
|
|
|
|
|
_TESTS = [{ |
|
|
|
'url': 'https://clips.twitch.tv/FaintLightGullWholeWheat', |
|
|
@ -669,6 +676,12 @@ class TwitchClipsIE(TwitchBaseIE): |
|
|
|
}, { |
|
|
|
'url': 'https://clips.twitch.tv/embed?clip=InquisitiveBreakableYogurtJebaited', |
|
|
|
'only_matching': True, |
|
|
|
}, { |
|
|
|
'url': 'https://m.twitch.tv/rossbroadcast/clip/ConfidentBraveHumanChefFrank', |
|
|
|
'only_matching': True, |
|
|
|
}, { |
|
|
|
'url': 'https://go.twitch.tv/rossbroadcast/clip/ConfidentBraveHumanChefFrank', |
|
|
|
'only_matching': True, |
|
|
|
}] |
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
|