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)
1  2 
test/test_playlists.py
youtube_dl/extractor/__init__.py

diff --combined test/test_playlists.py
index 6448fea38586970a640b33045da99be33a83add0,3bc353604998a4271b7c787826e43d840a49f2cd..0691ff11063359ad0091a2608896eebf03292269
@@@ -1,17 -1,6 +1,17 @@@
  #!/usr/bin/env python
  # encoding: utf-8
  
 +## DEPRECATED FILE!
 +# Add new tests to the extractors themselves, like this:
 +# _TEST = {
 +#    'url': 'http://example.com/playlist/42',
 +#    'playlist_mincount': 99,
 +#    'info_dict': {
 +#        'id': '42',
 +#        'title': 'Playlist number forty-two',
 +#    }
 +# }
 +
  from __future__ import unicode_literals
  
  # Allow direct execution
@@@ -22,7 -11,6 +22,7 @@@ sys.path.insert(0, os.path.dirname(os.p
  
  from test.helper import (
      assertRegexpMatches,
 +    assertGreaterEqual,
      expect_info_dict,
      FakeYDL,
  )
@@@ -62,6 -50,7 +62,7 @@@ from youtube_dl.extractor import 
      InstagramUserIE,
      CSpanIE,
      AolIE,
+     GameOnePlaylistIE,
  )
  
  
@@@ -83,8 -72,8 +84,8 @@@ class TestPlaylists(unittest.TestCase)
          ie = DailymotionUserIE(dl)
          result = ie.extract('https://www.dailymotion.com/user/nqtv')
          self.assertIsPlaylist(result)
 +        assertGreaterEqual(self, len(result['entries']), 100)
          self.assertEqual(result['title'], 'Rémi Gaillard')
 -        self.assertTrue(len(result['entries']) >= 100)
  
      def test_vimeo_channel(self):
          dl = FakeYDL()
          ie = VineUserIE(dl)
          result = ie.extract('https://vine.co/Visa')
          self.assertIsPlaylist(result)
 -        self.assertTrue(len(result['entries']) >= 47)
 +        assertGreaterEqual(self, len(result['entries']), 47)
  
      def test_ustream_channel(self):
          dl = FakeYDL()
          result = ie.extract('http://www.ustream.tv/channel/channeljapan')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], '10874166')
 -        self.assertTrue(len(result['entries']) >= 54)
 +        assertGreaterEqual(self, len(result['entries']), 54)
  
      def test_soundcloud_set(self):
          dl = FakeYDL()
          result = ie.extract('https://soundcloud.com/the-concept-band/sets/the-royal-concept-ep')
          self.assertIsPlaylist(result)
          self.assertEqual(result['title'], 'The Royal Concept EP')
 -        self.assertTrue(len(result['entries']) >= 6)
 +        assertGreaterEqual(self, len(result['entries']), 6)
  
      def test_soundcloud_user(self):
          dl = FakeYDL()
          result = ie.extract('https://soundcloud.com/the-concept-band')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], '9615865')
 -        self.assertTrue(len(result['entries']) >= 12)
 +        assertGreaterEqual(self, len(result['entries']), 12)
  
      def test_soundcloud_likes(self):
          dl = FakeYDL()
          result = ie.extract('https://soundcloud.com/the-concept-band/likes')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], '9615865')
 -        self.assertTrue(len(result['entries']) >= 1)
 +        assertGreaterEqual(self, len(result['entries']), 1)
  
      def test_soundcloud_playlist(self):
          dl = FakeYDL()
          self.assertEqual(result['id'], '4110309')
          self.assertEqual(result['title'], 'TILT Brass - Bowery Poetry Club, August \'03 [Non-Site SCR 02]')
          assertRegexpMatches(
 -            self, result['description'], r'TILT Brass - Bowery Poetry Club')
 +            self, result['description'], r'.*?TILT Brass - Bowery Poetry Club')
          self.assertEqual(len(result['entries']), 6)
  
      def test_livestream_event(self):
          result = ie.extract('http://new.livestream.com/tedx/cityenglish')
          self.assertIsPlaylist(result)
          self.assertEqual(result['title'], 'TEDCity2.0 (English)')
 -        self.assertTrue(len(result['entries']) >= 4)
 +        assertGreaterEqual(self, len(result['entries']), 4)
  
      def test_livestreamoriginal_folder(self):
          dl = FakeYDL()
          result = ie.extract('https://www.livestream.com/newplay/folder?dirId=a07bf706-d0e4-4e75-a747-b021d84f2fd3')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], 'a07bf706-d0e4-4e75-a747-b021d84f2fd3')
 -        self.assertTrue(len(result['entries']) >= 28)
 +        assertGreaterEqual(self, len(result['entries']), 28)
  
      def test_nhl_videocenter(self):
          dl = FakeYDL()
          result = ie.extract('http://bambuser.com/channel/pixelversity')
          self.assertIsPlaylist(result)
          self.assertEqual(result['title'], 'pixelversity')
 -        self.assertTrue(len(result['entries']) >= 60)
 +        assertGreaterEqual(self, len(result['entries']), 60)
  
      def test_bandcamp_album(self):
          dl = FakeYDL()
          ie = BandcampAlbumIE(dl)
 -        result = ie.extract('http://mpallante.bandcamp.com/album/nightmare-night-ep')
 +        result = ie.extract('http://nightbringer.bandcamp.com/album/hierophany-of-the-open-grave')
          self.assertIsPlaylist(result)
 -        self.assertEqual(result['title'], 'Nightmare Night EP')
 -        self.assertTrue(len(result['entries']) >= 4)
 +        self.assertEqual(result['title'], 'Hierophany of the Open Grave')
 +        assertGreaterEqual(self, len(result['entries']), 9)
          
      def test_smotri_community(self):
          dl = FakeYDL()
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], 'kommuna')
          self.assertEqual(result['title'], 'КПРФ')
 -        self.assertTrue(len(result['entries']) >= 4)
 +        assertGreaterEqual(self, len(result['entries']), 4)
          
      def test_smotri_user(self):
          dl = FakeYDL()
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], 'inspector')
          self.assertEqual(result['title'], 'Inspector')
 -        self.assertTrue(len(result['entries']) >= 9)
 +        assertGreaterEqual(self, len(result['entries']), 9)
  
      def test_AcademicEarthCourse(self):
          dl = FakeYDL()
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], 'dvoe_iz_lartsa')
          self.assertEqual(result['title'], 'Двое из ларца (2006 - 2008)')
 -        self.assertTrue(len(result['entries']) >= 24)
 +        assertGreaterEqual(self, len(result['entries']), 24)
  
      def test_ivi_compilation_season(self):
          dl = FakeYDL()
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], 'dvoe_iz_lartsa/season1')
          self.assertEqual(result['title'], 'Двое из ларца (2006 - 2008) 1 сезон')
 -        self.assertTrue(len(result['entries']) >= 12)
 +        assertGreaterEqual(self, len(result['entries']), 12)
          
      def test_imdb_list(self):
          dl = FakeYDL()
          self.assertEqual(result['id'], 'cryptography')
          self.assertEqual(result['title'], 'Journey into cryptography')
          self.assertEqual(result['description'], 'How have humans protected their secret messages through history? What has changed today?')
 -        self.assertTrue(len(result['entries']) >= 3)
 +        assertGreaterEqual(self, len(result['entries']), 3)
  
      def test_EveryonesMixtape(self):
          dl = FakeYDL()
          result = ie.extract('http://rutube.ru/tags/video/1800/')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], '1800')
 -        self.assertTrue(len(result['entries']) >= 68)
 +        assertGreaterEqual(self, len(result['entries']), 68)
  
      def test_rutube_person(self):
          dl = FakeYDL()
          result = ie.extract('http://rutube.ru/video/person/313878/')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], '313878')
 -        self.assertTrue(len(result['entries']) >= 37)
 +        assertGreaterEqual(self, len(result['entries']), 37)
  
      def test_multiple_brightcove_videos(self):
          # https://github.com/rg3/youtube-dl/issues/2283
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], '10')
          self.assertEqual(result['title'], 'Who are the hackers?')
 -        self.assertTrue(len(result['entries']) >= 6)
 +        assertGreaterEqual(self, len(result['entries']), 6)
  
      def test_toypics_user(self):
          dl = FakeYDL()
          result = ie.extract('http://videos.toypics.net/Mikey')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], 'Mikey')
 -        self.assertTrue(len(result['entries']) >= 17)
 +        assertGreaterEqual(self, len(result['entries']), 17)
  
      def test_xtube_user(self):
          dl = FakeYDL()
          result = ie.extract('http://www.xtube.com/community/profile.php?user=greenshowers')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], 'greenshowers')
 -        self.assertTrue(len(result['entries']) >= 155)
 +        assertGreaterEqual(self, len(result['entries']), 155)
  
      def test_InstagramUser(self):
          dl = FakeYDL()
          result = ie.extract('http://instagram.com/porsche')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], 'porsche')
 -        self.assertTrue(len(result['entries']) >= 2)
 +        assertGreaterEqual(self, len(result['entries']), 2)
          test_video = next(
              e for e in result['entries']
              if e['id'] == '614605558512799803_462752227')
          self.assertEqual(result['id'], '152147')
          self.assertEqual(
              result['title'], 'Brace Yourself - Today\'s Weirdest News')
 -        self.assertTrue(len(result['entries']) >= 10)
 +        assertGreaterEqual(self, len(result['entries']), 10)
  
      def test_TeacherTubeUser(self):
          dl = FakeYDL()
          result = ie.extract('http://www.teachertube.com/user/profile/rbhagwati2')
          self.assertIsPlaylist(result)
          self.assertEqual(result['id'], 'rbhagwati2')
 -        self.assertTrue(len(result['entries']) >= 179)
 +        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,17b695a56aa63e0ab80d9a0340671ff27a60a365..de6e8ee30f5ce1338fe63840347c80c14b465ff1
@@@ -1,7 -1,5 +1,7 @@@
 +from .abc import ABCIE
  from .academicearth import AcademicEarthCourseIE
  from .addanime import AddAnimeIE
 +from .adultswim import AdultSwimIE
  from .aftonbladet import AftonbladetIE
  from .anitube import AnitubeIE
  from .aol import AolIE
@@@ -54,7 -52,6 +54,7 @@@ from .cnn import 
  from .collegehumor import CollegeHumorIE
  from .comedycentral import ComedyCentralIE, ComedyCentralShowsIE
  from .condenast import CondeNastIE
 +from .cracked import CrackedIE
  from .criterion import CriterionIE
  from .crunchyroll import CrunchyrollIE
  from .cspan import CSpanIE
@@@ -65,11 -62,9 +65,11 @@@ from .dailymotion import 
      DailymotionUserIE,
  )
  from .daum import DaumIE
 +from .dfb import DFBIE
  from .dotsub import DotsubIE
  from .dreisat import DreiSatIE
  from .drtv import DRTVIE
 +from .dump import DumpIE
  from .defense import DefenseGouvFrIE
  from .discovery import DiscoveryIE
  from .divxstage import DivxStageIE
@@@ -78,17 -73,12 +78,17 @@@ from .ebaumsworld import EbaumsWorldI
  from .ehow import EHowIE
  from .eighttracks import EightTracksIE
  from .eitb import EitbIE
 +from .ellentv import (
 +    EllenTVIE,
 +    EllenTVClipsIE,
 +)
  from .elpais import ElPaisIE
  from .empflix import EmpflixIE
  from .engadget import EngadgetIE
  from .escapist import EscapistIE
  from .everyonesmixtape import EveryonesMixtapeIE
  from .exfm import ExfmIE
 +from .expotv import ExpoTVIE
  from .extremetube import ExtremeTubeIE
  from .facebook import FacebookIE
  from .faz import FazIE
