From 27895ec658e109c05d5dce9efad4e6b48025e96b Mon Sep 17 00:00:00 2001 From: Will Beaufoy Date: Sun, 26 Apr 2020 14:07:50 +0100 Subject: [PATCH] [twitch] Handle new /videos URLs (closes #24263) Twitch URLs on the path /videos have changed e.g. from /videos/highlights to /videos?filter=highlights. I have added support for the new URLs. The old URLs now redirect to the base videos page, so I have removed support for them. --- youtube_dl/extractor/twitch.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/youtube_dl/extractor/twitch.py b/youtube_dl/extractor/twitch.py index 78ee0115c..7d22a659e 100644 --- a/youtube_dl/extractor/twitch.py +++ b/youtube_dl/extractor/twitch.py @@ -438,76 +438,76 @@ class TwitchVideosBaseIE(TwitchPlaylistBaseIE): class TwitchAllVideosIE(TwitchVideosBaseIE): IE_NAME = 'twitch:videos:all' - _VALID_URL = r'%s/all' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE + _VALID_URL = r'%s\?filter=all' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE _PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'archive,upload,highlight' _PLAYLIST_TYPE = 'all videos' _TESTS = [{ - 'url': 'https://www.twitch.tv/spamfish/videos/all', + 'url': 'https://www.twitch.tv/spamfish/videos?filter=all&sort=time', 'info_dict': { 'id': 'spamfish', 'title': 'Spamfish', }, - 'playlist_mincount': 869, + 'playlist_mincount': 893, }, { - 'url': 'https://m.twitch.tv/spamfish/videos/all', + 'url': 'https://m.twitch.tv/spamfish/videos?filter=all&sort=time', 'only_matching': True, }] class TwitchUploadsIE(TwitchVideosBaseIE): IE_NAME = 'twitch:videos:uploads' - _VALID_URL = r'%s/uploads' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE + _VALID_URL = r'%s\?filter=uploads' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE _PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'upload' _PLAYLIST_TYPE = 'uploads' _TESTS = [{ - 'url': 'https://www.twitch.tv/spamfish/videos/uploads', + 'url': 'https://www.twitch.tv/spamfish/videos?filter=uploads&sort=time', 'info_dict': { 'id': 'spamfish', 'title': 'Spamfish', }, 'playlist_mincount': 0, }, { - 'url': 'https://m.twitch.tv/spamfish/videos/uploads', + 'url': 'https://m.twitch.tv/spamfish/videos?filter=uploads&sort=time', 'only_matching': True, }] class TwitchPastBroadcastsIE(TwitchVideosBaseIE): IE_NAME = 'twitch:videos:past-broadcasts' - _VALID_URL = r'%s/past-broadcasts' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE + _VALID_URL = r'%s\?filter=archives' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE _PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'archive' _PLAYLIST_TYPE = 'past broadcasts' _TESTS = [{ - 'url': 'https://www.twitch.tv/spamfish/videos/past-broadcasts', + 'url': 'https://www.twitch.tv/spamfish/videos?filter=archives&sort=time', 'info_dict': { 'id': 'spamfish', 'title': 'Spamfish', }, - 'playlist_mincount': 0, + 'playlist_mincount': 25, }, { - 'url': 'https://m.twitch.tv/spamfish/videos/past-broadcasts', + 'url': 'https://m.twitch.tv/spamfish/videos?filter=archives&sort=time', 'only_matching': True, }] class TwitchHighlightsIE(TwitchVideosBaseIE): IE_NAME = 'twitch:videos:highlights' - _VALID_URL = r'%s/highlights' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE + _VALID_URL = r'%s\?filter=highlights' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE _PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'highlight' _PLAYLIST_TYPE = 'highlights' _TESTS = [{ - 'url': 'https://www.twitch.tv/spamfish/videos/highlights', + 'url': 'https://www.twitch.tv/spamfish/videos?filter=highlights&sort=time', 'info_dict': { 'id': 'spamfish', 'title': 'Spamfish', }, - 'playlist_mincount': 805, + 'playlist_mincount': 867, }, { - 'url': 'https://m.twitch.tv/spamfish/videos/highlights', + 'url': 'https://m.twitch.tv/spamfish/videos?filter=highlights&sort=time', 'only_matching': True, }]