]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/tele13.py
   2 from __future__ 
import unicode_literals
 
   4 from .common 
import InfoExtractor
 
   5 from .youtube 
import YoutubeIE
 
  13 class Tele13IE(InfoExtractor
): 
  14     _VALID_URL 
= r
'^http://(?:www\.)?t13\.cl/videos(?:/[^/]+)+/(?P<id>[\w-]+)' 
  17             'url': 'http://www.t13.cl/videos/actualidad/el-circulo-de-hierro-de-michelle-bachelet-en-su-regreso-a-la-moneda', 
  18             'md5': '4cb1fa38adcad8fea88487a078831755', 
  20                 'id': 'el-circulo-de-hierro-de-michelle-bachelet-en-su-regreso-a-la-moneda', 
  22                 'title': 'El círculo de hierro de Michelle Bachelet en su regreso a La Moneda', 
  25                 # HTTP Error 404: Not Found 
  26                 'skip_download': True, 
  30             'url': 'http://www.t13.cl/videos/mundo/tendencias/video-captan-misteriosa-bola-fuego-cielos-bangkok', 
  31             'md5': '867adf6a3b3fef932c68a71d70b70946', 
  35                 'title': 'Shooting star seen on 7-Sep-2015', 
  36                 'description': 'md5:7292ff2a34b2f673da77da222ae77e1e', 
  37                 'uploader': 'Porjai Jaturongkhakun', 
  38                 'upload_date': '20150906', 
  39                 'uploader_id': 'UCnLY_3ezwNcDSC_Wc6suZxw', 
  41             'add_ie': ['Youtube'], 
  45     def _real_extract(self
, url
): 
  46         display_id 
= self
._match
_id
(url
) 
  47         webpage 
= self
._download
_webpage
(url
, display_id
) 
  49         setup_js 
= self
._search
_regex
( 
  50             r
"(?s)jwplayer\('player-vivo'\).setup\((\{.*?\})\)", 
  51             webpage
, 'setup code') 
  52         sources 
= self
._parse
_json
(self
._search
_regex
( 
  53             r
'sources\s*:\s*(\[[^\]]+\])', setup_js
, 'sources'), 
  54             display_id
, js_to_json
) 
  56         preference 
= qualities(['Móvil', 'SD', 'HD']) 
  60             format_url 
= f
['file'] 
  61             if format_url 
and format_url 
not in urls
: 
  62                 ext 
= determine_ext(format_url
) 
  64                     formats
.extend(self
._extract
_m
3u8_formats
( 
  65                         format_url
, display_id
, 'mp4', 'm3u8_native', 
  66                         m3u8_id
='hls', fatal
=False)) 
  67                 elif YoutubeIE
.suitable(format_url
): 
  68                     return self
.url_result(format_url
, 'Youtube') 
  72                         'format_id': f
.get('label'), 
  73                         'preference': preference(f
.get('label')), 
  76                 urls
.append(format_url
) 
  77         self
._sort
_formats
(formats
) 
  81             'title': self
._search
_regex
( 
  82                 r
'title\s*:\s*"([^"]+)"', setup_js
, 'title'), 
  83             'description': self
._html
_search
_meta
( 
  84                 'description', webpage
, 'description'), 
  85             'thumbnail': self
._search
_regex
( 
  86                 r
'image\s*:\s*"([^"]+)"', setup_js
, 'thumbnail', default
=None),