aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--youtube_dl/extractor/extractors.py2
-rw-r--r--youtube_dl/extractor/twitch.py26
2 files changed, 22 insertions, 6 deletions
diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py
index 555fadfaf..2b26cb347 100644
--- a/youtube_dl/extractor/extractors.py
+++ b/youtube_dl/extractor/extractors.py
@@ -1235,10 +1235,10 @@ from .twitch import (
TwitchChapterIE,
TwitchVodIE,
TwitchProfileIE,
- TwitchAllVideosIE,
TwitchUploadsIE,
TwitchPastBroadcastsIE,
TwitchHighlightsIE,
+ TwitchAllVideosIE,
TwitchStreamIE,
TwitchClipsIE,
)
diff --git a/youtube_dl/extractor/twitch.py b/youtube_dl/extractor/twitch.py
index bc8f32936..6a1015ce5 100644
--- a/youtube_dl/extractor/twitch.py
+++ b/youtube_dl/extractor/twitch.py
@@ -431,13 +431,17 @@ class TwitchProfileIE(TwitchPlaylistBaseIE):
class TwitchVideosBaseIE(TwitchPlaylistBaseIE):
- _VALID_URL_VIDEOS_BASE = r'%s/(?P<id>[^/]+)/videos/?\?(?:.*?[&;])??filter=%%s' % TwitchBaseIE._VALID_URL_BASE
+ _VALID_URL_VIDEOS_BASE = r'%s/(?P<id>[^/]+)/videos' % TwitchBaseIE._VALID_URL_BASE
+ _VALID_URL_VIDEOS_FILTERS = r'\?(?:.*?[&;])??filter=%s'
_PLAYLIST_PATH = TwitchPlaylistBaseIE._PLAYLIST_PATH + '&broadcast_type='
class TwitchAllVideosIE(TwitchVideosBaseIE):
IE_NAME = 'twitch:videos:all'
- _VALID_URL = TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE % 'all'
+ _VALID_URL = '%s(?:/?(?:%s)|[^/?]+?/?)?' % (
+ TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE,
+ TwitchVideosBaseIE._VALID_URL_VIDEOS_FILTERS % 'all'
+ )
_PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'archive,upload,highlight'
_PLAYLIST_TYPE = 'all videos'
@@ -448,12 +452,18 @@ class TwitchAllVideosIE(TwitchVideosBaseIE):
'title': 'Spamfish',
},
'playlist_mincount': 869,
+ }, {
+ 'url': 'https://m.twitch.tv/spamfish/videos/',
+ 'only_matching': True,
}]
class TwitchUploadsIE(TwitchVideosBaseIE):
IE_NAME = 'twitch:videos:uploads'
- _VALID_URL = TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE % 'uploads'
+ _VALID_URL = '%s/?(?:%s)' % (
+ TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE,
+ TwitchVideosBaseIE._VALID_URL_VIDEOS_FILTERS % 'uploads'
+ )
_PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'upload'
_PLAYLIST_TYPE = 'uploads'
@@ -469,7 +479,10 @@ class TwitchUploadsIE(TwitchVideosBaseIE):
class TwitchPastBroadcastsIE(TwitchVideosBaseIE):
IE_NAME = 'twitch:videos:past-broadcasts'
- _VALID_URL = TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE % 'archives'
+ _VALID_URL = '%s/?(?:%s)' % (
+ TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE,
+ TwitchVideosBaseIE._VALID_URL_VIDEOS_FILTERS % 'archives'
+ )
_PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'archive'
_PLAYLIST_TYPE = 'past broadcasts'
@@ -485,7 +498,10 @@ class TwitchPastBroadcastsIE(TwitchVideosBaseIE):
class TwitchHighlightsIE(TwitchVideosBaseIE):
IE_NAME = 'twitch:videos:highlights'
- _VALID_URL = TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE % 'highlights'
+ _VALID_URL = '%s/?(?:%s)' % (
+ TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE,
+ TwitchVideosBaseIE._VALID_URL_VIDEOS_FILTERS % 'highlights'
+ )
_PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'highlight'
_PLAYLIST_TYPE = 'highlights'