]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/amcnetworks.py 
b71d1a093463c0e83dd319a2397a2c78c5b12e7f
   2  from  __future__ 
import  unicode_literals
   4  from  . theplatform 
import  ThePlatformIE
  12  class  AMCNetworksIE ( ThePlatformIE
):   13      _VALID_URL 
=  r
'https?://(?:www\.)?(?:amc|bbcamerica|ifc|wetv)\.com/(?:movies/|shows/[^/]+/(?:full-episodes/)?[^/]+/episode-\d+(?:-(?:[^/]+/)?|/))(?P<id>[^/?#]+)'   15          'url' :  'http://www.ifc.com/shows/maron/season-04/episode-01/step-1' ,   20              'title' :  'Maron - Season 4 - Step 1' ,   21              'description' :  'In denial about his current situation, Marc is reluctantly convinced by his friends to enter rehab. Starring Marc Maron and Constance Zimmer.' ,   23              'upload_date' :  '20160505' ,   24              'timestamp' :  1462468831 ,   29              'skip_download' :  True ,   31          'skip' :  'Requires TV provider accounts' ,   33          'url' :  'http://www.bbcamerica.com/shows/the-hunt/full-episodes/season-1/episode-01-the-hardest-challenge' ,   34          'only_matching' :  True ,   36          'url' :  'http://www.amc.com/shows/preacher/full-episodes/season-01/episode-00/pilot' ,   37          'only_matching' :  True ,   39          'url' :  'http://www.wetv.com/shows/million-dollar-matchmaker/season-01/episode-06-the-dumped-dj-and-shallow-hal' ,   40          'only_matching' :  True ,   42          'url' :  'http://www.ifc.com/movies/chaos' ,   43          'only_matching' :  True ,   45          'url' :  'http://www.bbcamerica.com/shows/doctor-who/full-episodes/the-power-of-the-daleks/episode-01-episode-1-color-version' ,   46          'only_matching' :  True ,   49      def  _real_extract ( self
,  url
):   50          display_id 
=  self
._ match
_ id
( url
)   51          webpage 
=  self
._ download
_ webpage
( url
,  display_id
)   56          media_url 
=  self
._ search
_ regex
(   57              r
'window\.platformLinkURL\s*=\s*[\' "]([^ \' " ]+) ',   59          theplatform_metadata = self._download_theplatform_metadata(self._search_regex(   60              r' link\
. theplatform\
. com
/ s
/([ ^?
]+) ',   61              media_url, ' theplatform_path
'), display_id)   62          info = self._parse_theplatform_metadata(theplatform_metadata)   63          video_id = theplatform_metadata[' pid
']   64          title = theplatform_metadata[' title
']   65          rating = theplatform_metadata[' ratings
'][0][' rating
']   66          auth_required = self._search_regex(   67              r' window\
. authRequired\s
*= \s
*( true|false
); ',   68              webpage, ' auth required
')   69          if auth_required == ' true
':   70              requestor_id = self._search_regex(   71                  r' window\
. requestor_id\s
*= \s
*[ \' "]([^ \' " ]+) ',   72                  webpage, ' requestor 
id ')   73              resource = self._get_mvpd_resource(   74                  requestor_id, title, video_id, rating)   75              query[' auth
'] = self._extract_mvpd_auth(   76                  url, video_id, requestor_id, resource)   77          media_url = update_url_query(media_url, query)   78          formats, subtitles = self._extract_theplatform_smil(   80          self._sort_formats(formats)   83              ' subtitles
': subtitles,   85              ' age_limit
': parse_age_limit(parse_age_limit(rating)),   87          ns_keys = theplatform_metadata.get(' $xmlns
', {}).keys()   90              series = theplatform_metadata.get(ns + ' $show
')   91              season_number = int_or_none(   92                  theplatform_metadata.get(ns + ' $season
'))   93              episode = theplatform_metadata.get(ns + ' $episodeTitle
')   94              episode_number = int_or_none(   95                  theplatform_metadata.get(ns + ' $episode
'))   97                  title = ' Season 
%d -  %s ' % (season_number, title)   99                  title = ' %s -  %s ' % (series, title)  103                  ' season_number
': season_number,  105                  ' episode_number
': episode_number,