aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-08-24 07:02:29 +0200
committerPhilipp Hagemeister <phihag@phihag.de>2014-08-24 07:02:29 +0200
commit11f75cac3db14681b306633a496e9aaae2cfc0a7 (patch)
tree3e383f5389240840a4408137cf05502116b35c10
parente673db0194a40b0904c2196426a1ec2cbc030945 (diff)
parent8c778adc39fbaa79a6e885532b933364c9952817 (diff)
Merge remote-tracking branch 'olebowle/gameone'
-rw-r--r--test/test_playlists.py9
-rw-r--r--youtube_dl/extractor/__init__.py5
-rw-r--r--youtube_dl/extractor/gameone.py14
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,
+ }