]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/tlc.py
   2 from __future__ 
import unicode_literals
 
   5 from .common 
import InfoExtractor
 
   6 from .brightcove 
import BrightcoveIE
 
   7 from .discovery 
import DiscoveryIE
 
   8 from ..compat 
import compat_urlparse
 
  11 class TlcIE(DiscoveryIE
): 
  13     _VALID_URL 
= r
'http://www\.tlc\.com\/[a-zA-Z0-9\-]*/[a-zA-Z0-9\-]*/videos/(?P<id>[a-zA-Z0-9\-]*)(.htm)?' 
  15     # DiscoveryIE has _TESTS 
  17         'url': 'http://www.tlc.com/tv-shows/cake-boss/videos/too-big-to-fly.htm', 
  21             'title': 'Too Big to Fly', 
  22             'description': 'Buddy has taken on a high flying task.', 
  24             'timestamp': 1393365060, 
  25             'upload_date': '20140225', 
  28             'skip_download': True,  # requires ffmpef 
  33 class TlcDeIE(InfoExtractor
): 
  35     _VALID_URL 
= r
'http://www\.tlc\.de/sendungen/[^/]+/videos/(?P<title>[^/?]+)' 
  38         'url': 'http://www.tlc.de/sendungen/breaking-amish/videos/#3235167922001', 
  40             'id': '3235167922001', 
  42             'title': 'Breaking Amish: Die Welt da draußen', 
  43             'uploader': 'Discovery Networks - Germany', 
  45                 'Vier Amische und eine Mennonitin wagen in New York' 
  46                 '  den Sprung in ein komplett anderes Leben. Begleitet sie auf' 
  47                 ' ihrem spannenden Weg.'), 
  51     def _real_extract(self
, url
): 
  52         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  53         title 
= mobj
.group('title') 
  54         webpage 
= self
._download
_webpage
(url
, title
) 
  55         iframe_url 
= self
._search
_regex
( 
  56             '<iframe src="(http://www\.tlc\.de/wp-content/.+?)"', webpage
, 
  58         # Otherwise we don't get the correct 'BrightcoveExperience' element, 
  59         # example: http://www.tlc.de/sendungen/cake-boss/videos/cake-boss-cannoli-drama/ 
  60         iframe_url 
= iframe_url
.replace('.htm?', '.php?') 
  61         url_fragment 
= compat_urlparse
.urlparse(url
).fragment
 
  63             # Since the fragment is not send to the server, we always get the same iframe 
  64             iframe_url 
= re
.sub(r
'playlist=(\d+)', 'playlist=%s' % url_fragment
, iframe_url
) 
  65         iframe 
= self
._download
_webpage
(iframe_url
, title
) 
  69             'url': BrightcoveIE
._extract
_brightcove
_url
(iframe
), 
  70             'ie': BrightcoveIE
.ie_key(),