[gameone] add playlist capability
authorOle Ernst <olebowle@gmx.com>
Sun, 13 Jul 2014 10:16:25 +0000 (12:16 +0200)
committerOle Ernst <olebowle@gmx.com>
Sun, 13 Jul 2014 10:16:25 +0000 (12:16 +0200)
youtube_dl/extractor/__init__.py
youtube_dl/extractor/gameone.py

index a03f9d3ad9b7b4d9a51e86e1085244a14edde55d..17b695a56aa63e0ab80d9a0340671ff27a60a365 100644 (file)
@@ -106,7 +106,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 .gametrailers import GametrailersIE
 from .gdcvault import GDCVaultIE
index b580f52fb42fd80f42dd78201b7a6db09425f77c..0a0fb19e63a3e9e86afca03715ac5506c5cc3c27 100644 (file)
@@ -1,6 +1,7 @@
 # coding: utf-8
 from __future__ import unicode_literals
 
+import datetime
 import re
 
 from .common import InfoExtractor
@@ -88,3 +89,18 @@ 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):
+        this_year = datetime.date.today().year
+        webpage = self._download_webpage('http://www.gameone.de/tv/year/%d' % this_year, this_year)
+        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,
+        }