Browse Source

[crunchyroll] Workaround fplive.net rtmp URLs (Closes #5881)

master
Sergey M․ 9 years ago
parent
commit
a01da8bbf8
1 changed files with 16 additions and 0 deletions
  1. 16
      youtube_dl/extractor/crunchyroll.py

16
youtube_dl/extractor/crunchyroll.py

@ -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,

Loading…
Cancel
Save