]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/toongoggles.py
   2 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
  13 class ToonGogglesIE(InfoExtractor
): 
  14     _VALID_URL 
= r
'https?://(?:www\.)?toongoggles\.com/shows/(?P<show_id>\d+)(?:/[^/]+/episodes/(?P<episode_id>\d+))?' 
  16         'url': 'http://www.toongoggles.com/shows/217143/bernard-season-2/episodes/217147/football', 
  17         'md5': '18289fc2b951eff6b953a9d8f01e6831', 
  23             'description': 'Bernard decides to play football in order to be better than Lloyd and tries to beat him no matter how, he even cheats.', 
  24             'upload_date': '20160718', 
  25             'timestamp': 1468879330, 
  28         'url': 'http://www.toongoggles.com/shows/227759/om-nom-stories-around-the-world', 
  31             'title': 'Om Nom Stories Around The World', 
  33         'playlist_mincount': 11, 
  36     def _call_api(self
, action
, page_id
, query
): 
  43         return self
._download
_json
('http://api.toongoggles.com/' + action
, page_id
, query
=query
) 
  45     def _parse_episode_data(self
, episode_data
): 
  46         title 
= episode_data
['episode_name'] 
  49             '_type': 'url_transparent', 
  50             'id': episode_data
['episode_id'], 
  52             'url': 'kaltura:513551:' + episode_data
['entry_id'], 
  53             'thumbnail': episode_data
.get('thumbnail_url'), 
  54             'description': episode_data
.get('description'), 
  55             'duration': parse_duration(episode_data
.get('hms')), 
  56             'series': episode_data
.get('show_name'), 
  57             'season_number': int_or_none(episode_data
.get('season_num')), 
  58             'episode_id': episode_data
.get('episode_id'), 
  60             'episode_number': int_or_none(episode_data
.get('episode_num')), 
  61             'categories': episode_data
.get('categories'), 
  65     def _real_extract(self
, url
): 
  66         show_id
, episode_id 
= re
.match(self
._VALID
_URL
, url
).groups() 
  68             episode_data 
= self
._call
_api
('search', episode_id
, { 
  72             return self
._parse
_episode
_data
(episode_data
) 
  74             show_data 
= self
._call
_api
('getepisodesbyshow', show_id
, { 
  79             for episode_data 
in show_data
.get('objects', []): 
  80                 entries
.append(self
._parse
_episode
_data
(episode_data
)) 
  81             return self
.playlist_result(entries
, show_id
, show_data
.get('show_name'))