diff options
| -rw-r--r-- | youtube_dl/extractor/aenetworks.py | 23 | 
1 files changed, 18 insertions, 5 deletions
| diff --git a/youtube_dl/extractor/aenetworks.py b/youtube_dl/extractor/aenetworks.py index 2a1f08e39..59fbe048a 100644 --- a/youtube_dl/extractor/aenetworks.py +++ b/youtube_dl/extractor/aenetworks.py @@ -8,6 +8,8 @@ from ..utils import (      ExtractorError,      GeoRestrictedError,      int_or_none, +    remove_start, +    traverse_obj,      update_url_query,      urlencode_postdata,  ) @@ -33,14 +35,17 @@ class AENetworksBaseIE(ThePlatformIE):      }      def _extract_aen_smil(self, smil_url, video_id, auth=None): -        query = {'mbr': 'true'} +        query = { +            'mbr': 'true', +            'formats': 'M3U+none,MPEG-DASH+none,MPEG4,MP3', +        }          if auth:              query['auth'] = auth          TP_SMIL_QUERY = [{              'assetTypes': 'high_video_ak', -            'switch': 'hls_high_ak' +            'switch': 'hls_high_ak',          }, { -            'assetTypes': 'high_video_s3' +            'assetTypes': 'high_video_s3',          }, {              'assetTypes': 'high_video_s3',              'switch': 'hls_high_fastly', @@ -75,7 +80,14 @@ class AENetworksBaseIE(ThePlatformIE):          requestor_id, brand = self._DOMAIN_MAP[domain]          result = self._download_json(              'https://feeds.video.aetnd.com/api/v2/%s/videos' % brand, -            filter_value, query={'filter[%s]' % filter_key: filter_value})['results'][0] +            filter_value, query={'filter[%s]' % filter_key: filter_value}) +        result = traverse_obj( +            result, ('results', +                     lambda k, v: k == 0 and v[filter_key] == filter_value), +            get_all=False) +        if not result: +            raise ExtractorError('Show not found in A&E feed (too new?)', expected=True, +                                 video_id=remove_start(filter_value, '/'))          title = result['title']          video_id = result['id']          media_url = result['publicUrl'] @@ -126,7 +138,7 @@ class AENetworksIE(AENetworksBaseIE):              'skip_download': True,          },          'add_ie': ['ThePlatform'], -        'skip': 'This video is only available for users of participating TV providers.', +        'skip': 'Geo-restricted - This content is not available in your location.'      }, {          'url': 'http://www.aetv.com/shows/duck-dynasty/season-9/episode-1',          'info_dict': { @@ -143,6 +155,7 @@ class AENetworksIE(AENetworksBaseIE):              'skip_download': True,          },          'add_ie': ['ThePlatform'], +        'skip': 'This video is only available for users of participating TV providers.',      }, {          'url': 'http://www.fyi.tv/shows/tiny-house-nation/season-1/episode-8',          'only_matching': True | 
