]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/tlc.py
9f9e388c50948d658d1022f8514122643b623a03
   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)?' 
  16         'url': 'http://www.tlc.com/tv-shows/cake-boss/videos/too-big-to-fly.htm', 
  17         'md5': 'c4038f4a9b44d0b5d74caaa64ed2a01a', 
  21             'title': 'Cake Boss: Too Big to Fly', 
  22             'description': 'Buddy has taken on a high flying task.', 
  28 class TlcDeIE(InfoExtractor
): 
  30     _VALID_URL 
= r
'http://www\.tlc\.de/sendungen/[^/]+/videos/(?P<title>[^/?]+)' 
  33         'url': 'http://www.tlc.de/sendungen/breaking-amish/videos/#3235167922001', 
  35             'id': '3235167922001', 
  37             'title': 'Breaking Amish: Die Welt da draußen', 
  38             'uploader': 'Discovery Networks - Germany', 
  40                 'Vier Amische und eine Mennonitin wagen in New York' 
  41                 '  den Sprung in ein komplett anderes Leben. Begleitet sie auf' 
  42                 ' ihrem spannenden Weg.'), 
  46     def _real_extract(self
, url
): 
  47         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  48         title 
= mobj
.group('title') 
  49         webpage 
= self
._download
_webpage
(url
, title
) 
  50         iframe_url 
= self
._search
_regex
( 
  51             '<iframe src="(http://www\.tlc\.de/wp-content/.+?)"', webpage
, 
  53         # Otherwise we don't get the correct 'BrightcoveExperience' element, 
  54         # example: http://www.tlc.de/sendungen/cake-boss/videos/cake-boss-cannoli-drama/ 
  55         iframe_url 
= iframe_url
.replace('.htm?', '.php?') 
  56         url_fragment 
= compat_urlparse
.urlparse(url
).fragment
 
  58             # Since the fragment is not send to the server, we always get the same iframe 
  59             iframe_url 
= re
.sub(r
'playlist=(\d+)', 'playlist=%s' % url_fragment
, iframe_url
) 
  60         iframe 
= self
._download
_webpage
(iframe_url
, title
) 
  64             'url': BrightcoveIE
._extract
_brightcove
_url
(iframe
), 
  65             'ie': BrightcoveIE
.ie_key(),