diff options
Diffstat (limited to 'yt_dlp/extractor/yahoo.py')
-rw-r--r-- | yt_dlp/extractor/yahoo.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/yt_dlp/extractor/yahoo.py b/yt_dlp/extractor/yahoo.py index 24148a0..35e7120 100644 --- a/yt_dlp/extractor/yahoo.py +++ b/yt_dlp/extractor/yahoo.py @@ -8,6 +8,7 @@ from ..utils import ( ExtractorError, clean_html, int_or_none, + join_nonempty, mimetype2ext, parse_iso8601, traverse_obj, @@ -70,7 +71,7 @@ class YahooIE(InfoExtractor): 'duration': 128, 'timestamp': 1385722202, 'upload_date': '20131129', - } + }, }, { 'url': 'https://www.yahoo.com/movies/v/true-story-trailer-173000497.html', 'md5': '2a9752f74cb898af5d1083ea9f661b58', @@ -177,7 +178,7 @@ class YahooIE(InfoExtractor): def _extract_yahoo_video(self, video_id, country): video = self._download_json( - 'https://%s.yahoo.com/_td/api/resource/VideoService.videos;view=full;video_ids=["%s"]' % (country, video_id), + f'https://{country}.yahoo.com/_td/api/resource/VideoService.videos;view=full;video_ids=["{video_id}"]', video_id, 'Downloading video JSON metadata')[0] title = video['title'] @@ -193,7 +194,7 @@ class YahooIE(InfoExtractor): for fmt in fmts: media_obj = self._download_json( 'https://video-api.yql.yahoo.com/v1/video/sapi/streams/' + video_id, - video_id, 'Downloading %s JSON metadata' % fmt, + video_id, f'Downloading {fmt} JSON metadata', headers=self.geo_verification_headers(), query={ 'format': fmt, 'region': country.upper(), @@ -213,7 +214,7 @@ class YahooIE(InfoExtractor): tbr = int_or_none(s.get('bitrate')) formats.append({ 'url': s_url, - 'format_id': fmt + ('-%d' % tbr if tbr else ''), + 'format_id': join_nonempty(fmt, tbr), 'width': int_or_none(s.get('width')), 'height': int_or_none(s.get('height')), 'tbr': tbr, @@ -277,9 +278,9 @@ class YahooIE(InfoExtractor): country = country.split('-')[0] items = self._download_json( - 'https://%s.yahoo.com/caas/content/article' % country, display_id, + f'https://{country}.yahoo.com/caas/content/article', display_id, 'Downloading content JSON metadata', query={ - 'url': url + 'url': url, })['items'][0] item = items['data']['partnerData'] @@ -327,7 +328,7 @@ class YahooSearchIE(SearchInfoExtractor): def _search_results(self, query): for pagenum in itertools.count(0): - result_url = 'http://video.search.yahoo.com/search/?p=%s&fr=screen&o=js&gs=0&b=%d' % (urllib.parse.quote_plus(query), pagenum * 30) + result_url = f'http://video.search.yahoo.com/search/?p={urllib.parse.quote_plus(query)}&fr=screen&o=js&gs=0&b={pagenum * 30}' info = self._download_json(result_url, query, note='Downloading results page ' + str(pagenum + 1)) yield from (self.url_result(result['rurl']) for result in info['results']) @@ -354,7 +355,7 @@ class YahooJapanNewsIE(InfoExtractor): }, }, { 'url': 'https://news.yahoo.co.jp/feature/1356', - 'only_matching': True + 'only_matching': True, }] def _extract_formats(self, json_data, content_id): @@ -371,12 +372,13 @@ class YahooJapanNewsIE(InfoExtractor): url, content_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False)) else: + bitrate = int_or_none(vid.get('bitrate')) formats.append({ 'url': url, - 'format_id': f'http-{vid.get("bitrate")}', + 'format_id': join_nonempty('http', bitrate), 'height': int_or_none(vid.get('height')), 'width': int_or_none(vid.get('width')), - 'tbr': int_or_none(vid.get('bitrate')), + 'tbr': bitrate, }) self._remove_duplicate_formats(formats) |