youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 11f75cac3db14681b306633a496e9aaae2cfc0a7
parent e673db0194a40b0904c2196426a1ec2cbc030945
Author: Philipp Hagemeister <phihag@phihag.de>
Date:   Sun, 24 Aug 2014 07:02:29 +0200

Merge remote-tracking branch 'olebowle/gameone'

Diffstat:
Mtest/test_playlists.py | 9+++++++++
Myoutube_dl/extractor/__init__.py | 5++++-
Myoutube_dl/extractor/gameone.py | 14++++++++++++++
3 files changed, 27 insertions(+), 1 deletion(-)

diff --git 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 @@ -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 @@ -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, + }