Merge branch 'bliptv' of github.com:remitamine/youtube-dl into remitamine-bliptv
authorremitamine <remitamine@gmail.com>
Mon, 21 Dec 2015 03:31:17 +0000 (04:31 +0100)
committerremitamine <remitamine@gmail.com>
Mon, 21 Dec 2015 03:31:17 +0000 (04:31 +0100)
1  2 
youtube_dl/extractor/__init__.py
youtube_dl/extractor/generic.py

index e7b536df03ef25c7dfbf2bc63264928016c07543,5b842204f22b16b724414eca34c95e88a22bb56f..add1df02321520198a74c3a8fd078bb65d51f1db
@@@ -3,15 -3,9 +3,15 @@@ from __future__ import unicode_literal
  from .abc import ABCIE
  from .abc7news import Abc7NewsIE
  from .academicearth import AcademicEarthCourseIE
 +from .acast import (
 +    ACastIE,
 +    ACastChannelIE,
 +)
  from .addanime import AddAnimeIE
  from .adobetv import (
      AdobeTVIE,
 +    AdobeTVShowIE,
 +    AdobeTVChannelIE,
      AdobeTVVideoIE,
  )
  from .adultswim import AdultSwimIE
@@@ -62,7 -56,6 +62,6 @@@ from .bet import BetI
  from .bild import BildIE
  from .bilibili import BiliBiliIE
  from .blinkx import BlinkxIE
- from .bliptv import BlipTVIE, BlipTVUserIE
  from .bloomberg import BloombergIE
  from .bpb import BpbIE
  from .br import BRIE
@@@ -78,6 -71,7 +77,6 @@@ from .camdemy import 
      CamdemyIE,
      CamdemyFolderIE
  )
 -from .canal13cl import Canal13clIE
  from .canalplus import CanalplusIE
  from .canalc2 import Canalc2IE
  from .cbs import CBSIE
