diff options
| -rw-r--r-- | test/test_playlists.py | 9 | ||||
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 5 | ||||
| -rw-r--r-- | youtube_dl/extractor/gameone.py | 14 | 
3 files changed, 27 insertions, 1 deletions
diff --git a/test/test_playlists.py b/test/test_playlists.py index 6448fea38..0691ff110 100644 --- a/test/test_playlists.py +++ b/test/test_playlists.py @@ -62,6 +62,7 @@ from youtube_dl.extractor import (      InstagramUserIE,      CSpanIE,      AolIE, +    GameOnePlaylistIE,  ) @@ -407,5 +408,13 @@ class TestPlaylists(unittest.TestCase):          self.assertEqual(result['id'], 'rbhagwati2')          assertGreaterEqual(self, len(result['entries']), 179) +    def test_GameOne_playlist(self): +        dl = FakeYDL() +        ie = GameOnePlaylistIE(dl) +        result = ie.extract('http://www.gameone.de/tv') +        self.assertIsPlaylist(result) +        self.assertEqual(result['title'], 'GameOne') +        assertGreaterEqual(self, len(result['entries']), 294) +  if __name__ == '__main__':      unittest.main() diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 0203d9d63..de6e8ee30 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -116,7 +116,10 @@ from .freesound import FreesoundIE  from .freespeech import FreespeechIE  from .funnyordie import FunnyOrDieIE  from .gamekings import GamekingsIE -from .gameone import GameOneIE +from .gameone import ( +    GameOneIE, +    GameOnePlaylistIE, +)  from .gamespot import GameSpotIE  from .gamestar import GameStarIE  from .gametrailers import GametrailersIE diff --git a/youtube_dl/extractor/gameone.py b/youtube_dl/extractor/gameone.py index b580f52fb..12f757329 100644 --- a/youtube_dl/extractor/gameone.py +++ b/youtube_dl/extractor/gameone.py @@ -88,3 +88,17 @@ class GameOneIE(InfoExtractor):              'age_limit': age_limit,              'timestamp': timestamp,          } + +class GameOnePlaylistIE(InfoExtractor): +    _VALID_URL = r'https?://(?:www\.)?gameone\.de(?:/tv)?/?$' + +    def _real_extract(self, url): +        webpage = self._download_webpage('http://www.gameone.de/tv', 'TV') +        max_id = max(map(int, re.findall(r'<a href="/tv/(\d+)"', webpage))) +        entries = [self.url_result('http://www.gameone.de/tv/%d' % video_id, 'GameOne') for video_id in range(max_id, 0, -1)] + +        return { +            '_type': 'playlist', +            'title': 'GameOne', +            'entries': entries, +        }  | 
