[bbc] add support for BBC Radio Play pages(closes #17022)
This commit is contained in:
		| @@ -778,6 +778,17 @@ class BBCIE(BBCCoUkIE): | |||||||
|         'params': { |         'params': { | ||||||
|             'skip_download': True, |             'skip_download': True, | ||||||
|         } |         } | ||||||
|  |     }, { | ||||||
|  |         # window.__PRELOADED_STATE__ | ||||||
|  |         'url': 'https://www.bbc.co.uk/radio/play/b0b9z4yl', | ||||||
|  |         'info_dict': { | ||||||
|  |             'id': 'b0b9z4vz', | ||||||
|  |             'ext': 'mp4', | ||||||
|  |             'title': 'Prom 6: An American in Paris and Turangalila', | ||||||
|  |             'description': 'md5:51cf7d6f5c8553f197e58203bc78dff8', | ||||||
|  |             'uploader': 'Radio 3', | ||||||
|  |             'uploader_id': 'bbc_radio_three', | ||||||
|  |         }, | ||||||
|     }] |     }] | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
| @@ -1000,6 +1011,36 @@ class BBCIE(BBCCoUkIE): | |||||||
|                     'subtitles': subtitles, |                     'subtitles': subtitles, | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|  |         preload_state = self._parse_json(self._search_regex( | ||||||
|  |             r'window\.__PRELOADED_STATE__\s*=\s*({.+?});', webpage, | ||||||
|  |             'preload state', default='{}'), playlist_id, fatal=False) | ||||||
|  |         if preload_state: | ||||||
|  |             current_programme = preload_state.get('programmes', {}).get('current') or {} | ||||||
|  |             programme_id = current_programme.get('id') | ||||||
|  |             if current_programme and programme_id and current_programme.get('type') == 'playable_item': | ||||||
|  |                 title = current_programme.get('titles', {}).get('tertiary') or playlist_title | ||||||
|  |                 formats, subtitles = self._download_media_selector(programme_id) | ||||||
|  |                 self._sort_formats(formats) | ||||||
|  |                 synopses = current_programme.get('synopses') or {} | ||||||
|  |                 network = current_programme.get('network') or {} | ||||||
|  |                 duration = int_or_none( | ||||||
|  |                     current_programme.get('duration', {}).get('value')) | ||||||
|  |                 thumbnail = None | ||||||
|  |                 image_url = current_programme.get('image_url') | ||||||
|  |                 if image_url: | ||||||
|  |                     thumbnail = image_url.replace('{recipe}', '1920x1920') | ||||||
|  |                 return { | ||||||
|  |                     'id': programme_id, | ||||||
|  |                     'title': title, | ||||||
|  |                     'description': dict_get(synopses, ('long', 'medium', 'short')), | ||||||
|  |                     'thumbnail': thumbnail, | ||||||
|  |                     'duration': duration, | ||||||
|  |                     'uploader': network.get('short_title'), | ||||||
|  |                     'uploader_id': network.get('id'), | ||||||
|  |                     'formats': formats, | ||||||
|  |                     'subtitles': subtitles, | ||||||
|  |                 } | ||||||
|  |  | ||||||
|         bbc3_config = self._parse_json( |         bbc3_config = self._parse_json( | ||||||
|             self._search_regex( |             self._search_regex( | ||||||
|                 r'(?s)bbcthreeConfig\s*=\s*({.+?})\s*;\s*<', webpage, |                 r'(?s)bbcthreeConfig\s*=\s*({.+?})\s*;\s*<', webpage, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Remita Amine
					Remita Amine