From c4c923826eaf59ec0619f2f52445280ac34f523e Mon Sep 17 00:00:00 2001 From: Aditya Date: Sat, 16 Sep 2017 16:57:37 +0530 Subject: [PATCH] updates available platforms and 1080p support --- youtube_dl/extractor/common.py | 10 ++++++++++ youtube_dl/extractor/hotstar.py | 4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 74d30ec50..f17363bac 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -1161,6 +1161,16 @@ class InfoExtractor(object): unique_formats.append(f) formats[:] = unique_formats + @staticmethod + def _remove_duplicate_formats_by_id(formats): + format_ids = set() + unique_formats = [] + for f in formats: + if f['format_id'] not in format_ids: + format_ids.add(f['format_id']) + unique_formats.append(f) + formats[:] = unique_formats + def _is_valid_url(self, url, video_id, item='video', headers={}): url = self._proto_relative_url(url, scheme='http:') # For now assume non HTTP(S) URLs always valid diff --git a/youtube_dl/extractor/hotstar.py b/youtube_dl/extractor/hotstar.py index 3a7a66a34..225449d33 100644 --- a/youtube_dl/extractor/hotstar.py +++ b/youtube_dl/extractor/hotstar.py @@ -57,7 +57,8 @@ class HotStarIE(InfoExtractor): raise ExtractorError('This video is DRM protected.', expected=True) formats = [] - for f in ('JIO',): + platforms = video_data['availableAlso'].split('|') + for f in platforms: format_data = self._download_json( 'http://getcdn.hotstar.com/AVS/besc', video_id, 'Downloading %s JSON metadata' % f, @@ -86,6 +87,7 @@ class HotStarIE(InfoExtractor): 'width': int_or_none(format_data.get('width')), 'height': int_or_none(format_data.get('height')), }) + self._remove_duplicate_formats_by_id(formats) self._sort_formats(formats) return {