Merge remote-tracking branch 'olebowle/gameone'
authorPhilipp Hagemeister <phihag@phihag.de>
Sun, 24 Aug 2014 05:02:29 +0000 (07:02 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Sun, 24 Aug 2014 05:02:29 +0000 (07:02 +0200)
test/test_playlists.py
youtube_dl/extractor/__init__.py
youtube_dl/extractor/gameone.py

index 6448fea38586970a640b33045da99be33a83add0..0691ff11063359ad0091a2608896eebf03292269 100644 (file)
@@ -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()
index 0203d9d63bbecb3b4f484eed38714481c27f08a1..de6e8ee30f5ce1338fe63840347c80c14b465ff1 100644 (file)
@@ -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
index b580f52fb42fd80f42dd78201b7a6db09425f77c..12f757329bf085743970396cde58e5a2ab91fb45 100644 (file)
@@ -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,
+        }