]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/byutv.py
   1 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
   7 from ..utils 
import ExtractorError
 
  10 class BYUtvIE(InfoExtractor
): 
  11     _VALID_URL 
= r
'^https?://(?:www\.)?byutv.org/watch/[0-9a-f-]+/(?P<video_id>[^/?#]+)' 
  13         'url': 'http://www.byutv.org/watch/6587b9a3-89d2-42a6-a7f7-fd2f81840a7d/studio-c-season-5-episode-5', 
  15             'id': 'studio-c-season-5-episode-5', 
  17             'description': 'md5:e07269172baff037f8e8bf9956bc9747', 
  18             'title': 'Season 5 Episode 5', 
  19             'thumbnail': 're:^https?://.*\.jpg$', 
  23             'skip_download': True, 
  27     def _real_extract(self
, url
): 
  28         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  29         video_id 
= mobj
.group('video_id') 
  31         webpage 
= self
._download
_webpage
(url
, video_id
) 
  32         episode_code 
= self
._search
_regex
( 
  33             r
'(?s)episode:(.*?\}),\s*\n', webpage
, 'episode information') 
  34         episode_json 
= re
.sub( 
  35             r
'(\n\s+)([a-zA-Z]+):\s+\'(.*?
)\'', r'\
1"\2": "\3"', episode_code) 
  36         ep = json.loads(episode_json) 
  38         if ep['providerType
'] == 'Ooyala
': 
  40                 '_type
': 'url_transparent
', 
  42                 'url
': 'ooyala
:%s' % ep['providerId
'], 
  45                 'description
': ep.get('description
'), 
  46                 'thumbnail
': ep.get('imageThumbnail
'), 
  49             raise ExtractorError('Unsupported provider 
%s' % ep['provider
'])