@@@ -116,24 -106,23 +116,27 @@@ from .freesound import FreesoundI
  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
  from .gdcvault import GDCVaultIE
  from .generic import GenericIE
 +from .godtube import GodTubeIE
  from .googleplus import GooglePlusIE
  from .googlesearch import GoogleSearchIE
  from .gorillavid import GorillaVidIE
  from .goshgay import GoshgayIE
 +from .grooveshark import GroovesharkIE
  from .hark import HarkIE
  from .helsinki import HelsinkiIE
  from .hentaistigma import HentaiStigmaIE
  from .hotnewhiphop import HotNewHipHopIE
  from .howcast import HowcastIE
 +from .howstuffworks import HowStuffWorksIE
  from .huffpost import HuffPostIE
  from .hypem import HypemIE
  from .iconosquare import IconosquareIE
@@@ -151,10 -140,8 +154,10 @@@ from .ivi import 
      IviIE,
      IviCompilationIE
  )
 +from .izlesene import IzleseneIE
  from .jadorecettepub import JadoreCettePubIE
  from .jeuxvideo import JeuxVideoIE
 +from .jove import JoveIE
  from .jukebox import JukeboxIE
  from .justintv import JustinTVIE
  from .jpopsukitv import JpopsukiIE
@@@ -164,7 -151,6 +167,7 @@@ from .khanacademy import KhanAcademyI
  from .kickstarter import KickStarterIE
  from .keek import KeekIE
  from .kontrtube import KontrTubeIE
 +from .krasview import KrasViewIE
  from .ku6 import Ku6IE
  from .la7 import LA7IE
  from .lifenews import LifeNewsIE
