]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/tfo.py
   2 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
  15 class TFOIE(InfoExtractor
): 
  16     _GEO_COUNTRIES 
= ['CA'] 
  17     _VALID_URL 
= r
'https?://(?:www\.)?tfo\.org/(?:en|fr)/(?:[^/]+/){2}(?P<id>\d+)' 
  19         'url': 'http://www.tfo.org/en/universe/tfo-247/100463871/video-game-hackathon', 
  20         'md5': '47c987d0515561114cf03d1226a9d4c7', 
  24             'title': 'Video Game Hackathon', 
  25             'description': 'md5:558afeba217c6c8d96c60e5421795c07', 
  26             'upload_date': '20160212', 
  27             'timestamp': 1455310233, 
  31     def _real_extract(self
, url
): 
  32         video_id 
= self
._match
_id
(url
) 
  33         self
._request
_webpage
(HEADRequest('http://www.tfo.org/'), video_id
) 
  34         infos 
= self
._download
_json
( 
  35             'http://www.tfo.org/api/web/video/get_infos', video_id
, data
=json
.dumps({ 
  36                 'product_id': video_id
, 
  37             }).encode(), headers
={ 
  38                 'X-tfo-session': self
._get
_cookies
('http://www.tfo.org/')['tfo-session'].value
, 
  40         if infos
.get('success') == 0: 
  41             if infos
.get('code') == 'ErrGeoBlocked': 
  42                 self
.raise_geo_restricted(countries
=self
._GEO
_COUNTRIES
) 
  43             raise ExtractorError('%s said: %s' % (self
.IE_NAME
, clean_html(infos
['msg'])), expected
=True) 
  44         video_data 
= infos
['data'] 
  47             '_type': 'url_transparent', 
  49             'url': 'limelight:media:' + video_data
['llid'], 
  50             'title': video_data
['title'], 
  51             'description': video_data
.get('description'), 
  52             'series': video_data
.get('collection'), 
  53             'season_number': int_or_none(video_data
.get('season')), 
  54             'episode_number': int_or_none(video_data
.get('episode')), 
  55             'duration': int_or_none(video_data
.get('duration')), 
  56             'ie_key': 'LimelightMedia',