[crunchyroll] Workaround fplive.net rtmp URLs (Closes #5881)
This commit is contained in:
		| @@ -14,11 +14,13 @@ from ..compat import ( | |||||||
|     compat_urllib_parse, |     compat_urllib_parse, | ||||||
|     compat_urllib_parse_unquote, |     compat_urllib_parse_unquote, | ||||||
|     compat_urllib_request, |     compat_urllib_request, | ||||||
|  |     compat_urlparse, | ||||||
| ) | ) | ||||||
| from ..utils import ( | from ..utils import ( | ||||||
|     ExtractorError, |     ExtractorError, | ||||||
|     bytes_to_intlist, |     bytes_to_intlist, | ||||||
|     intlist_to_bytes, |     intlist_to_bytes, | ||||||
|  |     remove_end, | ||||||
|     unified_strdate, |     unified_strdate, | ||||||
|     urlencode_postdata, |     urlencode_postdata, | ||||||
| ) | ) | ||||||
| @@ -279,6 +281,20 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text | |||||||
|             stream_info = streamdata.find('./{default}preload/stream_info') |             stream_info = streamdata.find('./{default}preload/stream_info') | ||||||
|             video_url = stream_info.find('./host').text |             video_url = stream_info.find('./host').text | ||||||
|             video_play_path = stream_info.find('./file').text |             video_play_path = stream_info.find('./file').text | ||||||
|  |  | ||||||
|  |             if '.fplive.net/' in video_url: | ||||||
|  |                 video_url = re.sub(r'^rtmpe?://', 'http://', video_url.strip()) | ||||||
|  |                 parsed_video_url = compat_urlparse.urlparse(video_url) | ||||||
|  |                 direct_video_url = compat_urlparse.urlunparse(parsed_video_url._replace( | ||||||
|  |                     netloc='v.lvlt.crcdn.net', | ||||||
|  |                     path='%s/%s' % (remove_end(parsed_video_url.path, '/'), video_play_path.split(':')[-1]))) | ||||||
|  |                 if self._is_valid_url(direct_video_url, video_id, video_format): | ||||||
|  |                     formats.append({ | ||||||
|  |                         'url': direct_video_url, | ||||||
|  |                         'format_id': video_format, | ||||||
|  |                     }) | ||||||
|  |                     continue | ||||||
|  |  | ||||||
|             formats.append({ |             formats.append({ | ||||||
|                 'url': video_url, |                 'url': video_url, | ||||||
|                 'play_path': video_play_path, |                 'play_path': video_play_path, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․