@@@ -185,19 -171,14 +188,19 @@@ from .malemotion import MalemotionI
  from .mdr import MDRIE
  from .metacafe import MetacafeIE
  from .metacritic import MetacriticIE
 +from .ministrygrid import MinistryGridIE
  from .mit import TechTVMITIE, MITIE, OCWMITIE
 +from .mitele import MiTeleIE
  from .mixcloud import MixcloudIE
 +from .mlb import MLBIE
  from .mpora import MporaIE
  from .mofosex import MofosexIE
 +from .mojvideo import MojvideoIE
  from .mooshare import MooshareIE
  from .morningstar import MorningstarIE
  from .motherless import MotherlessIE
  from .motorsport import MotorsportIE
 +from .movieclips import MovieClipsIE
  from .moviezine import MoviezineIE
  from .movshare import MovShareIE
  from .mtv import (
@@@ -237,17 -218,12 +240,17 @@@ from .nrk import 
  from .ntv import NTVIE
  from .nytimes import NYTimesIE
  from .nuvid import NuvidIE
 -from .oe1 import OE1IE
  from .ooyala import OoyalaIE
 -from .orf import ORFIE
 +from .orf import (
 +    ORFTVthekIE,
 +    ORFOE1IE,
 +    ORFFM4IE,
 +)
  from .parliamentliveuk import ParliamentLiveUKIE
 +from .patreon import PatreonIE
  from .pbs import PBSIE
  from .photobucket import PhotobucketIE
 +from .playfm import PlayFMIE
  from .playvid import PlayvidIE
  from .podomatic import PodomaticIE
  from .pornhd import PornHdIE
@@@ -265,10 -241,9 +268,10 @@@ from .ro220 import Ro220I
  from .rottentomatoes import RottenTomatoesIE
  from .roxwel import RoxwelIE
  from .rtbf import RTBFIE
 +from .rtlnl import RtlXlIE
  from .rtlnow import RTLnowIE
  from .rts import RTSIE
 -from .rtve import RTVEALaCartaIE
 +from .rtve import RTVEALaCartaIE, RTVELiveIE
  from .ruhd import RUHDIE
  from .rutube import (
      RutubeIE,
      RutubePersonIE,
  )
  from .rutv import RUTVIE
 +from .sapo import SapoIE
  from .savefrom import SaveFromIE
 +from .sbs import SBSIE
  from .scivee import SciVeeIE
  from .screencast import ScreencastIE
  from .servingsys import ServingSysIE
 +from .shared import SharedIE
  from .sina import SinaIE
  from .slideshare import SlideshareIE
  from .slutload import SlutloadIE
@@@ -293,8 -265,6 +296,8 @@@ from .smotri import 
      SmotriUserIE,
      SmotriBroadcastIE,
  )
 +from .snotr import SnotrIE
 +from .sockshare import SockshareIE
  from .sohu import SohuIE
  from .soundcloud import (
      SoundcloudIE,
      SoundcloudPlaylistIE
  )
  from .soundgasm import SoundgasmIE
 -from .southparkstudios import (
 -    SouthParkStudiosIE,
 +from .southpark import (
 +    SouthParkIE,
      SouthparkDeIE,
  )
  from .space import SpaceIE
@@@ -346,8 -316,6 +349,8 @@@ from .tumblr import TumblrI
  from .tutv import TutvIE
  from .tvigle import TvigleIE
  from .tvp import TvpIE
 +from .tvplay import TVPlayIE
 +from .ubu import UbuIE
  from .udemy import (
      UdemyIE,
      UdemyCourseIE
@@@ -369,7 -337,6 +372,7 @@@ from .videofyme import VideofyMeI
  from .videopremium import VideoPremiumIE
  from .videott import VideoTtIE
  from .videoweed import VideoWeedIE
 +from .vidme import VidmeIE
  from .vimeo import (
      VimeoIE,
      VimeoChannelIE,
@@@ -392,7 -359,6 +395,7 @@@ from .vuclip import VuClipI
  from .vulture import VultureIE
  from .washingtonpost import WashingtonPostIE
  from .wat import WatIE
 +from .wayofthemaster import WayOfTheMasterIE
  from .wdr import (
      WDRIE,
      WDRMobileIE,
@@@ -404,7 -370,6 +407,7 @@@ from .wistia import WistiaI
  from .worldstarhiphop import WorldStarHipHopIE
  from .wrzuta import WrzutaIE
  from .xbef import XBefIE
 +from .xboxclips import XboxClipsIE
  from .xhamster import XHamsterIE
  from .xnxx import XNXXIE
  from .xvideos import XVideosIE
@@@ -434,7 -399,6 +437,7 @@@ from .youtube import 
      YoutubeUserIE,
      YoutubeWatchLaterIE,
  )
 +
  from .zdf import ZDFIE