aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLéo El Amri <leo@superlel.me>2019-07-20 20:02:48 +0200
committerLéo El Amri <leo@superlel.me>2019-07-20 20:03:59 +0200
commita7d44de6da0a44e2034ecd1e997a738e94fe70e9 (patch)
treed4125cc7259680717245c2b1f977ca79b8c09a6d
parent7679c2333241e050d4222e84c4bc173548fd01ba (diff)
downloadhypervideo-pre-a7d44de6da0a44e2034ecd1e997a738e94fe70e9.tar.lz
hypervideo-pre-a7d44de6da0a44e2034ecd1e997a738e94fe70e9.tar.xz
hypervideo-pre-a7d44de6da0a44e2034ecd1e997a738e94fe70e9.zip
Reverting the removal of TwitchVideoIE and TwitchChapterIE
-rw-r--r--youtube_dl/extractor/extractors.py2
-rw-r--r--youtube_dl/extractor/twitch.py39
2 files changed, 41 insertions, 0 deletions
diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py
index a974eed55..555fadfaf 100644
--- a/youtube_dl/extractor/extractors.py
+++ b/youtube_dl/extractor/extractors.py
@@ -1231,6 +1231,8 @@ from .twentymin import TwentyMinutenIE
from .twentythreevideo import TwentyThreeVideoIE
from .twitcasting import TwitCastingIE
from .twitch import (
+ TwitchVideoIE,
+ TwitchChapterIE,
TwitchVodIE,
TwitchProfileIE,
TwitchAllVideosIE,
diff --git a/youtube_dl/extractor/twitch.py b/youtube_dl/extractor/twitch.py
index be90669d8..bc8f32936 100644
--- a/youtube_dl/extractor/twitch.py
+++ b/youtube_dl/extractor/twitch.py
@@ -205,6 +205,43 @@ class TwitchItemBaseIE(TwitchBaseIE):
return self._extract_media(self._match_id(url))
+class TwitchVideoIE(TwitchItemBaseIE):
+ IE_NAME = 'twitch:video'
+ _VALID_URL = r'%s/[^/]+/b/(?P<id>\d+)' % TwitchBaseIE._VALID_URL_BASE
+ _ITEM_TYPE = 'video'
+ _ITEM_SHORTCUT = 'a'
+
+ _TEST = {
+ 'url': 'http://www.twitch.tv/riotgames/b/577357806',
+ 'info_dict': {
+ 'id': 'a577357806',
+ 'title': 'Worlds Semifinals - Star Horn Royal Club vs. OMG',
+ },
+ 'playlist_mincount': 12,
+ 'skip': 'HTTP Error 404: Not Found',
+ }
+
+
+class TwitchChapterIE(TwitchItemBaseIE):
+ IE_NAME = 'twitch:chapter'
+ _VALID_URL = r'%s/[^/]+/c/(?P<id>\d+)' % TwitchBaseIE._VALID_URL_BASE
+ _ITEM_TYPE = 'chapter'
+ _ITEM_SHORTCUT = 'c'
+
+ _TESTS = [{
+ 'url': 'http://www.twitch.tv/acracingleague/c/5285812',
+ 'info_dict': {
+ 'id': 'c5285812',
+ 'title': 'ACRL Off Season - Sports Cars @ Nordschleife',
+ },
+ 'playlist_mincount': 3,
+ 'skip': 'HTTP Error 404: Not Found',
+ }, {
+ 'url': 'http://www.twitch.tv/tsm_theoddone/c/2349361',
+ 'only_matching': True,
+ }]
+
+
class TwitchVodIE(TwitchItemBaseIE):
IE_NAME = 'twitch:vod'
_VALID_URL = r'''(?x)
@@ -510,6 +547,8 @@ class TwitchStreamIE(TwitchBaseIE):
def suitable(cls, url):
return (False
if any(ie.suitable(url) for ie in (
+ TwitchVideoIE,
+ TwitchChapterIE,
TwitchVodIE,
TwitchProfileIE,
TwitchAllVideosIE,