Merge pull request #10819 from raleeper/adobepass
[youtube-dl] / youtube_dl / extractor / amcnetworks.py
index be9552541c2d468fb5330db6c4b7651f90c10324..d2b03b177c1fd46c88552d0355365d2fae7772c9 100644 (file)
@@ -5,6 +5,7 @@ from .theplatform import ThePlatformIE
 from ..utils import (
     update_url_query,
     parse_age_limit,
+    int_or_none,
 )
 
 
@@ -16,7 +17,7 @@ class AMCNetworksIE(ThePlatformIE):
         'info_dict': {
             'id': 's3MX01Nl4vPH',
             'ext': 'mp4',
-            'title': 'Step 1',
+            'title': 'Maron - Season 4 - Step 1',
             'description': 'In denial about his current situation, Marc is reluctantly convinced by his friends to enter rehab. Starring Marc Maron and Constance Zimmer.',
             'age_limit': 17,
             'upload_date': '20160505',
@@ -27,6 +28,7 @@ class AMCNetworksIE(ThePlatformIE):
             # m3u8 download
             'skip_download': True,
         },
+        'skip': 'Requires TV provider accounts',
     }, {
         'url': 'http://www.bbcamerica.com/shows/the-hunt/full-episodes/season-1/episode-01-the-hardest-challenge',
         'only_matching': True,
@@ -65,8 +67,26 @@ class AMCNetworksIE(ThePlatformIE):
         self._sort_formats(formats)
         info.update({
             'id': video_id,
-            'subtiles': subtitles,
+            'subtitles': subtitles,
             'formats': formats,
             'age_limit': parse_age_limit(parse_age_limit(rating)),
         })
+        ns_keys = theplatform_metadata.get('$xmlns', {}).keys()
+        if ns_keys:
+            ns = list(ns_keys)[0]
+            series = theplatform_metadata.get(ns + '$show')
+            season_number = int_or_none(theplatform_metadata.get(ns + '$season'))
+            episode = theplatform_metadata.get(ns + '$episodeTitle')
+            episode_number = int_or_none(theplatform_metadata.get(ns + '$episode'))
+            if season_number:
+                title = 'Season %d - %s' % (season_number, title)
+            if series:
+                title = '%s - %s' % (series, title)
+            info.update({
+                'title': title,
+                'series': series,
+                'season_number': season_number,
+                'episode': episode,
+                'episode_number': episode_number,
+            })
         return info