mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	[extractor/radiko] Fix format sorting for Time Free (#6159)
Authored by: road-master
This commit is contained in:
		| @@ -1,5 +1,4 @@ | ||||
| import base64 | ||||
| import re | ||||
| import urllib.parse | ||||
| 
 | ||||
| from .common import InfoExtractor | ||||
| @@ -15,6 +14,23 @@ from ..utils import ( | ||||
| 
 | ||||
| class RadikoBaseIE(InfoExtractor): | ||||
|     _FULL_KEY = None | ||||
|     _HOSTS_FOR_TIME_FREE_FFMPEG_UNSUPPORTED = ( | ||||
|         'https://c-rpaa.smartstream.ne.jp', | ||||
|         'https://si-c-radiko.smartstream.ne.jp', | ||||
|         'https://tf-f-rpaa-radiko.smartstream.ne.jp', | ||||
|         'https://tf-c-rpaa-radiko.smartstream.ne.jp', | ||||
|         'https://si-f-radiko.smartstream.ne.jp', | ||||
|         'https://rpaa.smartstream.ne.jp', | ||||
|     ) | ||||
|     _HOSTS_FOR_TIME_FREE_FFMPEG_SUPPORTED = ( | ||||
|         'https://rd-wowza-radiko.radiko-cf.com', | ||||
|         'https://radiko.jp', | ||||
|         'https://f-radiko.smartstream.ne.jp', | ||||
|     ) | ||||
|     # Following URL forcibly connects not Time Free but Live | ||||
|     _HOSTS_FOR_LIVE = ( | ||||
|         'https://c-radiko.smartstream.ne.jp', | ||||
|     ) | ||||
| 
 | ||||
|     def _auth_client(self): | ||||
|         _, auth1_handle = self._download_webpage_handle( | ||||
| @@ -92,9 +108,9 @@ class RadikoBaseIE(InfoExtractor): | ||||
|         formats = [] | ||||
|         found = set() | ||||
|         for url_tag in m3u8_urls: | ||||
|             pcu = url_tag.find('playlist_create_url') | ||||
|             pcu = url_tag.find('playlist_create_url').text | ||||
|             url_attrib = url_tag.attrib | ||||
|             playlist_url = update_url_query(pcu.text, { | ||||
|             playlist_url = update_url_query(pcu, { | ||||
|                 'station_id': station, | ||||
|                 **query, | ||||
|                 'l': '15', | ||||
| @@ -117,10 +133,11 @@ class RadikoBaseIE(InfoExtractor): | ||||
|                     'X-Radiko-AreaId': area_id, | ||||
|                     'X-Radiko-AuthToken': auth_token, | ||||
|                 }) | ||||
|             not_preferred = is_onair and not pcu.startswith(self._HOSTS_FOR_LIVE) or (not is_onair and (pcu.startswith(self._HOSTS_FOR_TIME_FREE_FFMPEG_UNSUPPORTED) or pcu.startswith(self._HOSTS_FOR_LIVE))) | ||||
|             for sf in subformats: | ||||
|                 if re.fullmatch(r'[cf]-radiko\.smartstream\.ne\.jp', domain): | ||||
|                     # Prioritize live radio vs playback based on extractor | ||||
|                     sf['preference'] = 100 if is_onair else -100 | ||||
|                 if not_preferred: | ||||
|                     sf['preference'] = -100 | ||||
|                     sf['format_note'] = 'not preferred' | ||||
|                 if not is_onair and url_attrib['timefree'] == '1' and time_to_skip: | ||||
|                     sf['downloader_options'] = {'ffmpeg_args': ['-ss', time_to_skip]} | ||||
|             formats.extend(subformats) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Master
					Master