@@@ -205,9 -199,7 +204,9 @@@ from .francetv import 
  from .freesound import FreesoundIE
  from .freespeech import FreespeechIE
  from .freevideo import FreeVideoIE
 +from .funimation import FunimationIE
  from .funnyordie import FunnyOrDieIE
 +from .gameinformer import GameInformerIE
  from .gamekings import GamekingsIE
  from .gameone import (
      GameOneIE,
@@@ -231,11 -223,9 +230,11 @@@ from .globo import 
  from .godtube import GodTubeIE
  from .goldenmoustache import GoldenMoustacheIE
  from .golem import GolemIE
 +from .googledrive import GoogleDriveIE
  from .googleplus import GooglePlusIE
  from .googlesearch import GoogleSearchIE
  from .goshgay import GoshgayIE
 +from .gputechconf import GPUTechConfIE
  from .groupon import GrouponIE
  from .hark import HarkIE
  from .hearthisat import HearThisAtIE
@@@ -282,6 -272,7 +281,7 @@@ from .jadorecettepub import JadoreCette
  from .jeuxvideo import JeuxVideoIE
  from .jove import JoveIE
  from .jukebox import JukeboxIE
+ from .jwplatform import JWPlatformIE
  from .jpopsukitv import JpopsukiIE
  from .kaltura import KalturaIE
  from .kanalplay import KanalPlayIE
@@@ -336,6 -327,7 +336,7 @@@ from .lynda import 
  from .m6 import M6IE
  from .macgamestore import MacGameStoreIE
  from .mailru import MailRuIE
+ from .makertv import MakerTVIE
  from .malemotion import MalemotionIE
  from .mdr import MDRIE
  from .metacafe import MetacafeIE
@@@ -359,6 -351,7 +360,6 @@@ from .motherless import MotherlessI
  from .motorsport import MotorsportIE
  from .movieclips import MovieClipsIE
  from .moviezine import MoviezineIE
 -from .movshare import MovShareIE
  from .mtv import (
      MTVIE,
      MTVServicesEmbeddedIE,
@@@ -424,13 -417,7 +425,13 @@@ from .noco import NocoI
  from .normalboots import NormalbootsIE
  from .nosvideo import NosVideoIE
  from .nova import NovaIE
 -from .novamov import NovaMovIE
 +from .novamov import (
 +    NovaMovIE,
 +    WholeCloudIE,
 +    NowVideoIE,
 +    VideoWeedIE,
 +    CloudTimeIE,
 +)
  from .nowness import (
      NownessIE,
      NownessPlaylistIE,
@@@ -440,6 -427,7 +441,6 @@@ from .nowtv import 
      NowTVIE,
      NowTVListIE,
  )
 -from .nowvideo import NowVideoIE
  from .npo import (
      NPOIE,
      NPOLiveIE,
@@@ -648,7 -636,6 +649,7 @@@ from .teachingchannel import TeachingCh
  from .teamcoco import TeamcocoIE
  from .techtalks import TechTalksIE
  from .ted import TEDIE
 +from .tele13 import Tele13IE
  from .telebruxelles import TeleBruxellesIE
  from .telecinco import TelecincoIE
  from .telegraaf import TelegraafIE
@@@ -677,7 -664,6 +678,7 @@@ from .tnaflix import 
      EMPFlixIE,
      MovieFapIE,
  )
 +from .toggle import ToggleIE
  from .thvideo import (
      THVideoIE,
      THVideoPlaylistIE
@@@ -752,6 -738,7 +753,6 @@@ from .videofyme import VideofyMeI
  from .videomega import VideoMegaIE
  from .videopremium import VideoPremiumIE
  from .videott import VideoTtIE
 -from .videoweed import VideoWeedIE
  from .vidme import VidmeIE
  from .vidzi import VidziIE
  from .vier import VierIE, VierVideosIE
@@@ -853,7 -840,7 +854,7 @@@ from .youtube import 
      YoutubeTruncatedIDIE,
      YoutubeTruncatedURLIE,
      YoutubeUserIE,
 -    YoutubeUserPlaylistsIE,
 +    YoutubePlaylistsIE,
      YoutubeWatchLaterIE,
  )
  from .zapiks import ZapiksIE
index 7cf13fddfe37fa1bf2d2e6329c060f9d4c6286f7,f5dd88f5444f78c860340546eaedcc0ddea9fc0f..3c3066e38c5efb4734e1c564be38424d4bd4e004
@@@ -44,7 -44,6 +44,6 @@@ from .myvi import MyviI
  from .condenast import CondeNastIE
  from .udn import UDNEmbedIE
  from .senateisvp import SenateISVPIE
- from .bliptv import BlipTVIE
  from .svt import SVTIE
  from .pornhub import PornHubIE
  from .xhamster import XHamsterEmbedIE
@@@ -54,8 -53,7 +53,9 @@@ from .onionstudios import OnionStudiosI
  from .snagfilms import SnagFilmsEmbedIE
  from .screenwavemedia import ScreenwaveMediaIE
  from .mtv import MTVServicesEmbeddedIE
 +from .pladform import PladformIE
 +from .googledrive import GoogleDriveIE
+ from .jwplatform import JWPlatformIE
  
  
  class GenericIE(InfoExtractor):
                  'id': 'BwY2RxaTrTkslxOfcan0UCf0YqyvWysJ',
                  'ext': 'mp4',
                  'title': '2cc213299525360.mov',  # that's what we get
 +                'duration': 238.231,
              },
              'add_ie': ['Ooyala'],
          },
                  'ext': 'mp4',
                  'title': '"Steve Jobs: Man in the Machine" trailer',
                  'description': 'The first trailer for the Alex Gibney documentary "Steve Jobs: Man in the Machine."',
 +                'duration': 135.427,
              },
              'params': {
                  'skip_download': True,
              'info_dict': {
                  'id': '50YnY4czr4ms1vJ7yz3xzq0excz_pUMs',
                  'ext': 'mp4',
 -                'description': 'VIDEO: Index/Match versus VLOOKUP.',
 +                'description': 'VIDEO: INDEX/MATCH versus VLOOKUP.',
                  'title': 'This is what separates the Excel masters from the wannabes',
 +                'duration': 191.933,
              },
              'params': {
                  # m3u8 downloads
                  'id': match.group('id')
              }
  
-         # Look for embedded blip.tv player
-         bliptv_url = BlipTVIE._extract_url(webpage)
-         if bliptv_url:
-             return self.url_result(bliptv_url, 'BlipTV')
          # Look for SVT player
          svt_url = SVTIE._extract_url(webpage)
          if svt_url:
                  re.search(r'SBN\.VideoLinkset\.ooyala\([\'"](?P<ec>.{32})[\'"]\)', webpage) or
                  re.search(r'data-ooyala-video-id\s*=\s*[\'"](?P<ec>.{32})[\'"]', webpage))
          if mobj is not None:
 -            return OoyalaIE._build_url_result(mobj.group('ec'))
 +            return OoyalaIE._build_url_result(smuggle_url(mobj.group('ec'), {'domain': url}))
  
          # Look for multiple Ooyala embeds on SBN network websites
          mobj = re.search(r'SBN\.VideoLinkset\.entryGroup\((\[.*?\])', webpage)
              embeds = self._parse_json(mobj.group(1), video_id, fatal=False)
              if embeds:
                  return _playlist_from_matches(
 -                    embeds, getter=lambda v: OoyalaIE._url_for_embed_code(v['provider_video_id']), ie='Ooyala')
 +                    embeds, getter=lambda v: OoyalaIE._url_for_embed_code(smuggle_url(v['provider_video_id'], {'domain': url})), ie='Ooyala')
  
          # Look for Aparat videos
          mobj = re.search(r'<iframe .*?src="(http://www\.aparat\.com/video/[^"]+)"', webpage)
              return self.url_result('eagleplatform:%(host)s:%(id)s' % mobj.groupdict(), 'EaglePlatform')
  
          # Look for Pladform embeds
 -        mobj = re.search(
 -            r'<iframe[^>]+src="(?P<url>https?://out\.pladform\.ru/player\?.+?)"', webpage)
 -        if mobj is not None:
 -            return self.url_result(mobj.group('url'), 'Pladform')
 +        pladform_url = PladformIE._extract_url(webpage)
 +        if pladform_url:
 +            return self.url_result(pladform_url)
  
          # Look for Playwire embeds
          mobj = re.search(
          if nbc_sports_url:
              return self.url_result(nbc_sports_url, 'NBCSportsVPlayer')
  
 +        # Look for Google Drive embeds
 +        google_drive_url = GoogleDriveIE._extract_url(webpage)
 +        if google_drive_url:
 +            return self.url_result(google_drive_url, 'GoogleDrive')
 +
          # Look for UDN embeds
          mobj = re.search(
              r'<iframe[^>]+src="(?P<url>%s)"' % UDNEmbedIE._PROTOCOL_RELATIVE_VALID_URL, webpage)
          if snagfilms_url:
              return self.url_result(snagfilms_url)
  
+         # Look for JWPlatform embeds
+         jwplatform_url = JWPlatformIE._extract_url(webpage)
+         if jwplatform_url:
+             return self.url_result(jwplatform_url, 'JWPlatform')
          # Look for ScreenwaveMedia embeds
          mobj = re.search(ScreenwaveMediaIE.EMBED_PATTERN, webpage)
          if mobj is not None: